2026-09-30 · MPOWER RACING

A real track, and a real GPU timer

The first working session of Mpower Racing, a browser racing game. Laguna Seca built from surveyed data, a roster of 124 cars, and a rule that performance work follows measured GPU time, not guesses.

Mpower Racing is a browser racing game built around M-series performance cars and official works race cars, with the E46 M3 as the one to drive first.

The track comes from data, not eyeballing

Laguna Seca is built from the OpenStreetMap centreline and USGS elevation data. The layout and elevation come from where the real surface is, not from an artist's idea of it. Terrain, scenery, an HDRI sky and PBR road and ground shaders go on top.

Driving

The vehicle is a rigid body with combined-slip tyres, traction control, ABS and aero. The AI drives a baked racing line. There are three cameras, with the chase view as the default.

The roster has 124 cars: every M car plus 27 race cars, each checked against published specs. The modes are Quick Race, a Time Trial with a ghost, and Watch & Bet, where AI races play out under a TV-style director and you stake play money. The Custom Shop and Build Journal hold 359 parts, 161 exhausts and 27 famous builds.

Performance by measurement

The first speed passes were driven by real GPU timing, using the browser's EXT_disjoint_timer_query, not by feel.

What the timings led to:

  • vegetation level-of-detail
  • FXAA in place of SMAA, and half-resolution bloom
  • dynamic resolution and adaptive quality
  • texture optimisation, bringing the shipped assets to 28 MB

The game was published as a static site on Cloudflare Workers by the end of the session.