A first-person driving simulator running on real OSM track geometry. Three.js rendering layered over a hand-written 240 Hz vehicle physics engine — one codebase, shipped to both web and Android via Capacitor.
Longitudinal slip ratio and lateral slip angle are folded into one normalized slip ρ, sharing grip inside a friction circle. Accelerating, braking and cornering draw on the same limit.
Each wheel casts a ray to the road for penetration depth, then feeds spring + damper force into the body. Even a stiff kart keeps all four wheels planted via modelled compliance.
Both scale with the square of speed. Downforce loads the tires vertically to create high-speed cornering grip — the defining trait of a wing car.
In first gear the clutch slips, holding the engine in the power band until the wheels catch up — instead of the revs cratering the instant the clutch grabs.
Shifts up just shy of the limiter. Lift off and the revs fall on their own, so no upshift fires while coasting — the gear holds for engine braking.
Drops a gear once revs fall below the band (except under hard braking), keeping engine braking available into a corner.
All per-car difference lives in one file; physics, audio and visuals read the same spec. Adding a car means adding data.
0–100, top speed, cornering, shifting and reverse are measured headless — every physics change is regression-checked.
Three depth layers of streak quads — vertical at a standstill, raked long at speed. Wet reflective road, grip 0.72, layered rain SFX, headlights auto-on.
Lamps every 62 m. Each light pool is projected as an ellipse aligned to the road's surface basis, so it lands on the tarmac regardless of which side the lamp is on. Real point lights track only the nearest lamps.
A port of Antonio's MIT waveguide model — bidirectional waveguides, valve-timed reflections and a muffler set the timbre from cylinder count and exhaust length. Tire, wind and rain layers sit on top.
Physical Sky shader with PMREM environment reflections, chunked instanced forest, shadows. A quality tier auto-scales particle and light counts down on mobile.