Entertainment & Media
Neon Ride 125
A full 3D game, made entirely for the web
- WebGPU game

Services provided
Built with
An original neon night-city motorbike game that runs in the browser on Three.js WebGPU, with drifting, traffic, synthesised radio and VR.
Ride a 125cc street bike through a rain-soaked cyberpunk grid, drift for points, thread traffic for near-miss bonuses and flip through a procedurally generated synthwave radio. Everything, from the bike to the music, is original and generated in code.
| Industry | Entertainment & Media |
|---|---|
| Project | WebGPU game |
| My role | Design and development |
| Client | Personal project |
In short
An original motorbike game that runs in the browser.
Three.js WebGPU, Rapier physics, and every sound synthesised in code.
Playable here with keyboard, gamepad, touch or VR.
On every screen
Drag or scroll sideways

Overview
Neon Ride 125 is an original motorbike game that runs in the browser. You ride a 125cc street bike through a rain-soaked neon city at night, drift for points, thread through traffic for near-miss bonuses, hit nitro and flip through a synthwave radio that is generated as you play.
What's in it
- WebGPU first, with a fallback. The game uses Three.js's WebGPU renderer and TSL shaders when the browser's WebGPU passes a quick smoke test, and switches to WebGL 2 automatically when it doesn't.
- A procedural bike and rider. The default bike and rider are built in code, with inverse kinematics for the rider's arms and legs, working lights, a nitro flame and a dash screen. A licensed glTF model can replace it by dropping in one file.
- A living city. Instanced buildings with shader-lit windows, neon signs and billboards, street lights, wet asphalt with puddles and real-time planar reflections.
- Traffic. Instanced vehicles following lane paths with Bézier turns and car-following behaviour.
- Physics. Rapier at a fixed 60 Hz, with arcade dynamics on top: lean, drift slip, gears and RPM, nitro and crashes.
- Sound, all synthesised. The engine, effects and every radio station are generated with WebAudio. There are no audio files.
- Play it any way. Keyboard, gamepad, touch controls on phones, and a seated VR mode with controller mapping.
Scoring
Drift points grow with slide angle and speed, with a multiplier that climbs every 1.6 seconds up to ×5. Passing close to a car at speed earns a near-miss bonus that chains and refills nitro. Crashing loses the points you haven't banked.
How it's built
| Part | What it does |
|---|---|
| Three.js r186 (WebGPURenderer + TSL) | Rendering, materials and post-processing |
| Rapier | Physics world at a fixed 60 Hz, with an analytic fallback |
| GSAP | Menu and camera hand-off motion |
| WebAudio | Engine synth, sound effects and procedural radio |
| WebXR | Immersive VR session with a seated rider view |
| Vite | Development, production build and a single-file build |

