A 4WD sandbox where the physics comes from the parts. Bolt it on, then drive it.
The 4WD Mod Simulator runs in the browser on DownThunder. Pick one of 34 rigs, fit tyres, a lift, lockers, bars and a rooftop tent, and see what each one does to weight, centre of gravity, tip angle and clearance. Then take it out on twelve tracks, from K'gari's beach to the slickrock at Moab, and find out whether the lift you were so pleased with actually helps.
- Role
- Just me. Physics engine, 3D world, interface and API, from Claude Design mock-ups.
- Timeline
- 29 September to 25 October 2026: 722 commits and 46 releases.
- Stack
- Nuxt 4, three.js, own TypeScript physics, Laravel
- Client
- DownThunder · Browser game · 2026
"Everyone has an opinion on 35s and a three-inch lift. I wanted somewhere you could try it before you pay for it."
The questions about mods are always the same. Will 35s fit, what does a rooftop tent do to the way it leans, are lockers worth it? The honest answer is usually “it depends on the rest of the build”, which is exactly the part that is hard to picture.
So the simulator works it out from the build: what the rig weighs, where the weight sits, how far the wheels travel and what grips. The numbers are estimates for comparing builds, and the page says so. But they move the right way, and you can take the result for a drive.
Torsten · Brisbane// By the numbers
- 34rigs, from a Jimny to a Unimog on 47s. Five are TrailDays trophies
- 12tracks from K'gari to Moab, with ten missions on four of them
- 42mod settings in eight groups, from tyre size to a 270° awning
- 722commits in four weeks, 29 September to 25 October 2026
The same 76 Series, stock and built.
A stock 76 Series wagon in the workshop, then the same wagon after twelve changes: 35-inch mud tyres, a three-inch lift, both lockers, bullbar, spotties, winch, snorkel, rock sliders, roof rack, rooftop tent and awning. The build sheet keeps score. It is 391 kg heavier and its centre of gravity sits 15 cm higher, so it now rolls at 44° instead of 51°. In return it gets 5 cm more clearance and 7 cm more wheel travel, and uses 5.6 litres more per 100 km.


Physics on a phone, without cooking the phone.
A browser tab is a tight place for a driving game. The interesting work was making it behave the same everywhere and keep running smoothly on a phone. Each of these comes with a measurement in the commit that fixed it.
The same drive at any frame rate
- Problem
- A 120 Hz phone and a 30 fps laptop drove slightly differently. At 30 and 120 fps, 6 and 5 of the 102 headless test runs came out different.
- What I did
- The drive got its own clock: fixed steps of 1/60 s however fast the screen draws, with the leftover time carried to the next frame and the picture blended between steps.
- Result
- The same inputs give the same drive at 30, 60 and 120 fps, to six decimal places.
Phones running hot
- Problem
- At 60 fps a phone's GPU ran flat out for the whole drive. An iPhone 15 Pro got hot and throttled itself from 60 down to about 12 frames a second after 20 seconds or so.
- What I did
- Phones draw 30 frames a second by default, with 60 a setting away. The physics clock takes two steps per frame, so the handling stays the same.
- Result
- A steady frame rate on phones, and the rig drives exactly as it does on a desktop.
Ground that streams in
- Problem
- Each track is open ground in every direction, built in tiles as you drive. Working out a tile's ground took 66 ms of the main thread, and you could feel it.
- What I did
- Heights, water, colours and worn ruts are now worked out in a Web Worker and handed back ready to draw.
- Result
- 5 ms of the main thread per tile. Frames over 20 ms dropped from 202 to 17 in 900.
A freeze the first time
- Problem
- The first time something came into view, its shaders were compiled on the spot. On the Glasshouse Mountains the first rig by the track cost a single 967 ms frame.
- What I did
- Shaders are compiled in the background before things come into view, and rigs further up the track are prepared ahead.
- Result
- No more stall when a rig, a forest or a shadow first appears.
The Physics panel, annotated.
Press O on any track and the rig turns see-through, the yellow plumb line hangs from its centre of gravity, and the numbers sit next to it. This is the built 79 Series dual cab on the test track.

