A world model you can put in a receipt.
Same actions in, same frames out — everywhere.
wai.world.model carries an interactive world as its action trace. Every
control is a signed action op, and the trace replays, in any arrival order, to one
session hash: that is replay-equivalence. A declared model identifier pins which
renderer turns the trace into frames.
The capability's conformance is the action trace. This demo's integer renderer also makes every
frame byte-identical; a sink may declare another renderer. Here the transition
z₊₁ = T(z ‖ action) and the synthesis frame = g_s(z) are both integer
convolutions, run by the reference implementation compiled to WebAssembly with no ML runtime and
no floating point, and the page re-checks each generated frame against the native reference.
Two checks
First the page replays a committed action walk through the integer world model and checks every generated frame against the checksum the native reference recorded; — frames are checked. Then it hands you the arrow keys: each keystroke advances the integer transition, renders a new frame, and is recorded as a signed action op. The trace of what you did replays to one session hash, the same on every machine.
The model
A small action-conditioned world model trained on a synthetic, procedurally generated scene and post-training-quantized to integers. It demonstrates a replayable, byte-exact session.
Where the code lives
The capability is in the standard; the reference engine is Apache-2.0 in the open-standards repository. This page checks frames against the reference implementation's recorded hashes for a demo fixture and computes the session hash in the tab. The frame hash shown is 64-bit FNV-1a; the session hash is a BLAKE3 hash chain over the model header and the ordered action ops.