Inspiration Professional racing teams in F1 or WEC have armies of engineers analyzing every millisecond of data. But for amateur racers, semi-pros, and sim racers, telemetry data is often a black box—complex CSV files that require a degree in data science to decipher.

We wanted to democratise race engineering. We asked: what if you could have a professional race engineer in your pocket? Someone (or something) that doesn't just show you a graph but tells you, "You're braking too early in Turn 5." That was the spark for RaceIQ.

What it does Data is Heavy: Handling 50 Hz telemetry data for a 2-hour race involves millions of data points. We learnt how to efficiently downsample and stream data using Python generators and React buffers to keep the UI buttery smooth.

The Power of Context: A speed trace means nothing without context. Overlaying it on a track map and comparing it with a reference lap (or a rival) instantly turns data into insight. AI is a natural interface: chatting with your data is much more intuitive than filtering columns. We learnt that LLMs are surprisingly good at interpreting structured telemetry summaries when given the right context.

How we built it i built RaceIQ using a modern, high-performance stack:

Frontend: React (Vite) for the UI, with Recharts for high-performance data visualisation and Tailwind CSS for a sleek, dark-mode aesthetic. Backend: FastAPI (Python) for high-speed data processing. We use Pandas for heavy lifting—cleaning, pivoting, and analysing the raw CSV telemetry. AI Integration: We integrated an LLM to act as the "Race Engineer", feeding it statistical summaries of the lap data to generate natural language insights. Math & Physics: We implemented custom algorithms to calculate sector deltas, reconstruct GPS paths from raw velocity vectors, and normalise track distances.

Challenges we ran into The "Barber" Problem: One of our datasets (Barber Motorsports Park) came in a completely different "long" format compared to the standard "wide" telemetry. We had to write a dynamic parser in our backend to pivot and reconstruct the data on the fly.

Live Map Synchronisation: syncing the moving car marker on the SVG map with the scrolling charts was tricky. We had to implement a precise clock synchronisation system to ensure the car was exactly where the data said it was. Large File Handling: GitHub has a 100MB limit, and our raw telemetry files were 1.5GB+. We had to implement a robust .gitignore strategy and write scripts to verify data integrity without committing the massive files.

Accomplishments that we're proud of

What we learned

What's next for RaceIQ

Built With

Share this project:

Updates