2 min readBuilding
Making Noisy F1 Data Move Like a Car
Sepang Vision Lab replays the 2026 Sepang weekend in 3D from public OpenF1 data. Most of the work went into making sparse, jittery positions move like a real car without inventing anything.
Why Sepang
I like how Formula 1 uses data to understand performance. When OpenF1 published the 2026 Sepang weekend, I wanted to see how much of it I could rebuild from public data alone: every practice session, qualifying and the race, with all 22 cars driving an aligned 3D model of the circuit.
The 3D part turned out to be the easier half.

The race replay on the TV camera: the timing tower for all 22 cars, a safety car message, the track map and weather.
Real product · 2026 Sepang race replay, recorded OpenF1 dataThe data fought back
OpenF1 publishes car positions at about four samples a second, with jittery timestamps, in a coordinate system that matches no map. Played back as they arrive, the cars stutter, cut corners, overlap and float above the track.
Fig. 1 / Raw versus smoothed
Gap between samples · 6,830 samples
Median gap 240 ms, about four samples a second, and 54 gaps longer than half a second. Played as received, the car stutters.
Car 1 · Race, 4 Oct 2026 · OpenF1 · smoothing here is a 0.5 s time window for illustration; the app fits motion along the track
Fix the data before the visuals
Most of what looked like rendering bugs came from the data. Fixing it at the source fixed every camera at once.
- Alignment. Positions are fitted to the circuit model with a derived similarity transform, 3.09 m RMS from the centre line.
- Smooth motion. Each car’s distance along the track and offset across it are refitted against time, so cars follow their real line.
- A physics check. Sampled at 50 Hz across the race, 99% of frames stay within the braking, acceleration and cornering range of a real car.
- Cars keep their space. Overlapping cars are eased apart sideways. Overlapping frames in the race fell from 3,955 to 211.
Honest gaps
Some things the data cannot say. When OpenF1’s tyre labels disagree, the timing tower shows a question mark instead of a guess, and a data gap marks the car as stale after two seconds. Every number is labelled as derived, sourced, official or illustrative. That labelling is what lets a replay be trusted.

The chase camera through a corner on lap 9, with the rev arc, gear, g-meter and a stewards message.
Real product · 2026 Sepang race replay, recorded OpenF1 dataCutting what I liked
Earlier versions carried lap-time models and strategy tools. I removed them so the project could do one recorded weekend well. The product became clearer, not smaller.
The one AI feature left has a narrow job. The race engineer answers questions about gaps, tyres, pace and flags only from a brief of recorded data, so it explains the race without inventing it.
The case study has the architecture and every feature, and the live replay (opens in a new tab) is the best way to see it.
You are the one who inspired this. I hope George Russell wins, so I can see you smile.
