A die-cast physics simulator

Lukewarm Wheels

Orange plastic track, taken far too seriously. The batteries, the motor, the foam boosters, every loop, jump and crash are simulated. None of it is scripted.

No install. Desktop or phone, any browser with WebGL. About 0.8 MB, plus three.js and Rapier from a CDN.

1920
physics steps a second for every car on the track
5
die-cast castings, each with its own mass, wheels and drag
11
tracks: five sets and six featured builder tracks
27
trophies, from Fender Bender to Knockout Champion
0
scripted crashes. They happen because the physics says so

Five sets, one engine

Every set is plain data, built into track by one engine. A car in the channel is held to the track surface exactly; the moment it leaves, by a crash, a fall or a jump, it becomes a real tumbling rigid body, and it is caught again only if it lands upright in a lane. All footage on this page is the finished sim, filmed frame by frame at 60 fps.

  1. Set 1 · Criss Cross Calamity

    Four lanes, one crossing, eventually a crash

    A motorised hub with four foam booster wheels, two tall loops and two banked sweeps, and four lanes that cross in a #. The boosters keep cars in step, so two rarely meet. Uneven foam and clacking joints let them drift until they do. Line up all five and the crossing becomes a demolition derby.

    Modelled on the 2010 Criss Cross Crash set and the 1999 five-pack of the same name, down to the D cells.

  2. Onboard camera

    Upside down, held by nothing but speed

    The track can only push. Over the top of a loop, what keeps a car on is its own speed: v² over the radius has to beat gravity. Too slow, and the floor stops pushing and the car falls off. The Onboard camera goes round with it.

  3. Set 3 · Loop & Leap

    A launcher, a double loop and a gap

    The spring launcher puts ½kx² into the car and its plunger, so a light casting leaves faster than a heavy one. Off the lip, a car rides on until its rear axle leaves, then flies with the pitch it got from pivoting off the edge. Every jump is scored: airtime, distance, the set's best. Too weak and it drops into the gap; the Director camera cuts to slow motion.

  4. Set 4 · Race Day

    Gravity drag racing, and a card that says why

    A four-lane drag strip where gravity is the only engine. Every car keeps an energy ledger, so the result is explained, not invented: the card names the loss that differed most between the winner and the runner-up and the property of the car behind it. Add a coin, swap wheels, repaint, and run a knockout.

  5. Set 5 · Kitchen Table Grand Prix

    Off the table, down the leg, over the books

    Our own set, built through a kitchen: a spiral clipped to the table leg, a cardboard-box tunnel, a jump between two stacks of books, a loop hanging from a chair and a boosted ramp back up to the table. The challenge: get all five round three times without losing one.

What is actually simulated

Press O in the sim and the forces on each car are drawn live: the floor pushing, the wall scrubbing, the foam wheel pinching. The numbers below are the chain every launch travels through.

  1. 4 × D cellsInternal resistance that rises as they drain. Tired batteries sag under load: weaker launches, cars that miss the loops.
  2. Brushed DC motorBack-EMF and a gear train. Every launch loads the same motor, so five cars in the nips at once bog it, and the gauges show it.
  3. Foam booster wheelsEach pinches a passing car against the far wall: a squeeze from how much wider the car is than the gap, a drive from foam friction that saturates with slip.
  4. The car on the trackGravity, the centripetal demand of every curve, a floor and walls that can only push, rolling resistance per wheel type, wall scrub, side-slip, air drag. At 1920 Hz.
  5. The crashCars hit as rigid boxes with restitution and friction. A hard hit throws them out of the channel into Rapier, a full rigid-body engine, until they land upright or a hand carries them back.

A toy, with its gauges showing

The HUD is the inside of the hub: battery voltage, motor current and rpm, foam wheel speed, how many nips are busy. The garage shows each car's laps and best time. Crashes get a banner, jumps get scored, and 27 trophies reward the things worth trying.

Imperfection is modelled on purpose. Track joints clack, every car's wheels drag a little differently, worn foam grips each pass at a slightly different speed. Without that, the boosters lock the cars in step and they never meet.

Build your own, share it as a link

The Track Builder snaps pieces together the way real track does: straights, curves, banked turns, ramps, loops, corkscrews, spirals, jumps, boosters, splitters, hammers and paddle wheels. A car test-drives the track headless after every edit and the builder says where it would fail. The track travels in the link.

Every piece is one letter; the letters are the share code.
Pick a Lane, one of six featured tracks: PSBY.SBOSuSSSSSSuM.SBCSvSSSSSSvM

The garage

The Showroom puts one casting at a time on a turning plinth, with the numbers the physics uses and what it did this session. The five are the 1999 five-pack: a Porsche 959, the Aeroflash, a Ford GT-90, a Chevy Stocker and a Chevy 1500 pickup, from 37 g to 46 g.

Photo mode (P) hides everything, freezes time and saves a PNG. The Director camera cuts between shots on its own, with slow-motion crash and jump cams. Replay (R) plays the last one back.

How it was made

Built with Claude Code, from a first render in September 2026 to this. The first version ran everything as free rigid bodies and never held a loop; version two holds each car to the track and only hands it to the rigid-body engine when it leaves. Each frame below is a milestone from the build's own archive.

    Engine
    Three.js r185 for rendering, Rapier 0.20 for free bodies, plain scripts with no bundler
    Units
    Centimetres, grams and seconds; gravity 981 cm/s²
    Testing
    A headless regression replays 13 scenarios and checks every car's state bit for bit
    Honesty
    Track width, battery count and layout from the real set's instructions; masses, motor constants and foam stiffness are engineering estimates, tagged as such in the code

    Go on, crash something.

    Play Lukewarm Wheels free