- 1Rig and trackSwap either without losing the build. Weather and time of day sit right next to them.
- 2ModsSix changes on this rig, one click from the full list of 42 settings.
- 3Back to drivingT starts the drive from right here, with the build as it stands.
- 4What your mods doWeight, tip angle, centre of gravity, clearance, wheel travel and fuel, worked out again with every change. A tick on each bar marks the stock figure.
- 5Centre of gravityEvery part is a mass at a position: a rooftop tent moves the dot up, a bullbar moves it forward. Its height sets the angle the rig rolls at.
- 6Three live testsSide slope, rocks and angles run on the rig itself, not as a table of figures.



No scripted rules, just parts and forces.
There are two physics models. Classic is hand-tuned and good for comparing builds. Advanced, the default since 23 October, works the drive out from the parts: an engine with a torque curve, an automatic gearbox, a transfer case with 2H, 4H and 4L, and diffs that are open, locked or limited-slip, with each wheel turning on its own. The body is one rigid body on four damped springs, so it squats, dives, leans and rolls over without anyone writing a rule for it. Press N and the forces are drawn on the rig.
- 01Tyres and diffs as constraints. Tyres, diffs and brakes are solved with sequential impulses, the way Box2D and Jolt do it. Each tyre has a grip budget, its friction circle, shared between pulling and turning.
- 02Sand and mud that give way. Sinkage and drag come from the Bekker and Janosi–Hanamoto soil models, over 19 surface types. The code says it plainly: tuned, not measured.
- 03Readable before literal. Lifts are exaggerated on purpose: the physics counts each inch as 1.8, and the drawing adds more so a lift looks like one. Fine for comparing builds, and the page says it's not an engineering assessment.

Twelve tracks, all of them a bit different.
Real screens from the simulator, no mock-ups. Each track is open ground with a winding track through it, and the rig you built is the one you drive.






Four weeks, forty-six releases.
DownThunder's changelog is written by hand and has its own tab for the simulator. Most weeks brought a new track or a new rig.
Read the changelog: /versions ↗- 29 SEP · 3.5First version: 13 rigs, three live tests and a rocky track. Builds kept per rig and shareable by link.
- 30 SEPDriving on open ground streamed in tiles. Twelve more rigs, and members' own rigs from their garage.
- 2 OCTOne water system for creeks, bogs and the sea. Game controllers work.
- 7 OCTAdvanced physics, worked out from the parts, and a fixed clock so it drives the same at any frame rate.
- 11 OCTK'gari, the whole island, starting on the barge from Inskip Point.
- 15 OCTThe first mission: a rig on fire on the Old Telegraph Track.
- 19 OCTThe workshop scene. Build my rig opens it.
- 23 OCT · 3.66Tropical Coast. Advanced physics becomes the default.
- 25 OCT · 3.69Cattle stations, a wash bay at Eurong and two Big Things.
Which tools I picked, and why.
- Load the game only when someone wants it
- The page arrives as a still image and text, so a visit that only reads costs nothing. The 3D code loads on Just drive or Build my rig.
- three.js for the picture, my own physics
- No physics library and no game engine download. Every rule lives in TypeScript I can read, test and explain.
- Deterministic, so it can be tested
- A fixed clock means the same inputs drive the same way. 68 test files drive the real scene in Node with an autopilot, and a change that moves a result fails a test.
- Share links carry only the changes
- A build link holds what differs from stock, and anything out of range is clamped when it's opened.
- Honest about its numbers
- The page calls them estimates for comparing builds and tells you to check your GVM and your state's rules before fitting anything.
- Designed in Claude Design
- The page, the phone layout, the HUD and the workshop started as Claude Design mock-ups and were built from there.
Need something people can play with, not just read?
Configurators, calculators, something in 3D. I'll build it so it runs on a phone, loads only when it's wanted, and is honest about its numbers.
Start a conversation