Skip to content
This repository was archived by the owner on Sep 13, 2026. It is now read-only.

Releases: Moritz230127/pi-vision-struct

v4.0.3 — 项目终止维护 / End of Life

Choose a tag to compare

@Moritz230127 Moritz230127 released this 13 Sep 03:04

⛔ 项目终止维护 / End of Life

本仓库已于 2026-09-13 正式封库,不再维护与更新。

中文

决定

pi-version-and-gui 项目自即日起停止一切维护与更新,仓库归档为只读,
不再接受 issue 与 PR。这是本项目的最后一次公告。

原因

本项目的核心前提是「纯文本模型需要外部视觉通道」——把图片转化为坐标 / hex /
矩阵 / 统计等精确数理数据,供文本模型做数值推理与 GUI 控制。

DeepSeek-V4.1 已原生支持多模态输入,该前提不再成立,本项目随之失去存在意义。
与其继续维护一套上游已经内建的旁路方案,不如就此封存。

仍然可用

  • 全部代码、文档、提交历史与 MIT 许可保留,可自由使用、fork、二次开发。
  • GitHub Release 中的预编译二进制 vs-bin / vsd / vs-mcp(v4.0.0)仍可下载,
    已有的 npm 安装(postinstall 从 Release 拉取二进制)不会中断。
    直链:https://github.com/Moritz230127/pi-vision-struct/releases/tag/v4.0.0
    (scripts/install.js 中的下载地址硬编码指向 v4.0.0,不依赖 Latest 标记,故不受影响。)
  • 模型缓存 ~/.cache/vsensor/ 与本地数据不受影响。

不再提供

  • 功能更新、安全修复、依赖升级与兼容性适配。
  • issue / pull request 响应(仓库归档后无法新建)。
  • 请注意:AT-SPI / Wayland / niri 等环境变更可能导致工具失效,请自行评估后使用。

最后版本状态

项目 值
最后版本 v4.0.3(npm pi-version-and-gui@4.0.3)
架构 全 Rust(vs-core 37 模块 / vs-bin 30+ 子命令 / vsd / vs-mcp 28 工具)+ TS 薄壳
验证 241 测试全绿、clippy 0 警告、12 项差分门禁
平台 仅 Linux x86_64(niri Wayland)
许可 MIT

English

Decision

The pi-version-and-gui project has stopped all maintenance and updates as of
2026-09-13. The repository is now archived (read-only) and no longer accepts
issues or pull requests. This is the project's final announcement.

Why

The project's premise was that text-only models need an external vision channel —
converting images into precise numeric data (coordinates / hex / matrices /
statistics) for numeric reasoning and GUI control.

DeepSeek-V4.1 now supports multimodal input natively, so that premise no longer
holds and the project has lost its purpose. Rather than keep maintaining a bypass
that upstream has since built in, it is sealed here.

What still works

  • All source, docs, commit history and the MIT license remain available for
    use, forking and further development.
  • Prebuilt binaries vs-bin / vsd / vs-mcp in the v4.0.0 Release remain
    downloadable
    , so existing npm installs (postinstall fetches them from
    Releases) keep working.
    Direct link: https://github.com/Moritz230127/pi-vision-struct/releases/tag/v4.0.0
    (The download URLs in scripts/install.js are hardcoded to v4.0.0 and do not
    depend on the "Latest" badge, so they are unaffected.)
  • The model cache at ~/.cache/vsensor/ and local data are unaffected.

No longer provided

  • Feature updates, security fixes, dependency upgrades, compatibility work.
  • Issue / pull request responses (the archived repo cannot accept new ones).
  • Note: changes around AT-SPI / Wayland / niri may break the tooling — evaluate
    before relying on it.

Final state

Item Value
Last version v4.0.3 (npm pi-version-and-gui@4.0.3)
Architecture All-Rust (vs-core 37 modules / vs-bin 30+ subcommands / vsd / vs-mcp 28 tools) + thin TS shell
Verification 241 tests green, clippy 0 warnings, 12 differential gates
Platform Linux x86_64 only (niri Wayland)
License MIT

