2.8 KiB
M12-07B Status
status: done task: OBJ multi-object, negative-index, texture-origin, and malformed-face fixtures updated: 2026-08-18 America/New_York enablingTask: true parityStateChange: false
Scope
Pinned Blender 5.2 wm.obj_export now produces a two-object OBJ/MTL positive fixture with two
relative map_Kd references and a 2x2 PNG texture. The deterministic generator derives a negative
index OBJ variant and a malformed two-vertex face variant from the same positive bytes. The report
keeps multi-object/group/material counts and expected fail-closed OBJ_FACE_ARITY_INVALID separate;
it does not claim that a Web parser or OBJ import route exists.
Evidence
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generate-obj-multi-negative-fixtures.py -- tests/files/web/m12_obj_multi_v1 tests/golden/M12-07B/desktop-fixtures.jsoncompleted with 2 objects, 6 positions, 6 UVs, 2 normals, 2 faces, 2 materials, relativem12_obj_texture.png, and both derived variants.node tools/web/check-obj-multi-negative-fixtures.mjspassed fresh-directory Blender regeneration, exact OBJ/MTL/PNG/negative/malformed bytes, negative-index acceptance shape, malformed-face arity, and PNG signature checks:obj-multi-negative-fixtures-ok objects=2 negative=true malformed=OBJ_FACE_ARITY_INVALID textureOrigin=relative deterministic=true next=M12-07C.- Runtime identity matches M12-05A pinned Blender 5.2; no Web parser, UI route, or parity ledger status changed. Package hash remains frozen.
Artifact Hashes
- parent manifest:
d80b74502202effa7be15640c945dc7e04af703b58e7a15c3fe7babc43c17b46 - generator:
8d4faed82cba76e46bf639e5031b30568e8b9a15240cbddb1c22ee7ad11d697b - checker:
61188d67efd6133e714f2d55c7c8516b9d04896de068f994523a3c398eebdd2f - desktop report:
b60ff785676c0f0168588605ad442a650615191ac00770b7e5a308cc4ade83ce - OBJ/MTL/PNG:
4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a/80338f569c67a8b1616515ba878ffc72b26e93ef2e8c361131023fb14f132f5f/44e4fd08bdda8403908349e2a62dcf103ce2d0851099fc61cd868d65ddbef78c - negative/malformed OBJ:
9457954284cac1d68e23627e3ff734c0c591b3a24086ce5aa3d0dbbfc22f01bc/6dd508b5ba944c2d15e2889c9ad9a3693845145c3bf6c9bf7df992081c915864 - runtime inventory:
0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4 - package:
cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c - manifest:
785f593271058098704498cb0a7c948305087f1a83bf8f29b6e6fb9fe9341926
Next Task
M12-07C: Web-to-desktop OBJ round-trip and loss report.
Rollback
Remove the multi/negative OBJ generator, checker, fixtures, report, manifest, and this status entry. Restore M12-07A as the queue tail and move the machine queue back to M12-07B. No parity ledger rollback is required.