What the engine decides.
Three decisions you do not pass as settings. They make the output reproducible, smooth, and still worth watching.
The clock refuses wall time.
A frame is seeked, not played. Before any script on the page runs, Date, performance.now, requestAnimationFrame, the timers and Math.random are replaced with functions of the seek time, so there is no wall clock to read and nothing unseeded to draw from.
So the picture at time t is the same whether it renders first or last. That is what lets the renderer split a film into fixed slices and capture several at once on one browser, and what makes two renders of a page comparable. The end-to-end test renders fixture pages twice and compares the decoded frame hashes. How that works, in full →
core/engine/page-clock.jsseek(t) // pure in t → same picture, any order → bin/vawe e2e // renders twice, compares
Blur follows the motion.
You do not set motion blur per element. For the final render, a speed pass measures how far things move in each frame: a still frame gets one sample, and a fast one gets enough subframes to blend into one streak. A moving thing blurs; a still thing never does.
Sound is decided offline too. <audio> tags are never played live: the final render mixes them at their data-at times, and a voice-over track ducks the music bed under it.
still frame → 1 subframe fast move → up to 3, blended bin/vawe ship // 60 fps, blur, audio
Correct is not good enough.
Any engine can render technically correct video. Making it worth watching is the hard half, so a film goes through a loop before it ships: a draft check names static windows, blank runs, small text and a mix that is too quiet or too loud; a critique runs in a session that did not write the page; and a judge in a fresh session scores the key frames. A pass is never self-recorded.
A rule can be waived, and the waiver has to state its reason in the page or the render refuses. That one sentence is the whole mechanism: it turns a reflex back into a decision.
dev → shipbin/vawe dev // draft + draft check bin/vawe critique // sheet, strip, deltas bin/vawe review // clipped glyphs, timing bin/vawe judge // a fresh session scores bin/vawe ship // final + fresh judge