Inspiration
I wanted to build something that could be useful during a race and the telemetry data was the perfect place to start. I thought that if I could replay the telemetry data and preserve its temporal fidelity based on the timestamps, it would act as a real-time telemetry replay and from there, I could compute metrics and derive further insight at any point in time during the race.
What it does
GRapple uses the dataset to reconstruct a race replay, keep per-car metrics, and derive race analytics. It also integrates with AI in the backend (via Replicate) to allow you to ask questions about the current state of the race with full context using historical race snapshots, which is useful for real-time insights and decision-making.
How we built it
I leveraged the natural strengths of Elixir and the BEAM along with Phoenix LiveView. They gave me the tools I needed to build a robust backend quickly with concurrency and fault-tolerance. I used Tailwind + DaisyUI for the frontend.
Challenges we ran into
Many :-)
I've started writing a series of blog posts on my website about my journey which you can check out for more details. But some challenges overcome were:
- Understanding the dataset being completely new to motorsports
- Processing 11 million+ row telemetry CSVs efficiently
- Storing application state efficiently
- Data reliability
- Removing duplicate rows from the telemetry CSV
- Preserving temporal fidelity for the race replay
- Modeling the system and different actors
- Setting up correct supervision trees (OTP)
- Metrics calculations
Accomplishments that we're proud of
Submitting something working on time
What we learned
I learned alot more about motorsports, domain-modeling, Elixir, GenServers, Streams and lazy data-processing, GenStage for large volume concurrent data-processing, Phoenix PubSub, ETS for efficient in-memory storage, Supervision trees and strategies for fault-tolerance, LiveView, Replicate for AI integration, and deployment.
What's next for GRapple · Real-Time Race Intelligence & Telemetry Replay
- Multi-track support (other tracks are currently supported but extensive testing has only been done on the Barber dataset)
- Support different LLMs for the AI-powered insights
Built With
- beam
- elixir
- liveview
- otp
- phoenix
- replicate
- tailwind

Log in or sign up for Devpost to join the conversation.