open-standards/wai/world-conformance/README.md
Transaction Science 3fac029a71 wai: every corpus states the provenance of its content
Each *-conformance/README.md now has a line that begins **Provenance.**:
the generator that writes the corpus and its input, and for an input not
generated here its source and licence. OER/2's corpus is settled and left
as it is. byte-exact-conformance and quantum-ops-conformance get a README.
wai-rs/tests/vectors/README.md gives a row per vector directory. Where the
staged-delivery, staged-measurement and telemetry READMEs called their
content "synthetic", that sentence is now their provenance line.

Two vectors are recorded as not generated, from the provenance audit:
int_video's video_real (a pan over a third-party picture) and
neural-conformance's photo (a third-party picture, with a decoder trained on
unrecorded images). Their lines say so and that they are to be replaced;
the photo bullet no longer names the picture's source product.

tests/corpus_provenance.rs requires the line in every corpus and a row for
every vector directory; CI runs it with the carriage tests. CONTRIBUTING
states the rule: corpus content is generated here, or recorded with a
licence that permits redistribution, and a word like "synthetic" is not a
provenance line.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 10:09:21 -04:00

62 lines
3 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.
**Provenance.** Generated here: `wai_world_vectors gen` writes every world from scenes authored in code. No capture.
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.