Elevator Pitch

OutpaceF1 is an F1 race-night party game. At each strategy moment, friends call “box” or “stay out” from their phones and say why. At the flag, real results score each call; Muse Spark grades the logic.

Inspiration

During F1 race nights, we often found ourselves frustrated by strategy decisions that seemed to cost a driver the race, whether it was a late pit stop or staying out on worn tires. Each time, we were convinced we could have made the better call, but we had no way of proving it. We built OutpaceF1 to settle that question by putting each of us on the pit wall and measuring our decisions against what actually happens (and our friends).

What it does

OutpaceF1 turns watching F1 with your friends into a social game of making calls, explaining your reasoning, and earning bragging rights. It’s built around the debates friends already have when watching a race, like who should pit, who should stay out, and who thinks they know better than the team strategists.

Whenever a strategy opportunity arises, such as a safety car, rival pit stop, or weather change, everyone gets to make a call. Players review race data in a simple or advanced view, choose “box” (come in for a pit stop) or “stay out” (stay on the track), and explain their thought process via voice.

After the chequered flag, the group finds out whose calls were right. The game scores users’ decisions against actual race outcomes, and Muse Spark evaluates the reasoning behind them. A leaderboard ranks friends, the decision-making engine, and the actual F1 team.

OutpaceF1 is intended to be used for live races. For the demo, friends play through the same experience using a replay and real data from the 2025 Qatar Grand Prix or the 2026 Singapore Grand Prix.

How we built it

We built OutpaceF1 to be mobile-first and very easy to use. We start by pulling data from the Jolpica F1 API and OpenF1, together giving us lap times, positions, pit stops, tyre stints, race control messages and more alongside track outlines from the open-source f1-circuits dataset. We pass this data through our engine, a Python script that makes its own box or stay call at each decision moment using only the data available at that lap, so it can be scored alongside the players; through our "trigger" Python script, which determines when to prompt a user to make a pit decision; and on to our Next.js frontend for users to see as they make a decision. The trigger script prompts users when a safety car/virtual safety car is deployed, a nearby competitor makes a pit stop, an undercut window opens, tyres are reaching the end of their usual degradation window or fading faster than the rest of the field, or rain starts.

Once the user is prompted, they make a decision based on the data they have in front of them (can either be simple or advanced depending on familiarity with F1 strategy) and, in a live race, the tv broadcast. Once they decide, they record a no-more-than 30 second voice note explaining their decision (or type it instead). This is recorded using the browser they're playing on and transcribed using Muse Voice Transcribe. Once a user is done speaking, they lock in their decision and wait until the next moment.

After the race, every user's decision is scored on how the race actually panned out for comparable cars that made the other call, and Muse Spark 1.3 grades how good their reasoning was. Muse Spark also decides the right call in moments where luck, like a late safety car, changed the outcome. After all decisions are graded, a final leaderboard pops up with overall and decision-specific scores to see who among friends is really the best strategist.

How we used AI

We built OutpaceF1 using various AI coding tools. We used Claude Code to write most of the code, directed and reviewed by our team, with Codex reviewing too. Inside the product itself, we used Muse Voice Transcribe to turn players' voice notes into text, and we used Muse Spark 1.3 to grade each player's reasoning and decide the right call in moments where luck changed the outcome.

Challenges we ran into

Designing the UI meant balancing simplicity, useful race data, and a modern look. We wanted experienced fans to have enough information without overwhelming newcomers.

Another challenge was integrating voice transcription into the gameplay. We initially used a browser transcriber, then switched to Muse Voice Transcribe to connect players’ spoken explanations with Muse Spark’s reasoning evaluation. We wanted to include voice input as an option to allow users to explain their decisions quickly during time-sensitive race moments.

Accomplishments that we're proud of

We are proud of deploying OutpaceF1, open to anyone, in less than 24 hours. That process required getting multiple moving parts to work together. This includes turning two F1 data APIs into race replays, creating a triggering system for decision moments, with the right answer for each one measured from what actually happened, a Postgres database, a host screen with players logging in from their phone, and Muse for voice transcription and explanation grading.

We are also proud of making OutpaceF1 fair and secure. Answers stay hidden until the end of the race, and AI spending caps and rate limiting prevent fake calls and misuse costing us money. Joining a private game takes seconds; friends scan a QR code or type a randomized 4-letter code with no app or account creation required.

What we learned

We learned that our decision-making engine should operate as a challenging but beatable metric. Across our 81 decision points, the engine’s accuracy rate was about 54%, and the real F1 team’s was about 58%. Pit calls are difficult to assess, and that’s what makes OutpaceF1 fun. We score each user’s call against what actually happened, and we weigh the reasoning more than the call. A well-argued incorrect call can, and usually does, beat a lucky correct call. We also made sure that the engine used only race information available at that point in the race.

Two of us were at our first hackathon, and we learned how to prioritize features core to a project’s main value proposition and adapt when things don't work. This was especially important given the incredibly tight 24-hour time limit.

What's next for OutpaceF1

Our goal is to have this up and running for live races in the future, available to be played in both local mode with friends and global mode against everyone at once. This would require building out live features, like reading a live timing feed and syncing decision moments to each viewer's broadcast delay, and adapting our Python trigger and engine scripts, which currently run ahead of time on finished race data, to run lap by lap during the race. Scoring would still happen at the flag, once the race has played out.

Built With

Share this project:

Updates

Submission history