4.4 KiB
Web Blender 全功能缺口盘点
盘点基线:tests/golden/WBV2/dynamic-inventory.json、
tests/golden/WBV2/dynamic-coverage-bindings.json、当前 WebEngine 协议/能力注册表。
当前结论
直接 WebEngine 命令已经全部进入协议和原生分发:96/96 web-command
均有绑定。节点注册也已完成共享 reader 覆盖:497/497 node。因此
16/16 工作流完成只表示产品主路径已接通,不表示 Blender 的所有用户能力
已经迁移。
当前仍未绑定的源单元:
| 类型 | 总量 | 已绑定 | 未绑定 | 处理策略 |
|---|---|---|---|---|
| 编辑器 operator | 2018 | 31 | 1987 | 按用户能力批量迁移;窗口/屏幕/文件浏览器改用 Web 等价流程 |
| RNA struct | 979 | 306 | 673 | 建立 Main 数据块反射/读写批次,先覆盖用户可编辑数据 |
| node | 497 | 497 | 0 | 共享图 reader 已覆盖,后续只补具体用户入口缺口 |
| modifier source | 97 | 95 | 2 | 将剩余 modifier 接入统一栈参数模型 |
| operator macro | 58 | 0 | 58 | 拆解为已有原生命令组合,不复制桌面上下文 |
| WebEngine command | 96 | 96 | 0 | 保持现有协议/Worker/Main 契约 |
Operator 缺口热点
未绑定 editor operator 按源码注册文件聚合后的最大缺口:
| 源码区域 | 数量 | 后续批次 |
|---|---|---|
editors/object/object_ops.cc |
212 | OBJECT-EDITOR-COVERAGE |
editors/mesh/mesh_ops.cc |
140 | MESH-EDITOR-COVERAGE |
editors/space_sequencer/sequencer_ops.cc |
98 | SEQUENCER-COMPOSITOR-COVERAGE |
editors/physics/physics_ops.cc |
82 | PHYSICS-SIMULATION-COVERAGE |
editors/curve/curve_ops.cc |
78 | CURVE-SURFACE-COVERAGE |
editors/armature/armature_ops.cc |
77 | ARMATURE-EDITOR-COVERAGE |
editors/space_clip/space_clip.cc |
77 | TRACKING-MASK-COVERAGE |
editors/space_node/node_ops.cc |
77 | SEQUENCER-COMPOSITOR-COVERAGE |
editors/space_outliner/outliner_ops.cc |
73 | ASSET-LIBRARY-COVERAGE |
editors/sculpt_paint/paint_ops.cc |
69 | SCULPT/PAINT follow-up |
editors/space_graph/graph_ops.cc |
66 | ANIMATION-FCURVE-DRIVER-COVERAGE |
editors/space_view3d/view3d_ops.cc |
63 | OBJECT/MESH/RENDER batches |
editors/render/render_ops.cc |
50 | RENDER-CAMERA-LIGHT-COVERAGE |
editors/uvedit/uvedit_ops.cc |
48 | MESH-EDITOR-COVERAGE |
editors/grease_pencil/** |
42 | GREASE-PENCIL-COVERAGE |
Window manager, screen, interface, text editor and native file-browser operators remain explicit browser/OS boundaries. They are not claimed as missing Web features when a browser-native equivalent exists.
Implementation order
- User-visible authoring gaps that reuse existing Main transactions: object, mesh, curve, armature, animation, sequencer, physics.
- Browser-native media/data workflows: tracking, masks, Grease Pencil, render, asset libraries and interchange.
- Generic RNA reflection for the remaining data-block fields.
- Macro decomposition and operator catalog expansion only where a real Web workflow exists; no arbitrary desktop-context emulation.
Verification remains incremental and deferred to user operation. No completion claim is made from inventory counts alone.
Source-unit route dashboard
featureRouteCoverage publishes the complete route assignment for the current
3,745-unit source inventory. featureRouteGaps publishes route-assignment gaps,
unavailable units, and the separate behavioral-evidence gap. The scheduler JSON
summary exposes both command names under progress; its text view prints the
same category counts.
| execution route | source units | production boundary |
|---|---|---|
WEB_MAIN |
1,698 | typed native Main/WASM or shared reflection route |
SERVER_NATIVE |
1,613 | bounded Blender background operator job |
BROWSER_EQUIVALENT |
434 | browser-native replacement for desktop UI/context |
UNAVAILABLE |
0 | no Web platform equivalent |
| total | 3,745 | all source units have an explicit route classification |
Route assignment is complete. Existing exact evidence remains 1,025 verified
units, while 2,720 units retain explicit UNVERIFIED behavioral evidence
until real user operation exercises the declared route. The dashboard does not
convert classification into a completion claim. WEB_MAIN behavior must
continue through existing typed Blender
Main/WASM commands, and SERVER_NATIVE behavior through bounded Blender jobs.