A low-poly racing car drives around a custom-built track with colorful modular road pieces, rendered in real time using Three.js in the browser.
Ricardo Cabello, better known as mrdoob, has taken Kenney's Starter Kit Racing, a Godot project, and ported the whole thing to plain JavaScript and Three.js. The result is a tiny, cheerful racing game that runs in your browser with no build step and no fuss. You lay out track pieces in an editor, hit play, and a low-poly car with surprisingly satisfying physics goes tearing around whatever circuit you just invented. The best part: your track is encoded in the URL. Build something, copy the link, send it to a friend. That's the whole distribution model. It has the energy of a game jam entry that happens to be built by the person who created Three.js.
What makes this technically interesting is the stack underneath. Physics come from crashcat, Isaac Mason's new pure-JavaScript rigid body engine. No WASM blob, no multi-megabyte payload, just tree-shakeable JS that handles collisions at 60Hz without breaking a sweat. The Godot collision shapes (concave polygon data from .tscn files) get approximated as crashcat cuboid colliders. The codebase is also refreshingly legible: Track.js handles the grid layout, Vehicle.js does the driving, Physics.js wires up walls. Each file does one thing.
Go play with it. Build a ridiculous track. Then open the source and notice how little code it actually takes. If you've been curious about crashcat as a Rapier alternative, or you want a clean reference for how to structure a small Three.js game without a framework, this is a good afternoon's reading.
- Live Demo: https://mrdoob.github.io/Starter-Kit-Racing/
- Source Code: https://github.com/mrdoob/Starter-Kit-Racing
- Author: Ricardo Cabello, aka mrdoob (X, Instagram, GitHub)