感谢所有使用、测试与反馈过这个项目的人。

Thanks to everyone who used, tested and gave feedback on this project.

V4.0.0 — 全面 Rust + GUI 控制

Choose a tag to compare

@Moritz230127 Moritz230127 released this 08 Sep 05:35

V4.0.0 发布:全面 Rust 化 + GUI 控制

  • 37 个传感器/模块全 Rust(零 Python 回退)
  • GUI 控制:a11y_action 直达 + 五级降级链 + 闭环验证
  • 241 测试全绿 + clippy 0 + 差分门禁 12 个
  • 性能:scene_stats 17x / pix 4.1x / ocr 1.8x
  • GUI 延迟:capture 40ms / analyze 226ms / click 216ms

v3.0.0: D-S 融合引擎 + 轻量 DL 传感器 + 调度管理器 + schema v3

Choose a tag to compare

@Moritz230127 Moritz230127 released this 01 Sep 05:14

v3.0.0 — V3 大版本(2026-09-01)

① 融合引擎(核心创新)

  • vs_fusion.py:D-S 证据理论融合(mass 映射 + 正交和组合 + belief/plausibility/uncertainty)+ 匈牙利全局匹配
  • 替代旧 vs_crosscheck.py 硬阈值:边界场景误报率 70% → 0%(实证)

② 6 个新传感器

  • vs_saliency.py:U²-Net(ONNX GPU)显著性 → top-N 候选区域(破解复杂背景 zoom-in 死锁)
  • vs_segment.py:MobileSAM(5M GPU)前景分割(saliency 联动 box 提示)
  • vs_depth.py:MiDaS-small(21M ONNX)单目深度
  • vs_edge.py:Devernay 亚像素边缘(像素值半值插值,精度 0.0000px)
  • vs_ascii.py:多分辨率 ASCII 栅格(纯文本 LLM 粗看通道)
  • vs_geometry.py:VTracer SVG 化 → 形状原语

③ 调度管理器(vsched + vsd)

  • 显存预算表(6.5GB)+ 并发信号量 + LRU + 优先级队列 + 功耗感知(battery/plugged)+ CPU 降级
  • 子进程隔离:并发 5 任务显存峰值 816MB,零 OOM

④ 优化重构

  • SLIC 超像素 / 真 Otsu / OCR 词典纠错 / audit3d multiprocessing 并行

⑤ schema v3 + 多轮协议

  • schema v3 全量替换 v2(findings/candidates/foreground/evidence/uncertainty)
  • vs_protocol.py:analyze/zoom/probe 三动作(SeeingEye 模式多轮反馈)

⑥ 移除(零其他模型约束)

  • 删除 vs_semantic/vs_critic/vs_vlm/vs_crosscheck/vs_chart(qwen3-vl/ollama 依赖清零)
  • 零第三方 API,全部输出确定性可复算

⑦ 验证

  • 61 断言回归全绿 + 全功能测试 31/31 PASS
  • 端到端 3 类真实图(UI/复杂背景/精密零件)候选区全部精确命中
  • 全流水线 2.9s(GPU)

环境

  • 新增 vsensor conda env(GPU torch cu124 + skimage + onnxruntime-gpu + vtracer + mobile-sam)
  • 三 env 隔离(vsensor/pi-vision/omniparser)

v2.2.1: 修复 analyze 传自然语言指令崩溃

Choose a tag to compare

@Moritz230127 Moritz230127 released this 29 Aug 05:44

问题

用户调用 analyze 时把自然语言指令(如"分析这张截图中的 fcitx5 候选框外观…")直接传给 --task,而 vs_analyze.py 把 task 当作配置文件名去打开 tasks/<task>.json → [Errno 36] File name too long 崩溃,经 bwrap 沙箱包装后表现为 python failed。

修复

  • vs_analyze.py:task 改为文件名安全校验(^[A-Za-z0-9_-]{1,64}$);传入自然语言长句时返回结构化清晰错误并列出可用任务(diagnose-screenshot / audit-pptx / classify-images / diff-screenshots),提示自由文本视觉分析改用 semantic 动作,不再崩溃。
  • 新增 --prompt 参数:随报告带出用户指令(不执行),附 note 指引语义分析走 semantic。
  • index.ts:analyze 动作补充 prompt 构建;task 描述明确为预置配置名(非自由文本)。

