How I created a real-time F1 circuit tracker that updates every second on iOS
7 comments
·April 15, 2025silverr
cheschire
The title of the thread promises a series of solutions you implemented, yet all I see is a series of problems you faced.
Congrats on the launch.
jkahrs595
yeah cool app but give me the details damn it
rokob
Where do you get the data? I would think it would be licensed so how can you sell it?
michele
Indeed, I'm interested about this, too. About a year ago, I did try to find a good API for F1, not really telemetry, but mostly results and other stats, but couldn't find a good reliable one. The best option seemed to scrape the F1 official website which I didn't really want to do.
rad_gruchalski
From https://www.reddit.com/r/F1Technical/comments/13u141s/commen...
> F1 broadcasts their live timing via the SignalR protocol. The endpoint itself is unauthenticated. You can look at FastF1’s implementation of the SignalR client and the respective endpoints which it connects to within the code documentation here FastF1 SignalR client.
https://github.com/br-g/fastf1-livetiming/blob/bb40ede39ab5f...
Scipio_Afri
Is this open source at all? Do you have any more detailed write ups on some of the things you learned?
I’ve always been fascinated by Formula 1, and recently I challenged myself to build something I hadn’t seen done well on mobile: a live map of an F1 circuit that updates every second, showing the real-time position of all drivers.
At first, I had no idea where to start. The initial version of the app was just a static SVG of the track and a bunch of placeholder dots. But I quickly realized that turning this into something dynamic and precise was going to require a lot more work—both technically and creatively.
One of the hardest parts was figuring out how to map GPS or telemetry-like data (or simulated equivalents) to the actual layout of the track. Circuits aren’t perfect circles or squares—they’re highly irregular, and getting the math right to interpolate positions smoothly along the path took a lot of iteration.
Once I had the basic movement working, I ran into performance issues. Updating 20+ driver positions every second, animating them smoothly, and not killing the battery or CPU on an iPhone took careful optimization, especially when combined with UI features like zooming, rotating, or switching to other parts of the app.
From there, the app grew: I added race results, driver and team info, standings, and more. But the live circuit map remains the heart of it—a tiny simulation of the race, in your pocket.
I learned a lot building this, from low-level animation tricks to dealing with refresh rates and background tasks on iOS. If you’re curious, you can check it out here