Inspiration

In Formula 1, drivers are backed by a team of engineers and strategists who are constantly monitoring telemetry on vehicle and track conditions, analyzing other team strategies, and helping their drivers make the best decision in order to win. This team, while not at the helm of the wheel, is like a second pair of eyes for the driver, and their decisions can lose or win a race - so drivers work with the best engineers and strategists in their class. The high-stakes nature of this environment could impede sound decision-making by encouraging rushed calls on inconclusive data.

Strata helps to solve this problem for F1 strategists, but especially for teams in feeder series like FSAE, Formula 4 and more. Even though decisions are equally as critical, teams generally don't have the resources for engineers of the calibre of those on an F1 team.

Strata augments racing teams with DecisionOps capabilities they didn't have before.

What it does

Strata does 2 main tasks:

  • during races, analyze data streams in real time to provide insights to strategists and support decision making, including on when to pit
    • we're not replacing strategists! we want to keep a human in the loop - augmenting their decision making abilities
  • provide a testing/simulation environment to help strategists upskill and understand the impacts of their decisions outside of a real race environment

How we built it

Race strategy suggestion model

We trained a decision tree model based on thousands of data points from real 2023 and 2024 F1 race data, to output a recommendation score of when a race strategist should suggest a driver to head to the pits. This utilizes a number of key indicators including tire wear, lap time performance deltas, undercut/overcut opportunities, and more.

The model was trained and deployed for inference on a DigitalOcean Gradient AI GPU Droplet, deployed using Terraform.

Race Visualization and Mission Control frontend

Strategy insights are surfaced to strategists in real-time on a React front-end, which uses THREE.JS to provide an interactive 3D simulation of a race. This is deployed using Terraform to Cloudflare Workers.

Telemetry Streaming + Storage

Data is stored in a self hosted instance of Convex, which is a Platform as a Service with built-in primitives for shipping apps quickly. The Convex instance is deployed using Terraform to the DigitalOcean App Platform, along with the PostgreSQL database backing it. Using Convex Functions, we built a source-agnostic telemetry ingestion system that can easily take in data from other sources. For now, events are ingested from the simulated race visualization, but an adapter could easily be written to ingest events at scale from other sources. Model inference automatically takes place on ingestion of telemetry events. When inference is complete, strategy results are inserted back into the database and streamed to the race visualization and Mission Control in real-time.

Terraform Infrastructure Management

As briefly mentioned in the description of the components above, we utilize Terraform to manage all of our infrastructure for the project. Taking the IaC approach makes it super easy for us developers to know what resources are deployed, and to spin down and provision new environments with a simple terminal command. This is super helpful with us using multiple resources across the CloudFlare and DigitalOcean platforms - the resources are able to reference each other easily.

Using IaC also makes it super simple for AI tools to help out with infrastructure deployments since generating new infrastructure is as simple as generating the appropriate Terraform code to stand up the relevant resources.

We also use Infisical to manage our secrets and inject secrets as environment variables into the Terraform CLI at runtime. This is a much more secure approach, as it means no more storing .env files in plain text with API keys and secrets on disk, or worse, sending .env files in plain text over Discord.

Challenges we ran into

  • integrating control panel with tone/intonation-aware speech to text engine

Accomplishments that we're proud of

  • training an ML model on real world data over the weekend
  • managing all infrastructure through Terraform

What we learned

What's next for Strata

  • update custom simulator to run on real season tracks, and simulate more race factors like tire type, tire/track temperature, fuel consumption, etc.
  • utilize real F1 2025 game instead of custom simulator. write simple UDP socket server to ingest telemetry events from the game in real time
  • utilize DuckDB and dlt to support aggregations and more detailed analysis of race data
  • consider multiple drivers for one team - how can we optimize strategy between drivers to improve performance for the whole team as a while?
  • train models to look at radio comms and car telemetry. try to predict the issues that driver will report / qualitative experiences in the car before the driver is aware of them. quantitative indicators could be a good predictor of these qualitative events in-vehicle before the driver reports them, allowing faster decision making. look at past events with similar numerical trends and conditions to see how long you can hold on on making a decision.
+ 5 more
Share this project:

Updates