open-standards/wai/audio-conformance/README.md
Transaction Science df20c392d8 wai: interactive + temporal cargo classes, provenance, telepresence
Adds the "carries whatever it can reconstruct, verifies whatever it
carries" surface on top of the existing neural/codec WAI. All builds
green against this base (wai-rs all-features tests + clippy, wai-web
wasm, wai-spz-gen, wai-relay).

Reconstruct half — each a spec + conformance corpus + in-tab browser
sink that re-derives the corpus hash, over one wai.det.fixed64 floor:
  - interactive worlds      replay-equivalence   (3 sim registrants,
    relay multiplayer, session receipts, glTF + real-SPZ assets)
  - spatial audio           mixdown-equivalence
  - haptics                 sample-equivalence
  - state-feeds             replay-equivalence  (non-physics sim)
  - avatars / digital humans  pose-equivalence  (+ telepresence)
  - volumetric / 4D splats  frame-state-equivalence (WebGPU EWA render)

Verify half (lever 4):
  - asset provenance — signed, energy-accounted lineage for opaque
    captured content WAI does not reconstruct; tamper-evident in-tab.

Cross-cutting: per-class JWP receipt profiles; a native energy meter
(IOReport via macmon, no sudo) emitting receipts with real measured
joules. Codecs gated behind a `codecs` feature (default on) so the
world/wasm sinks build without the C codec chain.

Excludes the separately-evolving neural subsystem (semantic path, GLC
rANS, ONNX tooling) to avoid reverting newer origin work.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-13 23:16:42 -04:00

39 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Spatial-Audio Conformance Corpus
Vectors for the spatial-audio extension's **mixdown-equivalence**
criterion: given the same `wai.audio.scene` and the same declared output
layout, a conforming sink MUST produce the identical canonical PCM,
hence the identical BLAKE3 — on every machine, no tolerance parameter.
The audio counterpart of replay-equivalence.
All vectors mix to the mandatory `stereo` floor under the
`wai.det.fixed64` numeric profile, `wai.audio.pan.sqrt_constpower` pan,
`wai.audio.dist.inverse_clamped` distance. Sources are deterministic
synthetic tones (no clock, no entropy); in a real sink they'd be decoded
`wai.audio.*` assets — the corpus provides the decoded mono PCM so each
vector isolates the one new thing, the deterministic mixdown.
## Layout
- `vectors/<name>.wscn` — the scene container (contract + object table +
asset table).
- `vectors/<name>.sources.bin` — the decoded mono sources:
`n u32 | n × (hash[32], len u32, i16le[len])`, sources in hash order.
- `expected_hashes.json` — per scene: `scene_hash`, `layout`, and the
expected `mixdown_hash`.
Vectors:
- `stereo_pair` — two static sources, hard-left + hard-right.
- `distance` — one source placed near vs. far (inverse-clamped atten).
- `moving` — a source whose keyframed trajectory sweeps left→right.
## Running
```
cd ../wai-rs
cargo run --features audio_scene --bin wai_audio_vectors -- verify ../audio-conformance
cargo run --features audio_scene --bin wai_audio_vectors -- gen ../audio-conformance # regenerate
```
Pass = hash equality. A failed vector is a conformance failure of the
file or the sink — report it failed, never approximately right.