F1 Race Telemetry Visualizer

PRODUCT DESIGN

F1 Race Telemetry Visualizer

An isometric track view and a first-person cockpit view, running live against real race data.

ROLE

Solo Designer & Builder

TOOLS

WebGL, Unity, Cursor AI

DATA

OpenF1 API

STATUS

Live Build

Watch: Flip between the full track and a driver's cockpit, live, mid-race, and follow any car you want.

Loading…

This is the live build, not a video. Press Start to begin.

Origin

The BBC Soccer World Cup broadcast had a “3D experience,” a free-camera view of the match built from real player-tracking data, letting you look at the game from any angle. My first reaction was, this is worse than just watching the broadcast: glitchy camera, players jumping position, and the ball skipping.

But that reaction assumed it was trying to replace the broadcast. It isn’t. It’s built for someone half-watching on a second screen, with their phone out, dipping in and out. Reframed that way, the rough edges stopped being a flaw. They read as a fast, low-stakes build for a specific kind of attention.

827 M

43%

OF THAT AUDIENCE IS UNDER 35

That reframe is what turned this from a curiosity into something worth building. Once I started, it moved fast, closer to a week than the months I’d assumed.

VALIDATION

The BBC’s own 3D viewer runs on the same stack I ended up choosing, Unity compiled to WebGL, the same call a broadcaster’s team made with official FIFA data and a specialist vendor behind them.

No One Else Does This

F1 already validated the idea, they just never shipped it as something a fan could open. Nobody’s built the live, standalone version. Not F1, not a broadcaster, not a third party.

F1’s own broadcast segments prove the concept, comparing positions directly is genuinely useful, but both are hand-assembled by editors for specific qualifying moments, not a tool a fan can open.

Overlays real telemetry, even a speedometer, on top of real onboard streams, but every stream needs a paid F1 TV subscription just to load.

Comes closest, with a live trackmap of every car. But it’s a static view, with no camera, no switching to a cockpit view mid-session, and it needs an active F1 subscription and a native app download.

Official and free, but text and tables only.

A live, free, whole-field simulation, no camera rigs, no editing, no per-session production, is a category nobody, including F1, is actually in.

Process

Sport: soccer to F1

A glitching camera reads as broken; a car half a step off its line barely registers. That’s why F1 replaced soccer: same live-simulation feel, without the tell that undid the BBC build. Cars need position and orientation only, no limb animation, no possession logic, a scope decision more than a theme decision.

Fixed views over a free camera

An uncontrolled 360-degree camera is how the BBC build ended up looking at nothing useful. I built two fixed, purposeful views instead, isometric and cockpit, and cut a crowd or a photoreal track entirely. Clean and legible beat spectacle.

First pass. Real 3D car models, labels overlapping and unreadable once cars bunched up.

Second pass. Flattened to logo badges with position numbers. Still too overcrowded once the full grid was on screen, so this design got dropped too.

Insight: if it's a second screen, it has to have zero friction

A second-screen tool only works if picking it up costs nothing. The NBA tested a version of this logic in reverse: live VR broadcasts in 2016, gated behind a $99 headset and a $199 League Pass subscription. It quietly died, viewership was reportedly too small to even disclose. Not because the idea was wrong, but because every barrier between the audience and the experience is a chance to lose them. That’s the reasoning behind running this as a free browser tab with no login, it has to be as easy to open as a second tab, or it’s not actually a second-screen tool at all.

Insight: no camera rig, just data

F1’s own Ghost Car and Heli Lap need real footage to composite onto. This build skips cameras and editors entirely, raw position data rendered straight into 3D, live, which is what makes it usable well beyond a highlight clip.

Scope

IN SCOPE

+

Isometric track view

+

Cockpit view

+

Leaderboard

+

Camera-flip toggle

+

Fullscreen

Deliberately Excluded

-

Free 360° camera

-

Photoreal track & pit stops

-

Crowd simulation

-

Playback controls

-

Race-story charts

