Files
workinf_Blender_Wasm/docs/status/M10-01.md
mes123456 0fe8d2bb56
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Advance M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

2.7 KiB

M10-01 Status

status: done task: 从 Blender Main 读取 Geometry Nodes 图拓扑、socket 默认值、link 和稳定 node ID updated: 2026-08-16 America/New_York

Scope

The WebEngine authoritative Main reader publishes a bounded GeometryNodeGraphIR snapshot for every GeometryNodeTree. It preserves unsupported nodes as metadata, uses Blender node identifiers and socket identifiers rather than display names, and does not evaluate Geometry Nodes. The existing web/protocol/schema-version remains 1: geometryNodeGraphs is an additive optional SceneIR field and no existing field meaning or persisted storage schema changed.

Evidence

  • Fixture: tests/files/web/modifier_geometry_nodes_scene.blend.
  • Fixture SHA-256: f3820511f791769837d75be092934130c397cf46ee0acf79db28efca9a7948c9.
  • Desktop reference: tests/golden/W-075/modifier_geometry_nodes_scene.json.
  • Desktop reference SHA-256: 93c21e5158daefce10f2d4df674e636bf3f6ed3dd43e1576c45a02a8592f5886.
  • Golden manifest: tests/golden/M10-01/geometry-node-main-reader.json.
  • Protocol/unit check: node --test web/tests/unit/geometry-nodes.test.mjs (3/3).
  • Native/WASM reader check: node tools/web/check-geometry-node-main-reader.mjs; 3 graphs, 10 nodes, 7 links, 9 defaults, stable IDs, graph hashes, desktop comparison, save/reopen and unsupported Simulation-node preservation all passed.
  • Chromium Worker check: WEB_TEST_PORT=5440 npm --prefix web run test:geometry-node-main-reader (unit 3/3, reader 1/1, Chromium 1/1).
  • source tools/web/emscripten-env.sh && cmake --build build_web_blender6 --target web_engine -- -j8: passed (ninja: no work to do).
  • npm --prefix web run typecheck, npm --prefix web run lint, npm --prefix web run build, and git diff --check: passed.

Contract

  • Per-graph budgets are fixed at 4,096 graphs, 4,096 nodes, 16,384 links, 65,536 node sockets, and 4,096 interface sockets.
  • Graphs, nodes, links, and socket arrays are deterministically ordered before the graph SHA-256 is emitted.
  • Socket data types and finite defaults are read from Blender's native bNodeSocket storage; ID-valued defaults are serialized as stable typed IDs.
  • __extend__ sockets are omitted because they are UI extension sockets, not graph data. Missing/duplicate identifiers, invalid links, and budget overflow fail closed.
  • Unsupported node types remain in the graph and are available to the later M10-02 allowlist gate; this task does not claim Geometry Nodes evaluation.

Rollback

Remove the M10-01 reader, protocol field, golden, unit/E2E checks, package script and this status file together. Existing SceneIR consumers continue to accept snapshots without the optional geometryNodeGraphs field.