# M12-06A Status status: done task: generate the bounded Mesh/PBR/UV/skin/animation GLB fixture group on desktop updated: 2026-08-18 America/New_York enablingTask: true parityStateChange: false ## Scope The pinned Blender 5.2.0 LTS desktop runtime generates five independent GLB 2.0 fixtures: mesh, PBR, UV texture, two-joint skin, and object animation. Each file has one bounded triangle primitive, uses no required or optional glTF extension, and remains below the 512 KiB per-file budget. The fixtures isolate feature ownership so later Web import comparisons cannot hide one unsupported domain behind an all-in-one scene. The canonical report records runtime identity, file bytes and SHA-256, nodes, topology accessors, attributes, materials, textures/images, skins, and animations. The checker binds the M12-05F parent manifest and the pinned M12-05A Blender binary identity, regenerates all five files in a fresh temporary directory, and requires both the semantic report and every GLB byte to match exactly. This enabling task does not claim Web import, `.blend` save/reopen, export loss reporting, or GLB round-trip parity. ## Evidence - `node tools/web/check-glb-desktop-fixtures.mjs` passed: 5 fixtures, 8,676 aggregate bytes, Mesh/PBR/UV/skin/animation assertions, exact report regeneration, and exact GLB regeneration. - Mesh exports indexed triangles with POSITION/NORMAL/COLOR_0; UV exports TEXCOORD_0 plus one embedded PNG; skin exports JOINTS_0/WEIGHTS_0 and two inverse-bind matrices; animation exports translation and rotation channels sampled over 25 frames. - The runtime binary SHA-256 is `d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82`, matching M12-05A. - `npm --prefix web run typecheck`, `npm --prefix web run test:status-consistency`, and `git diff --check` passed. The package hash remains the frozen `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c`. ## Artifact Hashes - parent manifest: `63e1506801ddee2f1eaf64cad68a9d5c918405f642ca237c6a1ec249ff297623` - generator: `0247dd2405a68b42d99c2b005546ad2aa99b46416e3fe9489832467f6ea4eb4d` - checker: `211ebdb66bf2e2d349455d5303e889a4a1ae3323639a89dd78b3bda574dd820b` - desktop report: `dea31cc861622166dc502b333bc177b70b66b54d9c62aaccc6522745dab5ae13` - mesh GLB: `e52b9268b6524744fb498691f976000635e544ba3b47e9f8ff22b03bcdf17a94` - PBR GLB: `244cc8a992c5a70692b8bbc8333533718b3bac7022110715ce3b23d2e4c0b361` - UV GLB: `1e0397d2b69d8261b3252451b50ab4aba6525b94713719f35069a9a9d96fcfa2` - skin GLB: `4086ee4c8873aa03090338b676575b7a5335fb7c9384fec6ccb36108e71929f6` - animation GLB: `44f6cc47961a146dc97ea337ae31a8b64bb4ab213b716f81ec22129db704f1fb` - manifest: `e3554a1e739cbe3f217f6169130532365538b0c0eafbb97afc58d4d56c4287cb` ## Next Task `M12-06B`: import the desktop GLB fixture group on Web and compare topology, attributes, materials, nodes, and animations. ## Rollback Remove the desktop fixture generator/checker, five GLB files, report, manifest, and this status entry. Restore M12-05F as the queue tail and move the machine queue back to `M12-06A`. No parity ledger rollback is required.