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]>
60 lines
2.9 KiB
Markdown
60 lines
2.9 KiB
Markdown
# Interactive-Worlds Conformance Corpus
|
||
|
||
Vectors for the interactive-worlds extension's **replay-equivalence**
|
||
criterion: given the same world container and op set, a conforming sink
|
||
MUST produce the identical BLAKE3 state hash at every checkpoint, on
|
||
every machine, under every permitted arrival order. Verification is
|
||
hash equality — there is no tolerance parameter.
|
||
|
||
Vectors run the registered sim capabilities `wai.world.sim.kinematic0`,
|
||
`wai.world.sim.ballistic0`, and `wai.world.sim.truss0` (the
|
||
solver-backed registrant: position-based dynamics, 8 Gauss–Seidel
|
||
iterations, strain + fracture) under the `wai.det.fixed64` numeric
|
||
profile; the verifier dispatches on each container's `contract.sim`.
|
||
Keys are fixed test keys (actors `[1;32]`, `[2;32]`; publisher
|
||
`[9;32]`) — the corpus is fully deterministic and regenerable
|
||
byte-for-byte.
|
||
|
||
## Layout
|
||
|
||
- `vectors/*.wwld` — sealed `wai.world.replay` containers. Verify the
|
||
seal against the publisher key in `expected_hashes.json`, replay, and
|
||
compare every checkpoint hash.
|
||
- `basic_kinematics` — two actors: creates, cross-actor impulse,
|
||
scalar set, reposition, delete; 200 ticks.
|
||
- `conflict_lww` — same tick, same node, two SET_SCALAR writers; the
|
||
canonical-order last writer must win.
|
||
- `conflict_sum` — same tick, same node, equal-and-opposite IMPULSE;
|
||
both must act (net zero — the no-impulse hash).
|
||
- `ballistic_bounce` — `ballistic0` sim: a restitution-½ ball dropped
|
||
from y=10, nudged mid-flight; 300 ticks of gravity and ground
|
||
bounces, bit-exact through every bounce.
|
||
- `truss_fracture` — `truss0` sim: two actors pull the two ends of a
|
||
yield-10% member in opposite directions at the same tick; the
|
||
constraint violation exceeds yield and the member fractures — the
|
||
SUM conflict rule feeding the solver, failure as an emergent,
|
||
bit-exact consequence.
|
||
- `vectors/scene.wwld` — the shared tick-0 scene for live vectors.
|
||
- `vectors/*.ops` — live-ingestion vectors: concatenated signed
|
||
CausalOps in a fixed **adversarial arrival order**. Ingest in file
|
||
order, advance to `final_tick`, compare `final_hash`.
|
||
- `dep_gap` — the dependent op arrives before its dep (must buffer,
|
||
then drain).
|
||
- `past_tick` — an op for tick 30 arrives after tick-90 ops (must
|
||
re-derive).
|
||
- `basic_shuffled_1..3` — seeded shuffles of `basic_kinematics`'s op
|
||
set (must reach the sealed vector's hashes).
|
||
- `expected_hashes.json` — per-vector expectations.
|
||
|
||
## Running
|
||
|
||
```
|
||
cd ../wai-rs
|
||
cargo run --features world --bin wai_world_vectors -- verify ../world-conformance
|
||
cargo run --features world --bin wai_world_vectors -- gen ../world-conformance # regenerate
|
||
```
|
||
|
||
An independent implementation conforms iff `verify` (or its equivalent)
|
||
passes against vectors it did not generate. A failed vector is a
|
||
conformance failure of either the file or the sink — report it failed,
|
||
never approximately right.
|