Inspiration
As F1 fans, we've always been fascinated by the strategic complexity of race decisions that consider several factors such as tire choices, pit stop timing, and weather gambles. We realized these high-stakes optimization problems would be perfect for exploring machine learning while building something we're genuinely passionate about. Some of us also find enjoyment in product thinking and sleek UX design, so we saw this as an opportunity to make advanced race strategy effectively analyzable and visually compelling in a high-speed race environment. This project sits at the intersection of our interests: combining ML models with thoughtful design to create a tool that both casual fans and strategy enthusiasts would actually appreciate and that F1 race engineers would hugely benefit from.
What it does
Our project analyzes F1 race data to cleanly display important race decision metrics and optimal strategy choices in real-time. Using historical data from the 2022 and 2023 Austin races, we trained our ML random classifier model to simulate the 2024 United States Grand Prix for our demo, displaying Lewis Hamilton's optimal race strategy and race engineer-relevant stats throughout the race lap-by-lap. The platform shows tire degradation on the current stint, engine power usage, current race position and tire compound, and urgent race incident messages. Moreover, we have a dynamic graph to visualize Hamilton’s lap times and use the deltas to suggest race pace modifications, as well as a component to display the best strategy type based on current car conditions. It turns complex race strategy into an easily decipherable decision-making tool with an intuitive interface that holds relevant and insightful data points and predictions.
How we built it
The frontend was built using Next.js with TypeScript and React. Each dashboard section is a modular React component styled with Tailwind CSS, including real-time visualizations using Recharts for the lap time graph. The backend runs on FastAPI (Python), serving live race data through REST API endpoints that the frontend polls every second to simulate real-time high performance telemetry updates. The tire strategy recommendation system is powered by a Random Forest Classifier trained using scikit-learn. The model and encoders are persisted using joblib data persistence and integrated into the live race emulator. The model was later improved using a Mixture Density Network developed using Pytorch and numpy. Data preprocessing and race simulation logic were implemented using pandas and NumPy to handle the historical CSV telemetry data and generate synthetic strategy labels based on tire wear, lap times, and race conditions.
Challenges we ran into
Developing the MDN network was initially very challenging, as it required mathematics and statistical underpinnings that we had beginner-level experience with.
In terms of frontend, we ran into some issues regarding spacing between the components of the dashboard to ensure that everything looked organized and readable on the dashboard, along with full-stack integration due to the large amount of data-driven insights that we were looking to display.
Accomplishments that we're proud of
We’re proud of learning from a paper statistical theory behind a distribution estimator, allowing a chance to learn a lot more about the relationship between latent tensors and statistical theory. Additionally, we’re proud of utilizing our skills and interests in ML, visualizations, and design towards a topic that we’re genuinely passionate about.
What we learned
We learned how a Mixture Density Network works for different tire strategies in a classification context. Additionally, we learned how to use a random forest classifier for the first time, as well as how to keep ML models persistent in the backend during integration using joblib and pickle.
What's next for CircuitSync
1.) Improvement of model accuracy and the inclusion of more diverse statistics that may help race engineers in unlikely scenarios. 2) Customizable dashboard to allow race engineers to move components around where they prefer, along with adding more metrics that they can exchange for any other sections on the dashboard. 3) Displaying the lap times and deltas of the car ahead and behind to simulate upcoming DRS defense or opportunities.
Built With
- axios
- fastapi
- figma
- joblib
- nextjs
- numpy
- pandas
- react-native
- scikit-learn
- tailwind
- typescript




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