Aston Martin Vulcan
The Aston Martin Vulcan as an interactive 3D film, live in the browser: pull the cover off, drive it out of the bay, and ride a lift up to a race circuit at night after rain.

How it’s built
- The stage, in Blender
- Python scripts rebuild every set from scratch on each run: an underground garage dressed with Poly Haven props placed as collection instances, a lift shaft behind a roller shutter, and a circuit’s pit straight at night after rain, with floodlight towers, a grandstand and pit garages.
- The cover
- A real cloth simulation: a 5.3 × 7.8 m sheet dropped on a remeshed collider of the car, with self-collision so the folds pool on the floor, then dressed in a denim twill.
- The film
- Keyed beats the page plays in turn: the reveal; scroll drives the car out past labelled parts; a button opens the shutter; scroll carries the car onto the lift and up.
- The finale
- The rain stops in the air, rises and becomes the car’s silhouette, then an X. The web replays Blender’s geometry-nodes arithmetic in a shader, so the pointer can push the points about.
- Export
- Headless Blender writes the car to glTF with its materials, encodes the baked Cycles lightmaps to RGBM WebP with a packed flicker map, and renders an equirectangular probe for reflections.
- Sound
- A background score finished in Python as if played from a PA stack at the far end of the garage, and the car’s own takes (the starter’s crank, the V12 at the reveal) finished alongside it. Sound starts off.
What it does
- A loader drawn as the car’s side profile.
- Labels on the parts the camera passes: the V12 under the bonnet, the brakes, the carbon tub and the rear wing.
- A roller shutter opened from a pedestal button, a lift that rides up a lit shaft, and a wet circuit under floodlights.
- A finale in which the rain becomes the car and then an X whose points the pointer pushes about.
Screens


Where it sits
Next.js 16 · React 19 · three.js · postprocessing · GSAP · Lenis · Motion · Blender (Python) · glTF Transform · TypeScript
By the numbers
- Keyed frames before the circuit
- 714, in four beats
- Cover sheet
- 5.3 × 7.8 m, cloth-simulated
- Car model
- 1.4 MB glTF
- Built by Python scripts
- The stage, the cloth, the circuit and the audio
