Inspiration
Speed is not just how fast something moves. It is relative motion, camera choreography, and rhythm.
Relativity Juice: Neon Racer is a 29.5-second, 100% programmatic Blender short film for the RenderJuice contest theme Speed: a 1970s/80s synthwave wedge supercar (HeroRacer) races a crimson interceptor (RivalRacer) down a wet-mirror neon highway, overtakes door-to-door, ignites hyper-boost, and vanishes into a segmented OutRun sunset while a GTA-style dual speed HUD hits 999 KM/H · MAX!.
Every mesh, shader, Geometry Nodes tree, F-curve, camera cut, HUD bar, and the entire 124 BPM stereo soundtrack is generated from Python. Zero hand-keyed animation. Zero third-party assets.
What you are watching
- 2 s Blender title card
- 25 s five-shot race (600 frames @ 24 fps, Cycles GPU, 1920x1080)
- 2.5 s Blender end card
Five beat-synced native Blender cameras:
CamLaunch– low wheel launch + 3D particle exhaust sparksCamHeli– sweeping helicopter orbitCamOvertake– front-3/4 door-to-door passCamBoost– wide-FOV hyper-boost chase (35 mm → 20 mm pull) + shockwave ringsCamOverview– top-down finale as both cars max out and disappear into the sun
How we built it
Stack: Blender 4.5 LTS, Python (bpy), Geometry Nodes, Cycles GPU, NumPy, a pure-Python 48 kHz stereo synthwave engine, ffmpeg.
bun run racer # build + render the neon race
bun run media:racer # encode media/relativity-juice.mp4 + preview.gif
bun run blend # export standalone out/neon-racer.blend
Highlights from src/racer.py and src/synthwave.py:
- Procedural wedge supercars with metallic clearcoat, neon piping, louvers, spoilers, grid lightbars, plasma thrusters, and arc-length wheel spin with Cycles motion blur
TrailNodes/HighwayNodesGeometry Node trees built node-by-node in Python: turbulent 3D exhaust sparks that cool from white-hot cyan/gold to magenta, plus 124 BPM mountain ridges and gantries- Timeline-marker camera editing with shutter-safe guard keyframes
- In-camera GTA dual speed-bar HUD (
L-CAR/R-CAR) rendered natively in Cycles - 124 BPM 90s synthwave soundtrack synthesized in pure Python (kick, gated snare, hats, Simmons fills on cuts, sidechained arp bass
Am–F–C–G, chorus pads, delayed lead, turbo plasma whine)
Challenges
- Keeping five camera cuts beat-synced to the soundtrack without hand-keying
- Building Geometry Nodes particle heat advection that reads as speed, not noise
- Fitting a full stereo synth arrangement into a contest-length cut while the HUD and shockwaves still sell the finale
What we learned
Programmatic Blender is not just automation. When meshes, motion, FX, edit, HUD, and audio all come from the same Python source of truth, the film stays coherent under iteration. Speed becomes a system you can tune, not a pile of keyframes.
Assets & AI disclosure
- Third-party assets: none (no models, textures, HDRIs, samples, or music packs)
- Font: Blender built-in only
- AI: no AI-generated images/meshes/frames; every pixel is Cycles. Code, tests, and docs were written with an AI coding assistant (Claude).
Run it
Needs Blender 4.5 LTS, Python 3, ffmpeg, Bun. See the README for the full command list.
Targets: Major Awards scorecard + Best Procedural & Programmatic Animation, Best Motion Design, Best Simulation & FX.

Log in or sign up for Devpost to join the conversation.