Skip to content
Journal

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.

Sepang Vision Lab race replay on the TV camera: the timing tower for all 22 cars, a safety car message, the track map and weather, Charles Leclerc on track with his speed, gear, throttle, g-meter and lap times, and the replay bar

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 data

The 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

0.0 s

Gap between samples · 6,830 samples

0 ms500 ms

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

Twelve real seconds of one car through a corner. Press Play on Raw, then on Smoothed. The histogram is the gap between every sample in that half hour of the race.

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.

Sepang Vision Lab chase camera behind Lando Norris through a corner on lap 9, with the rev arc, gear, g-meter and a stewards message about a Turn 9 incident

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 data

Cutting 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.