Interactive worlds.
The sink makes every frame.
What arrived over the wire is not video. It is a wai.world.* payload: a
tick-0 world plus Ed25519-signed operations. The HUD shows its size in bytes. The sink is a
computer, so it re-derives every frame locally, in WebGPU, with the same Rust engine native
sinks run.
In the playground, this tab is a signed actor: click to shove the tower, open the
page in a second tab and shove from both — the tabs converge on the identical BLAKE3
state hash because the math does, not because a server says so. The sealed replay
vectors are the conformance corpus files in the standard; each ends by checking its state
hash against the publisher's signed seal.
One engine, every sink
This is not a JavaScript port. The wai reference crate compiles to
wasm32 with the codec chain off; the browser binds the identical simulation code
that generated the conformance corpus. State is exact Q32.32 fixed-point —
f32 exists only on the way to the GPU.
Replay-equivalence, observed
Conformance for interactive cargo is the temporal generalization of bit-exact decode: same world + same ops → the identical BLAKE3 state hash at every checkpoint, with no tolerance parameter. The vectors here are the corpus files, and each replay ends by checking its state hash against the hash a native build sealed into it, so the browser build and the native build agree byte for byte.
Stress is computed, not animated
In truss_fracture, two actors pull the same member in opposite directions at the same tick. Both impulses act — the SUM conflict rule feeds the solver — the member's strain exceeds its yield, and it snaps. Structural failure as a position-based-dynamics consequence, identical on every machine that ever replays it.
gallery renders a
wai.mesh.glb as a solid PBR cube; gallery (splats) decodes a real
wai.splat.spz file (SPZ, an open-source Gaussian-splat format), gunzipped and
unpacked in-tab (positions, scales, smallest-three quaternions) into sorted, alpha-blended
anisotropic Gaussians. Neither rendering touches the state hash; a Gaussian splat is
presentation bound to a node the sim moves, exactly where glTF sits.
work_steps count and a separately carried energy figure. A native
sink reads on-chip energy counters where the platform exposes them and labels the figure with
its class as a signed label inside the world receipt; where no counter is available the
receipt is sealed unmetered. This browser tab cannot read an energy counter, so it seals the
session unmetered and shows the energy as not metered.
did:key:wai- followed by the first 16 hex digits of its public
key, which names no web origin and is not an identity of this site: the seal shows the
session is intact, not who made it.
wai.world.scene / replay / live + asset media wai.mesh.glb
· the reference engine, the relay behind the playground and the conformance corpus
are in the open-standards repo, Apache-2.0.