正确用法

  • 数值诊断截图:analyze task=diagnose-screenshot input=<png>
  • 自由文本视觉问答(如 fcitx5 外观分析):semantic image=<png> prompt="..."(VLM 兜底,本地 Ollama)

验证

  • analyze 有效任务正常产出;无效 task 返回结构化错误(非崩溃);客户视角零报错。

v2.2.0: 真几何深度 + VLM 语义兜底 + 依赖健壮性

Choose a tag to compare

@Moritz230127 Moritz230127 released this 29 Aug 02:56

本次更新

① 真几何深度(depth_geom)—— 不再是亮度梯度

  • 新增 vs_depth_geom.py + depth_geom_wrapper.sh:在 Blender 内将所有 MESH 三角面栅格化到相机空间深度缓冲,输出真实几何距离(米)
  • 向量化投影 + numpy 扫描线光栅化:480p ≈ 42s / 1080p ≈ 57s
  • 涡扇实测:near=0.75m / far=2.05m / median≈1.9m(与引擎真实尺寸吻合,非亮度近似)
  • depth 动作现路由 Blender 几何深度(主用);原亮度梯度 vs_depth.py 保留为无 Blend 时的回退

② 可选 VLM 语义兜底(semantic)—— 不进数值主链

  • 新增 vs_semantic_v2.py + semantic 动作:明确标记 semantic_fallback: true,与数值报告严格区分
  • 走本地 Ollama(127.0.0.1 硬编码,无外发);图像自动下采样至 1024 边避免上下文溢出
  • 仅当用户明确需要"语义理解"时调用(如"这图讲了什么故事")

③ Python 依赖健壮性(修复执行失败)

  • vs_chart.py 移除对 vs_vlm 的硬 import,改为内联 Ollama 网关(与 semantic 同源);
    Ollama 不可用时返回结构化错误 + 修复提示,不再崩溃
  • depth 动作不再依赖 torch(几何走 Blender / 回退走 PIL)

验证

  • py_compile 全绿;fusion 8/8
  • 客户视角 21 例零报错一次通过(含 depth_geom + semantic)
  • 涡扇渲染全流程:scene_stats / depth_geom / audit3d 均产出真实数值

v2.1.0: audit3d 最大精度重构(AABB 1042→4 真干涉)

Choose a tag to compare

@Moritz230127 Moritz230127 released this 28 Aug 06:12

核心问题

涡扇场景图 AABB 审计误报 1042 干涉——嵌套/同心结构(转子在静子内、机匣包裹压气机)的轴对齐包围盒天然重叠,但实际网格间存在装配间隙,并非真实穿透。

最大精度修复

vs_blender_dump.py

  • 导出真实世界坐标点云 verts(MESH 多边形顶点 + CURVE 样条离散点,每物体 ≤4000 下采样)
  • 新增 parent 字段;保留 collection 层级用于嵌套判定

vs_audit3d.py 三级精度模型(对每对 MESH/CURVE)

  1. AABB 预筛:已分离的成对物体直接跳过(不计任何计数)
  2. OBB-SAT:用 bbox3d 8 角点直接构造有向包围盒,分离轴定理(15 轴)判定——旋转感知,比 AABB 紧致
  3. 网格级 surface-to-surface 距离(核心):scipy.cKDTree 双向最近邻求最小表面间距
    • 环形间隙 → 正间隙判 clearance(正确保留装配间隙)
    • 真实接触 → 距离≈0 判 interference

新增 --method:auto(默认 OBB+Mesh) / obb / mesh / aabb(回退);新增 verified_clearance 指标

验证(turbofan_v4.blend,172 MESH + 8 CURVE,16110 对)

精度档 interference clearance
AABB 1042 0
OBB 952 128
auto(最大精度) 4 1056

剩余 4 真干涉均经 KDTree 验证表面距离 0.0mm(spinner↔tip_cap、nacelle↔bypass_duct、core_casing↔bypass_duct、elbow↔elbow),为结构件真实接触,非误报。

