3.0 KiB
M12-06B Status
status: done task: compare desktop GLB topology, attributes, materials, nodes, and animations in Web updated: 2026-08-18 America/New_York enablingTask: true parityStateChange: false
Scope
The production TypeScript GLB parser now exposes a canonical bounded semantic surface for the five M12-06A desktop fixtures. It validates referenced accessors, nodes, materials, textures, skins, and animation samplers before returning primitive topology, sorted attributes, PBR material fields, node hierarchy/TRS, skin bindings, and animation channels. A field-level comparator checks that Web semantics exactly match the pinned Blender 5.2 desktop report.
Both Node and a real Chromium Worker consume the exact committed GLB bytes and verify each source
SHA-256 before comparing all five domains. The existing summary import API remains compatible. This
task does not create Blender Main data or expose GLB in the file picker; the runtime route remains
BLOCKED_UNTIL_MAIN_PERSISTENCE until M12-06C proves save/reopen and stable IDs.
Evidence
node --test web/tests/unit/glb-desktop-import.test.mjspassed 3/3: five exact fixture imports, separate domain assertions, and a stable field-level PBR mismatch.node tools/web/check-glb-desktop-import.mjspassed: 5 fixtures, 5 compared domains, exact desktop/Web canonical hashes, deterministic report regeneration, and the blocked route state.CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5425 node_modules/.bin/playwright test --config playwright.config.ts --workers=1 tests/e2e/glb-desktop-import.spec.tspassed 1/1 from theweb/directory using Chrome 150. The Worker verified source SHA-256 and all five semantic comparisons.npm --prefix web run typecheck,npm --prefix web run test:status-consistency, andgit diff --checkpassed. The package hash remainscfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c.
Artifact Hashes
- parent manifest:
e3554a1e739cbe3f217f6169130532365538b0c0eafbb97afc58d4d56c4287cb - protocol:
45d9a7912c4a59a552789a8ea0dfaff5f1849f8d213f14d238de024b77acdb0d - generator:
6f97527b7da04c7b4f9b09c48b9f367d1270db9f7820498d33832a80754436c2 - checker:
804a4b5545d95d7ab1ba265469a981d0a10b71dab36f0c96283eb73b401443d2 - unit:
6bf2a96b3e43e5fae93589ea5dcf98e7a69b10266378e442988198925286a8d8 - Chromium Worker:
eb32049631113270fb62acb7ae9379e8ff9a03e38086db2fa309c6891cd707bf - Chromium test:
fa3e06419c918406f24b5a4260523bd94cfe729a84786e9434517fdfed624d45 - Web import report:
79933888cc5aa2d1e3639ec349ca4c31d028fe89f751ebb8d4342f06d15ecfc2 - manifest:
5275310394b34726a05b30ab67658e1381662dddf9163a97cb02f47f646a8fa4
Next Task
M12-06C: create authoritative Main data from the imported GLB, save .blend, reopen it, and
compare stable IDs.
Rollback
Remove the canonical Web import surface, report generator/checker, Node/Chromium tests, report,
manifest, and this status entry. Restore M12-06A as the queue tail and move the machine queue back to
M12-06B. No parity ledger rollback is required.