CUT 01 / Rendering
How deterministic frame rendering works, and why dropped frames ruin an ad
Deterministic rendering paints every frame at an exact timeline position before encoding the video. That keeps motion, cuts, and product text stable instead of asking a live recorder to keep up.
Deterministic frame rendering works by setting a precise virtual time, painting the scene for that time, and capturing the result once for every output frame. Because the renderer advances by known timestamps rather than real-world playback speed, a slow browser cannot silently skip part of the motion.
What is a dropped frame?
Video is a sequence of still images shown at a fixed rate. At 30 frames per second, a three-second scene needs 90 distinct frame positions. Each one represents a planned point on the timeline.
A dropped frame occurs when the capture process fails to record one of those expected images or repeats another image in its place. That can happen when a screen recorder and the page it records both rely on real time. The page tries to animate, the recorder tries to sample it, and the machine tries to do many other things at once.
If a frame takes too long to paint, the animation clock keeps moving. The recorder may catch the scene after it has jumped ahead. The finished file can still report the requested frame rate because repeated or delayed images fill the container, but the motion inside it no longer follows the intended path.
This is easy to miss in a rough preview. In a polished ad, it appears as a hitch, a sudden change of speed, or text that trembles during a move.
Why are dropped frames especially visible in product footage?
Interfaces contain straight edges, small type, aligned columns, and repeated spacing. The eye uses those features as a grid. An uneven camera move against that grid exposes timing errors quickly.
Imagine a dashboard moving left at a constant rate. With even frame spacing, every column travels the same distance between images. If one frame is repeated and the next catches up, the dashboard pauses and jumps. The motion may last less than a second, but the change is visible because the grid gives the eye a ruler.
Dropped frames also weaken cut timing. A score accent can land on the planned timestamp while the visual arrives late. A caption may leave before the spoken line finishes. A button reveal can lose the small settle that makes it readable.
Good source material cannot fix that after capture. Real browser footage protects the interface itself, but the render clock must protect how that footage moves.
How does a virtual clock change the process?
A deterministic renderer does not press play and hope the scene keeps up. It controls time.
For each frame, it follows a sequence:
- Calculate the timestamp from the frame number and frame rate.
- Set the scene's virtual clock to that timestamp.
- Ask the scene to render its state synchronously.
- Let the browser finish layout and paint.
- Capture a still image.
- Move to the next timestamp.
At 30fps, the timestamp for frame i is based on i × 1000 ÷ 30 milliseconds. The capture can take longer than one thirtieth of a second in real time. That does not change the virtual position represented by the image.
The sequence of stills is then encoded at 30fps. Encoding decides how quickly viewers see the images, not how quickly the machine managed to create them.
What makes a scene deterministic?
The scene needs one source of time. Every moving property should be derived from the timestamp supplied by the renderer: position, scale, opacity, masks, counters, and the active beat.
Uncontrolled inputs break repeatability. A live network request can return different content. A CSS animation can advance on its own clock. A random value can move a particle to a new place on every render. A late webfont can change line breaks after early frames have already been captured.
A reliable scene therefore uses local captured assets, fixed dimensions, known fonts, and timestamp-driven motion. It loads those dependencies before the frame sequence begins. If randomness is necessary for a texture or pattern, it should use a stable seed.
Repeatability makes revision safer. Change a headline and the timing remains the same. Adjust a crop and every other shot stays put. Render the same inputs again and you can compare the outputs without wondering whether machine load changed the animation.
How does voice timing fit the deterministic timeline?
Voice is measured before the final timeline is set. Each generated line has a real audio duration, and that duration becomes the minimum time available to its scene. A requested rhythm can add a hold, but it should not cut a spoken line short.
Once the scene starts and ends are known, their cut points also guide the score. A pulse or impact can land on the actual transition rather than an estimate written before the audio existed.
This matters to the edit described in what makes a sizzle reel hold attention. Pace comes from meaningful beats. Deterministic timing keeps those beats intact through production.
What does encoding add after the frames exist?
The numbered frames are not yet a practical delivery file. An encoder turns them into a compressed video stream and muxes that stream with voice and music.
For sizzledraft, the delivery targets are vertical 1080x1920 or horizontal 1920x1080 at 30fps. The video uses h264 with the yuv420p pixel format for broad playback compatibility. Voice and the synthesised score are mixed, normalised toward -14 LUFS, and added as an AAC audio stream.
Encoding cannot restore a frame that was never rendered. Its job is to preserve and package the sequence it receives. This is why the frame process and the codec settings should be treated as separate stages.
How can a render be verified instead of merely opened?
Opening the MP4 and watching the first seconds is useful, but it does not prove the file meets its contract. Automated verification can inspect several independent properties.
First, probe the media:
- Width and height match the chosen format
- Frame rate is 30fps
- Duration is within the allowed tolerance
- Video codec is h264
- Pixel format is yuv420p
- An audio stream is present
Second, inspect the authored scene at sample timestamps for elements that exceed the viewport. A layout can look fine at the start and clip during a move.
Third, decode selected frames from the finished MP4 and compare their hashes. If every sampled image is identical, a scene that should move may have frozen. Samples from within and across beats provide a basic check that change survived encoding.
These checks do not replace a creative review. They catch technical failures so the human review can focus on the hook, legibility, and claim.
Does deterministic rendering make every animation good?
No. It makes the intended animation reproducible. A poor easing curve, unreadable crop, or crowded frame will be reproduced perfectly until someone changes it.
The production advantage is that defects become specific. If a move feels abrupt, adjust its timing function. If a caption leaves too early, change its interval. If the product is too small in vertical format, author a closer composition. The system is no longer adding random playback errors to the diagnosis.
Start with the right editorial choices. Choose vertical or horizontal from the placement, and write a hook the footage can prove. Then let an exact clock carry those choices into the file.
You can turn a public website into a deterministically rendered ad with sizzledraft. The result is not a recording of a browser trying to perform in real time. It is a sequence in which every frame had an appointment.
More practical notes, no filler.
SEE EVERY NOTE →