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