scroll-film.js, video mode). Source: our own 60 fps recording of stage 8 (captures/stage-8-60fps.mp4, frame-capture record.py), cut to 0–10 s and run through prep.py video at 800 px, 15 fps, GOP 4, no B-frames. Generating footage (motion-assets / scroll-film keyframes and legs): DOCUMENTED-NOT-RUN, no paid API calls. Below the film: the stage-4 scene, with a flight that starts when the scene scrolls into view.
The film is a recording of stage 8, made with frame-capture and scrubbed by scroll. The pipeline takes any clip — a render, a turntable, or generated footage via motion-assets.
Front, no composition. The same frame stage 0 gave you.
One camera move, three seconds. Nothing else changes.
The hero vantage. Now the frame is a decision, not a default.
The same scroll drives the exploded view.