Ridgeline Runner

One block.
Two worlds. Nineteen shots.

An AI car film built like a real production: every camera move locked in a Blender previz before a single generation credit was spent — then the same master dressed in two opposite worlds.

The Process

Lock the camera before
you spend a credit.

The core idea: a 19-shot / 30-second sequence blocked in Blender becomes the law that every AI generation must obey.

STEP 01

Scripted blocking

A Python script builds the greybox: terrain masses, a proxy coupe, a green humanoid driver — and 19 cameras on hard-cut keyframes with a Track-To aim rig. Every cut and camera move decided before anything was generated. The first cut of this script produced a black screen — and it took eleven render-and-diagnose passes to reach the final blocking video: hunting a shared-camera-fcurve drift bug, an euler gimbal flip, interior cameras buried inside solid proxy geometry, and a contact sheet that was silently sorted out of order. Every bug found, fixed, and verified frame-by-frame before moving on.

STEP 02

The 720-frame master

The previz renders to video and becomes law: every generated shot must re-render its block counterpart one-to-one — same cut, same path, same timing. The prompt carries an arbitration clause: if the text and the block disagree, the block wins.

STEP 03

Reference kit

Each world needed three assets, all generated with Nano Banana Pro in Higgsfield: the hero car (two-panel reference sheet — rolled until the design was truly original), the driver (character turnaround from a personal photo), and one atmosphere reference defining weather and grade — storm-and-fire, or alpine noon. These are the actual sheets the film was generated from:

STEP 04

Generation — Seedance 2.5

omni_reference mode in Seedance 2.5: block video + refs + a 19-beat timeline prompt with per-shot dressing and timed audio accents. 1080p with native sound design, 270 credits per take.

STEP 05

Editorial

Seedance locks identity — car, driver, grade — but treats shot order as a suggestion. The fix: reorder in an NLE, or split-generate short segments.

Take 01

Rain & Fire

burning city heavy rain 270 credits

A gunmetal supercoupe runs a mountain road ahead of a burning skyline. Storm blue against ember orange, the road a mirror of firelight.

WorldNight storm; fire glow on the horizon as distant threat — never flames on the road. Wet asphalt doubles every light source.
CarMid-engine supercoupe, gunmetal-slate blue, vertical LED blades, bronze split-spokes. Identity held from a single two-panel ref across all 19 beats.
GradeTeal-and-amber complementary; deep blacks, rain visible in every beam.
block vs final — synced
greybox master
final take
0.0s

References used — Nano Banana Pro

Hero car reference
Hero car — rain & fire
Driver reference
The driver — race suit
Take 02

The Alps

dolomites bright noon same block

Same nineteen cuts, opposite planet: a graphite 300 SL Roadster, red leather cockpit, and a gentleman racer running a sunlit pass.

WorldHard alpine noon — limestone peaks, saturated meadows, crisp shadows. Zero re-blocking; only the dress layer changed.
Car & driver1957 Mercedes 300 SL Roadster in anthracite with whitewalls; driver in a black-and-gold leather racing suit. Red cockpit does the color work against green and limestone.
PerformanceSame moves, re-pitched: the drift beat becomes a long-hood hairpin with one degree of slip — elegance, not escape.
block vs final — synced
greybox master
final take
0.0s

References used — Nano Banana Pro

300 SL reference
Hero car — 300 SL
Driver reference
The driver — Alps
World reference
The world — alpine pass
What we learned

Directed end-to-end by Hermes Agent on GLM 5.3 Flash — scripting the block, diagnosing the renders, and writing every generation prompt. References lock identity — car, face, world, grade held across all nineteen beats. But the model reads timeline as suggestion: beats reshuffle, a beat vanishes, one frame blurs. The blocking master is what survives — lock geometry and rhythm in greybox, treat the generated film as dailies, and finish in an NLE if needed.

Production sheet
19shots / 30s timeline
720previz frames @24fps
2worlds, one master
3–4reference assets per take
270credits per generation
1080pnative audio