依赖:pi-vision env 新增 scipy==1.18.1(cKDTree 必需)。
客户视角 19/19 零报错;fusion 8/8。

v2.0.0: 数理化三维+二维全重构

Choose a tag to compare

@Moritz230127 Moritz230127 released this 28 Aug 03:43

核心变化

  • 架构哲学转变:所有传感器输出精确数值(矩阵/bbox/hex/统计),零VLM主观描述
  • 新增三维数理化:blender_dump(4×4矩阵/8点bbox3d)、depth(深度矩阵统计)、audit3d(3D间隙/干涉)
  • 新增二维数理化:scene_stats(颜色直方图/面积比/对比度/空间布局,替代旧 semantic)
  • 删除VLM热路径:crosscheck数值替代critic VLM判定
  • 客户视角19/19零报错一次通过(含涡扇渲染全流程验证)
  • README重写:专业架构原理文档(无安装教程/无Docker)

涡扇渲染验证数据

渲染图 主色 对比度 WCAG 前景比
v4_full_side #ECF0F2 14.8% 2.09 0.497
v4_cutaway #9FAFAF 17.1% 18.64 0.482
v4_fan_front #B6C4C5 19.4% 6.97 0.489

场景图(turbofan_v4.blend)

  • 196 物体 / 17 集合 / 547 万面 / 8 相机
  • MESH 物体 180 个 / 16110 对检测 / 1042 干涉(嵌套结构包围盒重叠)
  • 场景范围:0.024m ~ 2.55m

pi-vision-struct 1.0.0 — Linux 正式版

Choose a tag to compare

@Moritz230127 Moritz230127 released this 25 Aug 03:43

给纯文本模型的像素级精确视觉通道

DeepSeek 等纯文本模型经本扩展获得视觉能力:输出数字/坐标/hex(可复算、可审计),而非自然语言转述。

亮点

  • 单端口工具 vs:20 个 action 覆盖截屏/OCR/像素测量/DOM/PPTX/PDF/无障碍树/开放词表检测/图表转数据/融合审计/VLM 复核/CLIP 聚类;上下文注入仅 ~700 tokens
  • 分层无损架构:L0 源码 → L1 确定性测量 → L2 opt-in 本地 VLM,一切输出可复算
  • 自稳定层:调用前两级预检、常驻服务自动拉起与自愈、git 完整性可见化
  • 安全:bwrap 内核沙箱零网络 + 系统根只读 + unix socket IPC,依赖版本冻结
  • 坐标原语记法:所有异常带 [bbox: x1,y1,x2,y2],下游推理免疫指代歧义

安装

Linux only。手把手教程见 README(七步,每步带验证命令);或 Docker 零安装:

docker pull ghcr.io/moritz230127/pi-vision-struct:latest

验证

  • 客户视角全功能 19 例零报错一次通过(含沙箱路径)
  • 安装教程成功/失败路径均经纯净容器实测
  • 回归 25 断言全绿;基准卡 ΔE=0.0 / OCR CER=0.0 / diff recall=1.0

平台

仅 Linux x86_64。macOS / Windows 不支持。

pi-vision-struct v0.3.0 — Docker + 三系统安装

Choose a tag to compare

@Moritz230127 Moritz230127 released this 06 Aug 14:17

v0.3.0

  • Docker 镜像(GHCR 已发布):ghcr.io/moritz230127/pi-vision-struct:latest(5.03GB)
  • 三系统安装脚本:install-linux.sh / install-macos.sh / install-windows.ps1
  • 容器内验证:env/pix/ocr/omniparser/cluster 全部离线通过

用法

docker pull ghcr.io/moritz230127/pi-vision-struct:latest
docker run --rm -v "$PWD":/work ghcr.io/moritz230127/pi-vision-struct:latest <action> --image /work/a.png
# actions: env pix ocr layout omniparser pdf rules audit critic cluster capture pptx dom semantic wallpaper

文档: docs/docker.md | GitHub: https://github.com/Moritz230127/pi-vision-struct