# M12-07A Status status: done task: OBJ single-Mesh desktop positive fixture updated: 2026-08-18 America/New_York enablingTask: true parityStateChange: false ## Scope Pinned Blender 5.2 `WM_OT_obj_export` now generates one deterministic Wavefront OBJ object with four positions, four UV coordinates, one explicit normal, two triangle faces, two material records, and two material groups. The `.mtl` sidecar is kept beside the OBJ and both files are bound to the canonical semantic report. Web parsing/import, multi-object and negative cases remain queued. ## Evidence - `build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generate-obj-single-mesh-fixture.py -- tests/files/web/m12_obj_desktop_v1 tests/golden/M12-07A/desktop-fixture.json` completed with 4 positions, 4 UVs, 1 normal, 2 faces, and 2 materials/groups. - `node tools/web/check-obj-single-mesh-fixture.mjs` passed deterministic regeneration in a fresh temporary directory and byte-for-byte OBJ/MTL comparison: `obj-single-mesh-fixture-ok vertices=4 normals=1 uv=4 faces=2 materials=2 deterministic=true next=M12-07B`. - Runtime identity matches the pinned M12-05A Blender 5.2 inventory; the report is anchored to `blender-5.2.0/source/blender/io/wavefront_obj` and `wm.obj_export`. - Package hash remains frozen; no Web route or parity ledger status was changed. ## Artifact Hashes - parent manifest: `1c732b8d9f1a0bdb502f44e2e843e91efea12e93483a35658f8a9c70a69a2430` - generator: `604c3006f194c7c64a487b8f760693b66830f3cfa602928b46769955e7d4f358` - checker: `3d0208f61a86d4d29796d8284756f53931c90864b15b7dfe4fcc84d7f65a8040` - desktop report: `6c560a8eecf84973c2b05f9fd50d33bd45515e97c4f7970f1502de406c39f6a5` - OBJ/MTL: `a56694d1ee28735c68381ff18c3a52581612feebac0101a53e502956c27d144f` / `392f1b10ff5a0b142d520a9443b4c96191985f15d4244c79b36fdeda0f153715` - runtime inventory: `0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4` - package: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c` - manifest: `d80b74502202effa7be15640c945dc7e04af703b58e7a15c3fe7babc43c17b46` ## Next Task `M12-07B`: OBJ multi-object, negative-index, MTL/texture-origin, and malformed-face cases. ## Rollback Remove the OBJ generator, checker, desktop report, OBJ/MTL fixture, manifest, and this status entry. Restore M12-06G as the queue tail and move the machine queue back to M12-07A. No parity ledger rollback is required.