open-standards/wai/live-conformance/scene/README.md
Transaction Science a1ecded5a2 wai: scene-carriage text, corpus README and independent Python verifier
extensions/scene-carriage.md: the bundle, the numbers that cross the
mapping, the glTF document (MPEG_media, MPEG_buffer_circular,
MPEG_accessor_timed, MPEG_audio_spatial, MPEG_texture_video) and the USD
layer each direction writes and reads, the refusals and the corpus.
scene_verify.py implements it from the text and agrees with wai-rs on
every vector; it also flips bytes of every exported document and
requires each copy to be caught.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 07:51:03 -04:00

39 lines
2.2 KiB
Markdown

# live-conformance/scene — scene carriage
The corpus of [`extensions/scene-carriage.md`](../../extensions/scene-carriage.md) §9:
`vectors.json` and the files it names.
`vectors.json` holds:
- `inputs`: the worlds and audio scenes other corpora commit, by path from this directory,
each pinned by its SHA-256: `scene.wwld` and `basic_kinematics.wwld` of
[`../../world-conformance/vectors/`](../../world-conformance/vectors/), and `moving.wscn`,
`distance.wscn` and `stereo_pair.wscn` of
[`../../audio-conformance/vectors/`](../../audio-conformance/vectors/);
- `files`: every other file with its SHA-256;
- `vectors`, each one of:
- `export`: a `bundle` — `world` and `audio`, each a path or `null`, and `media`, the
media list of §2.2 — written in a `format` (`gltf`, §4; `usda`, §6). `accept` gives the
`file` the writer must produce, byte for byte; `refuse` gives the `code` (§8);
- `import`: a `file` in a `format`, read with `params` (`null` for a document WAI wrote;
otherwise the `actor` in hexadecimal and the `world_contract` and `audio_contract`, each a
JSON text or `null`, of §5.3). `accept` gives the `bundle` it must read to, byte for byte,
and `dropped`, its report of presentation not carried; `refuse` gives the `code`.
Files: `inputs/` the worlds built in code (kinematic0, ballistic0 and truss0 nodes at tick 0,
an asset table) and, in `inputs/neg/`, a world and two audio scenes the export refuses;
`out/` every exported document; `docs/` documents WAI wrote and then altered, and documents
WAI did not write; `imported/` the WAI bytes the accepted foreign documents read to.
**Exactness.** A verifier conforms when it reaches every vector's outcome, bytes and report.
A document WAI wrote reads back to the bundle it was written from, byte for byte.
**Provenance.** `wai_scene_vectors gen` writes every file but `README.md` and
`.gitattributes` from the pinned inputs and from values written in code
(`scene_map::corpus::generate`): node ids minted from SHA-256 of a label, asset hashes
SHA-256 of a label, positions and times constants, documents written as text in code. No
media, model or recording is in the corpus.
```
python3 -I ../scene_verify.py .
```