Inspiration
We're huge F1 fans, and we kept wondering: how do teams actually decide when to pit? It's not just tire wear—it's position, competitors, pace, track conditions, all at 200mph. We wanted to build something that makes those split-second strategy calls in real-time, just like the pit wall engineers. Plus, controlling it with hand gestures and sending live updates to an Arduino display like an actual F1 steering wheel? That's just cool.
What it does
Our system is an AI race engineer for Formula 1. It replays historical races and analyzes them lap-by-lap with 4 specialized agents:
| Agent | What it watches |
|---|---|
| Tire Agent | Degradation, predicts when tires "fall off the cliff" |
| Lap Time Agent | Pace trends, detects when you're losing time |
| Position Agent | Your position and gaps to nearby cars |
| Competitor Agent | Rival pit stops, pace, threats |
All four feed into a Coordinator Agent (Google Gemini) that decides: Pit now? Stay out? Push or save tires?
Outputs
- React dashboard with real-time updates
- Arduino LCD showing pit countdowns to the "driver"
- Hand gesture controls (swipe to browse strategies, fist pump to confirm)
Multi-Agent Workflow
┌─────────────────────┐
│ FastF1 Race Data │
└──────────┬──────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Every Lap (Python Agents) │
│ │
│ ┌───────────────┐ ┌────────────────┐ ┌────────────────┐ ┌───────────┐ │
│ │ Tire Agent │ │ Lap Time Agent │ │ Position Agent │ │ Competitor│ │
│ │ - Deg model │ │ - Pace trends │ │ - Gap tracking │ │ Agent │ │
│ │ - Cliff pred │ │ - Time loss │ │ - Track pos │ │ - Rival │ │
│ └───────┬───────┘ └────────┬───────┘ └────────┬───────┘ └─────┬─────┘ │
└──────────┼──────────────────┼────────────────────┼─────────────────┼───────┘
│ │ │ │
└──────────────────┴────────────────────┴─────────────────┘
│
▼
┌─────────────────────────┐
│ Event Detector │
│ Critical moments only │
└────────────┬────────────┘
│
▼
┌─────────────────────────┐
│ Coordinator (Gemini) │
│ - Synthesize data │
│ - Pit decision │
└────────────┬────────────┘
│
┌───────────────────┴───────────────────┐
│ │
▼ ▼
┌──────────────────┐ ┌─────────────────────┐
│ React Dashboard │ │ Arduino Display │
│ - Live updates │ │ - Pit countdown │
│ - Strategy viz │ │ - BOX BOX alerts │
└──────────────────┘ └─────────────────────┘
▲
│
┌──────────────────┐
│ Gesture Control │
│ (MediaPipe) │
└──────────────────┘
Key Innovation: 85% fewer API calls by only triggering Gemini on critical events (78 → 8-12 per race)
How we built it
Tech Stack: Python + FastF1 API + Supabase + Google Gemini + React + Vite + Tailwind + Arduino Uno + MediaPipe
Smart Event Triggering: Four Python agents run every lap (free). Only critical moments trigger expensive Gemini calls—pit stops, tire cliff, position changes.
Challenges we ran into
- API costs - Built event-based triggering to stay within free tier
- Tire modeling - Ported quadratic degradation formulas from F1 engineering papers
- Real-time sync - Buffering between 2s frontend polls and faster backend processing
- Gesture tracking - Added cooldowns to prevent false triggers in poor lighting
- Arduino serial - Implemented auto-reconnect for USB disconnections
Accomplishments that we're proud of
- 85% API reduction with smart event triggering
- 100% pit prediction accuracy on Bahrain 2024 (within 3 laps)
- Full-stack in 36 hours: AI backend + React dashboard + Arduino hardware + gestures
- Predicted Leclerc's tire cliff in Monaco 2024 (lap 73, actual pit lap 74)
What we learned
- Multi-agent systems are more efficient than monolithic AI
- Event-driven architecture saves money and compute
- F1 strategy is incredibly complex—undercuts, overcuts, traffic, fuel, tire deltas
- Hardware integration requires careful handling of serial communication and reconnection logic
- Gesture UX needs polish—cooldowns, feedback, forgiving thresholds
What's next
- DRS detection for cars within 1 second
- Weather integration for wet tire strategies
- Multi-driver view to analyze the whole field
- Live race mode connecting to real F1 APIs during race weekends
- Voice commands - "BOX BOX BOX" triggers pit stop
- ML tire degradation trained on historical data


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