In development · Mobile first · More platforms planned

Project Car Crash

Crashes that are simulated, not animated.

A driving game built on a fully simulated soft-body car. Panels crumple and stay crumpled, doors and bumpers tear away under load, and glass cracks before it shatters, all in real time and light enough for mobile.

Captured in-game, portrait
100Hzfixed physics step, 8 solver iterations
240simulated nodes in the largest car body
526spring links holding that body together
87breakable hinges, latches and mounts across four cars

No pre-made damage models, no canned animations. Every dent, tear and crack is computed the moment you hit something, and it stays.

01 · Deformation

Metal that remembers.

Each car is a lattice of a couple of hundred mass points joined by springs, generated automatically from its visual mesh. Hit something hard enough and the links near the impact soften, yield and settle into new, shorter rest lengths. The dent becomes the shape.

  • Damage measured in real joules, from the mass of both bodies and their closing speed
  • Bumps under 100 J leave no mark, so everyday driving never wears the body down
  • Crumple zones per region: soft front and rear, a stiff hull, glass on its own curve
  • Every visible vertex follows its four nearest nodes, so the car you see is the car being simulated

02 · Detachment

Parts that hold, until they don’t.

Doors, bonnets, boots, bumpers and fenders hang on hinges, latches and mounts. Each joint carries real load, measured in newtons, and gives way once enough excess load has built up.

  • A shut door shares its load with the latch and survives a scrape; an open one tears off when something catches it
  • Doors are working parts: they open, hold, re-latch and shut
  • Wheels bend on hard impacts and can break away entirely

03 · Details

Everything breaks the way it should.

Glass

Cracks spread before a pane gives way. Jagged shards stay in the frame, and the rest bursts into particle shards that bounce off the ground.

Lights

Headlights and taillights break on impact, and a shattered brake light stops glowing.

Paint

Impacts stamp crumpled-metal warps into the paint, and hard slides scratch through to the primer.

Reflections

Each car renders its own live reflections, budgeted to keep eight cars on screen at once.

Crash-test dummies

Ragdoll dummies that walk, run, and climb in and out of the cars.

Sound

Glass smashes, wheel slip, and an engine layered by RPM.

04 · Driving

Grip, slip and drift.

A Pacejka-inspired tyre model gives every tyre a peak-then-slide grip curve and a friction ellipse, so braking, cornering and power all compete for the same grip.

  • Ackermann steering and downforce that builds with speed
  • Torque curves, an automatic clutch and gearbox, and engine braking
  • Skid marks and tyre smoke wherever the tyres slide

05 · Garage

Four cars, one engine.

Each car is a folder of data: its mass, materials, crumple zones, joints and engine. A new car, or a retune, is authoring work rather than code.

Palomino Statesque
1550 kg · 375 Nm · 4-speed
Bellandi Fenice
1550 kg · 645 Nm · 7-speed · doors open upward
Dover Furyline
1550 kg · 620 Nm · 3-speed
Makina Chefe
2200 kg · 620 Nm · 3-speed · off-roader

06 · Under the hood

Native C++ on Jolt Physics.

The soft body is not a separate solver bolted onto the game. Every node is a rigid body and every link a spring joint inside Jolt, so cars collide natively with the world, with each other and with the dummies.

Engine
Godot 4, mobile renderer
Physics
Jolt Physics, fixed 100 Hz step with 8 solver iterations
Native layer
C++ GDExtension on godot-cpp, around 20k lines, built with SCons
Soft body
Lattice generated from the visual mesh: rigid-body nodes, 6-DOF spring links
Authoring
A local web tool to inspect the lattice, edit each car’s data and bake it in a headless Godot
Platforms
Mobile first, running on an iPad (6th gen); developed on macOS and Windows

Impact energy, a 1550 kg car

30 km/h wall
54 kJ
50 km/h pole
149 kJ
60 km/h wall
215 kJ

Damage is scored in joules, so tuning means something physical. Crumple materials respond along curves running from 3 kJ to 2 MJ, and anything under 100 J is ignored.

Engineering notes

How it works, in depth.

In development

Follow the crash.

There is no release date yet. Development is shared as it happens, in videos on YouTube and with the community on Discord.