54 lines
2.8 KiB
Markdown
54 lines
2.8 KiB
Markdown
# 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.json` completed with 2 objects, 6 positions, 6 UVs,
|
|
2 normals, 2 faces, 2 materials, relative `m12_obj_texture.png`, and both derived variants.
|
|
- `node tools/web/check-obj-multi-negative-fixtures.mjs` passed 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.
|