Skip to main content
This page is the demo

A film.
Ship the world that makes it, not the pixels.

wai.film.linear film-equivalence In the standard

A film generated from a world travels as the world that makes it, a camera track and a frame schedule, together with the assets it references. Every conforming sink re-derives the same per-frame state and camera identity; the pixels are the sink's own render. A wai.film.linear carries an embedded wai.world.replay, a keyframed camera track and a frame schedule. Your browser runs the reference implementation's world engine, compiled to WebAssembly, reads the moving world at each frame tick, projects it through the interpolated camera, and re-derives every frame's identity — BLAKE3(world state hash || camera pose): film-equivalence. Scrub the frame slider: the camera moves along its rails and the world moves under it. The readout shows the size of the selected film file.

—
world tick — camera fov — film hash — frames root — film file —

The film is instructions

The wire carries the world that generates the imagery and the camera that frames it, not a rendered pixel stream. The render you see, projecting the world through the camera, is the sink's presentation, as it is for the worlds renderer.

Film-equivalence

It composes two guarantees: the embedded world's replay-equivalence (every sink agrees on the state hash at every tick) and the wai.det.fixed64 camera track. Each frame's identity is one BLAKE3 hash on every machine, with no tolerance parameter.

Scope

This applies to films generated from a world: animation, CGI, motion graphics. Live-action capture is sampled content and travels as wai.video.*. This is a way to carry the synthesizable part of film, not a video codec.

The films on this page are the film conformance corpus, and the reference engine is Apache-2.0 in the open-standards repository. The wai.film.linear capability is in the standard. Each film is a complete WFLM file: a sealed kinematic world plus a camera track. The points are the world's moving subjects; the grid is the ground plane, projected through the same camera. The verified object is the per-frame hash, re-derived in this tab; the projection is the sink's render.