What it is

A lone CPU render bucket crawls across frame 1 of a film, one amber tile at a time: the slow spiral every Blender artist has watched at 2 a.m. Then the cloud shows up. In the next lane a swarm of cyan light streaks dives in and renders all 40 frames of the same film in one accelerating cascade, and the camera chases the wavefront down the filmstrip. When it's over we cut back to the CPU, which has finished a few more tiles. Speed here is the gap between waiting and done.

Watch (1080p, 16 s): https://github.com/swiftbotlab/bucket-race/releases/download/v1.0/bucket-race.mp4

How it was made

Everything comes from one Blender Python script (speed.py, in the repo) run headless in Blender 5.0:

  • The "movie" inside the frames, a neon highway at sunset, is painted procedurally with numpy.
  • The two film strips are built as meshes from code: 46,080 tiles, plus sprocket holes and frame borders. Each tile's render schedule is computed in Python and stored as mesh attributes that the shaders read. The CPU follows a square spiral out from the sun; the farm blooms each frame from the centre outward.
  • The 1,920 light streaks are a Geometry Nodes system built in code and driven only by Scene Time. Each trail is aligned to its velocity relative to the camera, so motion blur lengthens the trails instead of smearing them.
  • The camera flies a Hermite spline evaluated per frame; the bloom is a compositor node tree built in code.
  • The soundtrack is synthesised from the same schedule: one tick per CPU tile, one ping per landing streak, and a whoosh that follows the camera's speed.

Rendered with Cycles on a 6-core ARM CPU (no GPU): 384 frames at 1920x1080, 64 samples, motion blur, about 71 minutes. That's exactly the kind of machine the film is about.

No generative-AI images, video or audio, and no third-party assets: every image, mesh, motion and sound is computed by the script. The type uses Blender's built-in font.

Challenges

With no GPU, EEVEE was not an option headless, and this Blender build has no denoiser, so the scene is emission-only in Cycles. A fixed shutter smeared fast streaks into grainy blades; the script now shortens the shutter automatically while the camera moves fast.

Built With

Share this project:

Updates

Submission history