open-standards/wai/world-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

60 lines
2.9 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.

# 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.