Files
workinf_Blender_Wasm/docs/status/M12-07H.md
mes123456 380cbed4ff
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Checkpoint web parity through Chromium input tasks
2026-08-19 10:39:03 -04:00

63 lines
3.6 KiB
Markdown

# M12-07H Status
status: done
task: PLY vertex/face/color/custom property mapping and unknown property loss report
updated: 2026-08-18 America/New_York
enablingTask: false
parityStateChange: false
## Scope
The production `ply-import` protocol now accepts explicitly declared ASCII and binary
little-endian PLY. Vertex position, normal, RGBA color, numeric custom properties, face
indices, and numeric face properties are mapped into a bounded canonical document. Unsupported
vertex/face list properties and unknown elements are skipped with deterministic
`PLY_UNKNOWN_PROPERTY`/`PLY_UNKNOWN_ELEMENT` loss warnings; mapped fields remain available.
The worker serializes the canonical document to bounded ASCII PLY for desktop validation.
This task does not expose a general PLY file-picker route or claim full PLY attribute parity.
## Evidence
- `build_blender_5.2.0/bin/blender -b --factory-startup --python
tools/web/generate-ply-mapping-fixtures.py -- tests/files/web/m12_ply_mapping_v1
tests/golden/M12-07H/mapping-report.json` generated deterministic ASCII and binary
little-endian fixtures containing four vertices, two faces, RGBA colors, and two numeric
custom vertex attributes. A derived ASCII fixture contains an unsupported list property.
- `node tools/web/check-ply-mapping-fixtures.mjs` matched pinned Blender 5.2 runtime identity,
artifact hashes, field counts and a fresh byte-for-byte regeneration:
`ply-mapping-fixtures-ok vertices=4 faces=2 colors=rgba custom=2 unknown=PLY_UNKNOWN_PROPERTY deterministic=true next=M12-07I`.
- `node --test web/tests/unit/ply-import.test.mjs` passed 3/3. It covers both encodings,
mapped values, unknown-property loss, serialization/reopen, and format mismatch blocking.
- `UPDATE_PLY_MAPPING_REPORT=1 CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5472
node_modules/.bin/playwright test --config playwright.config.ts --workers=1
tests/e2e/ply-web-roundtrip.spec.ts` passed 1/1. Production Chromium Worker parsed both
encodings, reported unknown loss, serialized ASCII, and pinned Blender 5.2 re-imported the
result with exact vertex/face/position counts and mapped custom/color attributes.
- `npm --prefix web run typecheck`, `node --check tools/web/check-ply-mapping-fixtures.mjs`,
and Python compile checks passed.
## Artifact Hashes
- protocol: `058a3263fde553637840a4e9ad4e8e9d923eb52c250f8000317c7f43a228881d`
- worker: `f6bf5e39e83286d7b257bbdce88f4d7fa027c64651da9765567788b5cf298c71`
- generator: `ffc051eccfc6973ee00cc791cdbd641fcce308b4083741e3e6ae82291d9347b7`
- checker: `2b055dbc705830848efdf4d8db8543a3ccc684de1f258732bcafefa86cf65c3a`
- desktop importer: `6edbc6e401a1a902dcfd11c4d767e8c8620d694e40eb4ca29dd8479f9c55ef37`
- unit/e2e: `b03a5f4b4b2a974fa26e653763470b92d1433c5d352ae09ab5492b841e6e5e1f` /
`2cadebc89057655d78e9b520bb6adf9debb27c6d783cd002efee08d269636fb9`
- desktop mapping report: `8a02fc9e364ed79e50ef00897affa9ab63808d3cb3cdabd00fdb8ee4c26ec18a`
- Chromium/desktop round-trip report: `1ca9d3b7870fcc8c9e3c9bbbd90ef48bd13bbc9ae0462312c9482f24f05f13ec`
- ASCII/binary/unknown fixtures: `acaa369c17252d4d089a2e3064d0c1fcdfdb2d066759ed160adf7869d3e859d5` /
`d0fc195fd1a101c42ac984a2382bccdddb7d0bf60dd618e9f637c964f1b30b9e` /
`a994c7126f235d0067ce4af35f8b0c6699cc83073e2a37e982edd45ece459f33`
## Next Task
`M12-07I`: PLY big-endian, malformed list, and oversized count stable blocking.
## Rollback
Remove the PLY mapping protocol, worker, fixture generator/checker, fixtures, reports, tests,
package script, and this status entry. Restore M12-07G as the queue tail and move the machine
queue back to M12-07H. No parity ledger rollback is required.