I’ve been watching @yelistener’s analysis videos for a while now since then I’ve learnt that telemetry usually shows the hidden reasons for a spin or an unexpected overtake.
Especially with the nearly 50/50 hybrid/ICE energy split powertrains of F1 in 2026, and the infamous ”superclipping”, it was a fun journey building something that lets you replay a race with so much data alongside the track map, like throttle/brake values, rpm/gear states, speeds of every driver on track, and sector times. You can play around with it here
I used the FastF1 library to load the data, but that just generated pickled Python files with binary blobs of massive objects containing the telemetry. So I decided to make a pre-processing pipeline, that takes the data as a pandas dataframe, takes the relevant columns and then exports the data as a compressed .parquet file, which stores data sequentially by column, which makes it efficient for data storage and bandwidth. The average size of a single race telemetry file from the 2025 season is only around 21 megabytes, with an 8Hz average sample rate for each driver.
Most F1 telemetry tools at the time of writing this show static lap comparisons and graphs for laps that you select at once and compare. This one can replay an entire session from start to finish, with all car positions, leaderboard, synced telemetry, and also lets you compare across years, with the main advantage being switching laps or drivers is instantaneous.
Then it was a matter of building the dashboard, I used SvelteKit along with d3.js for the graphs, and hyparquet for processing the data. It does take time to load 20Mb+ of data into the browser, but the advantage of this is that you can switch between drivers mid-replay or in the telemetry graphs instantly since everything’s already loaded per session.