# M12-07G Status status: done task: PLY ASCII and binary little-endian capability declarations updated: 2026-08-18 America/New_York enablingTask: true parityStateChange: false ## Scope Pinned Blender 5.2 `WM_OT_ply_export` now has two independently declared capability variants for the same selected two-triangle mesh: `PLY_ASCII` and `PLY_BINARY_LITTLE_ENDIAN`. The report binds the export settings, source/operator anchor, runtime identity, header semantics, and byte hashes; the variant is never inferred from a shared `.ply` extension. This enabling task freezes desktop capability only and does not expose a Web PLY parser or import route. ## Evidence - `build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generate-ply-capability-fixtures.py -- tests/files/web/m12_ply_capability_v1 tests/golden/M12-07G/capability-report.json` generated an ASCII PLY with four vertices/two faces and a binary little-endian PLY with the same four vertices/two faces. Both headers explicitly carry their independent encoding declarations and Blender export settings are recorded in the report. - `node tools/web/check-ply-capability-fixtures.mjs` matched every runtime identity field to the pinned M12-05A inventory, validated the `ascii` and `binary_little_endian` variants, checked the vertex/face element counts and artifact hashes, regenerated both files in a fresh temporary directory, and passed byte-for-byte determinism: `ply-capability-fixtures-ok ascii=ascii binary=binary_little_endian vertices=4 faces=2 deterministic=true next=M12-07H`. - `python3 -m py_compile tools/web/generate-ply-capability-fixtures.py` and `node --check tools/web/check-ply-capability-fixtures.mjs` passed. The package hash remains frozen and N-023 parity remains blocked; no PLY Web UI route was exposed. ## Artifact Hashes - parent manifest: `3cbbcb541ee123da0ef8916ac2ca8805680d539bbf8db3b4a8d331aec418148c` - generator: `581cd84057357e3a87997cf9c07d5d5633209648ac11e44611782eb254a38ebd` - checker: `5280d6e57b7a722ea881e27b792c6082c5113c1577ac0e87f87cc87fdf59516c` - desktop report: `26b1ce83334b41778cef5ce2a1f2c4d34254f63d7c7573cb3fb550f93ddeabb2` - ASCII/binary little-endian fixtures: `63646cab9bf6ccecb23092e5e24d04df1e0a690c866127c72a35791e99262331` / `e40fbb494b8b147c555a0fc06eb191415406bb9a6c061acf6befd8464c8c41a5` - runtime inventory: `0d660b0fd8b647ebbf4e91afebd5006bd100973ab8e2507a5bfe759f477b33b4` - package: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c` - manifest: `87df9c12f9c6eacf63051b70e9bb2eb43ebd1e5c4487b3512c45adb94cbb82ea` ## Next Task `M12-07H`: PLY vertex/face/color/custom-property mapping and unknown-property loss report. ## Rollback Remove the PLY capability generator, checker, fixtures, report, manifest, and this status entry. Restore M12-07F as the queue tail and move the machine queue back to M12-07G. No parity ledger rollback is required.