Familiar F1-broadcast conventions (leaderboard, gap-to-leader, team colors) don't need explaining, so no tooltips or onboarding.

Key Decisions

Position-only, until you ask

Isometric view originally labeled every car. With 20 on screen, it was unreadable. Now every dot just shows a live position number; clicking one pops it up with full detail, number, logo, three-letter code, one driver at a time.

Two cars ahead, stacked

Cockpit view originally labeled every car ahead of the driver. Cut to the two closest, with labels stacked so they stay readable when those cars converge.

Overlap as a feature

GPS-derived positions mean close cars can visually overlap. Tightening tolerance just pushes cars onto an unrealistic centerline. Instead, the trailing car renders at 50% opacity, so the overlap reads as intentional.

Live-only, no scrubbing

No pause, rewind, or timeline, on purpose. A second-screen tool is something you glance at, not something you sit down and analyze, and that matches how the target audience already behaves. This one’s built for the secondary engagement.

77%

of sports fans run a second screen during live games, climbing past 80% for Gen Z. Built for the glance.

Live, Not mocked

This isn’t a video of a prototype. It’s the actual build, running against real OpenF1 session data, embedded directly in this page. Built solo with Cursor’s assistance to write and iterate the code, proving I can build a live, functional system end-to-end, not just design a static mockup.

GPS Noise: A Known Limitation, by Design

Cars occasionally drift slightly off the track before self-correcting. I didn’t try to mask it, tightening the tolerance causes more overlap, and widening the track kills the sense of scale. Left as an honest, understood tradeoff of GPS-based simulation rather than something to hide. It’s not unique to this build either: F1’s own Ghost Car broadcast feature composites a GPS-positioned rival car onto real onboard footage, and shows the same kind of overlap when cars get close, same root cause, position data isn’t perfectly precise. If F1’s own production team ships that same tradeoff, it’s a reasonable one to make here too.

Reflections

This build started from a rough demo I initially dismissed. What made it worth pursuing wasn’t the initial execution, but the audience underneath it. Once I saw this as a second-screen tool instead of a broadcast replacement, that reframe shaped every choice for this version: fixed views instead of a free camera, no login to open it, live-only for now, all serving the same kind of glance-and-go attention.

That’s not a niche behavior leagues are choosing to ignore. Different formats genuinely reach different people, and this audience is worth something commercially:

60%

FEMALE AUDIENCE FOR THE NHL’S ANIMATED ALT-BROADCAST, VS. HOCKEY’S USUAL SKEW

$6.22M

AVG. F1 SPONSORSHIP DEAL, 8X THE AVERAGE NFL DEAL

A tool like this won’t shift those macro numbers on its own, but it’s built on the same core principle: meet second-screen viewers where they already are, rather than forcing them into a passive broadcast model.

What's Next?

NOW

A live race selector instead of one fixed session, a backend that ingests any race’s JSON automatically, and direct live-JSON injection so it can run against a race as it’s actually happening.

NEXT

Account creation, playback controls for scrubbing back through a race instead of live-only, tighter track-adherence, and ambient environment audio.

FURTHER OUT

Embedded directly into a broadcaster’s own site, the way F1 TV or ESPN already embed video and stats widgets. It needs a proper API and licensing terms, and, since it needs no camera rig or editor to produce, F1 itself could use it or license it to other broadcasters.

Where This Pays Off

The bet underneath this whole build is low friction, and distribution is also where it starts paying for itself.

Subscription tier

A premium camera angle or extra driver slots, gated behind an existing broadcaster subscription.

Sponsor placement

Branded overlays or trackside logos rendered directly into the live 3D scene.

Second-screen ads

A quiet banner when not in fullscreen, or a spot before the race starts and after it ends.

“F1 2022 Generic” by TheoDevF1 is licensed under CC BY-NC-ND 4.0. Race data via OpenF1 API, licensed under CC BY-NC-SA 4.0. Typeface: “Formula1 Display Bold” by Marcelldavis, free for personal and commercial use.

Want to work together?