Inspiration

The Speed theme made me ask: what is the fastest thing in the world that has no engine? A rumor. Nothing travels faster than gossip, and nothing gets wronger on the way. I wanted to show speed as something you feel through escalation, not just a fast car or rocket.

What it does

An 18.7-second animated short. A paper person on a tiny paper planet whispers "I like cheese". Every retelling gets shorter, louder and more distorted ("Mike likes geese", "Elvis licks Greece!"). The rumor lights up the city like a wave, leaves a NEWS helicopter behind, and laps the whole planet in 11.7 seconds. It comes home as "ELVIS COOKS ALIENS!!!", while the truth is still putting its shoes on.

How I built it

Everything comes from one Python script (build_scene.py) running Blender 5.2 headless with EEVEE. There are no hand-placed objects and no hand-set keyframes.

  • One master speed curve drives the whole film: the rumor's angle around the planet, the message changes, the speech bubble's growth, colour and shake, the trail length, camera distance, lens and shake, the speed lines, the helicopter chase, and the "around the world in N seconds" end-card number.
  • Procedural paper city with Geometry Nodes: Poisson-disk scattering of 6 scripted building and tree variants with the equator street kept clear. A RumorTheta input, keyframed from the speed curve, writes a per-building heard attribute so windows light up in a wave.
  • Crowd and route: 26 route figures and 110 bystanders placed from a seed; each hops and blushes on the frame the rumor reaches it.
  • Helicopter: it chases at min(speed, heli_max); a bisection solve picks heli_max so it gets home exactly 2 seconds too late.
  • Sound: synthesized in numpy from the same timeline: pitched whisper chirps, hand-off pops, a rising tone that follows speed, a rotor chop, an impact, a boing and a sad trombone.
  • Parameters: seed, n_figures, n_crowd, city_spacing, planet_radius, speed_start, speed_max, accel_power, peak_frame. Change speed_max and the picture, sound and end-card number all re-time themselves.

Challenges

Keeping the helicopter "almost keeping up, then losing" without hand-tuning it, so I solved its top speed numerically. Rendering on a CPU-only box (about 18 s per frame) meant chunked, resumable renders. Making the sound sit under the picture without noise-based "whoosh" sounds that got harsh.

What I learned

When everything hangs off one function, iteration is cheap: a single parameter change re-times picture, sound and text together.

What's next

More retellings, different languages for the mutations, and a version where the viewer types the first rumor.

AI and third-party disclosure

All geometry, Geometry Nodes city, materials, animation, camera and sound are generated procedurally with Blender Python and numpy. No third-party models, textures, HDRIs, music or samples. I used AI assistance to write the scripts. Fonts: Luckiest Guy and Baloo 2 (Google Fonts, OFL).

Built With

Share this project:

Updates

Submission history