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

2.9 KiB
Raw Permalink Blame History

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.