# Deterministic Frame-Based Video Rendering An Opus 5.5 video by [@0xKarmi](https://x.com/0xKarmi) · [Original post with the video](https://x.com/0xKarmi/status/2108495927988129839) - **Category:** Motion graphics - **Author:** [@0xKarmi](https://x.com/0xKarmi) More Opus 5.5 videos, each next to a live remake: [skillry.dev/ai-videos/opus-5-5](https://skillry.dev/ai-videos/opus-5-5?utm_source=github&utm_medium=readme&utm_campaign=awesome-opus5-5-videos) ## Prompt ```text Picture a butterfly with no memory of its last wingbeat. Ask it for frame 720 and you get frame 0, pixel for pixel. 720 frames. 12 seconds. 6 counters. All at 0. Opus 5.5 can't hand over a video file, one builder says. He made that gap the method. > STAGE - one fixed 1000x1080 canvas, fonts baked in > RENDER - a windowless engine calls draw(f) once per frame number > ENCODE - ffmpeg writes H.264, pixel aspect ratio declared > CHECK - three passes after every build By his account the model writes only the first, a drawing program. The other three get reused. Each picture depends on its number alone: no clock, no timer, no dice that land differently each run. So any frame renders the same every time. A fix is a small edit and a re-render. The sample loop is 720 pictures in 12 seconds. A hand animator at 12 drawings a second would need 144. The smoke test plays one loop unseen and counts six kinds of defect, from script errors to text on text. Six yes/no gates before a human looks. The seam check puts frame 0 against frame 720. One changed pixel means some motion isn't periodic. He reports a last render of 1,820 frames with six zeros. At the sample's 60 fps that would be about half a minute. Let one frame read a clock and the same number stops giving the same picture. We drew the rule as an X-ray butterfly, its wingbeat computed from the frame number ↓ ```