Inspiration
Real-world racing is extremely complex, driver skill, track characteristics, weather, car components, and randomness all interact in ways that are hard to predict. Traditional simulations or simple scoring systems usually fail because they:
1) Treat all tracks the same
2) Ignore detailed driver skill profiles
3) Don't model mechanical wear or stress
4) Don't handle unpredictability, randomness, or race-to-race variation
5) Can't explain why a result changed
We wanted to fix these limitations and create a system that models racing in a deeper, more realistic way using machine learning, simulation, and telemetry-based analysis.
What it does
Problem 1: Drivers are treated as “overall ratings”
Most systems reduce a driver to one number. This ignores the reality that a driver can be great in rain, inconsistent on fast tracks, or strong in technical sectors.
What we built:
An 8-dimensional driver skill vector capturing:
technical ability, high-speed ability, consistency, adaptability, track-type performance, and finish reliability.
Problem 2: Tracks aren’t analyzed scientifically
Typical simulators use only “track name” or “track type,” which throws away real information.
What we built:
Track DNA: statistical features extracted from telemetry, sector times, braking zones, speed profiles, elevation, and overtaking patterns.
Problem 3: No model accounts for real-time mechanical wear
Most predictions assume “the car stays perfect.” Engines overheat, brakes fade, tires wear.
What we built:
Mechanical Karma: a lap-by-lap mechanical stress model using normalized telemetry signals, EMA smoothing, and a Random Forest failure predictor.
Problem 4: Predictions are deterministic and unrealistic
Many racing outcomes depend on randomness—weather changes, component failures, driver mistakes, or luck.
What we built:
Monte Carlo championship simulations (300–500 runs) that model randomness, variability, and uncertainty with contextual modifiers such as fatigue, pressure, momentum, and weather.
Problem 5: No tool shows how changing one race affects the whole season
Sports fans often ask:
“What if this driver had finished P2 instead of P5?”
Typical systems can't recompute an entire season under those changes.
What we built:
A Butterfly Effect Engine that recalculates the entire championship after swapping any finishing positions and measures the impact mathematically.
Overall, Podium is a full ML-powered racing prediction and simulation platform. It:
- Builds 8-dimensional driver skill embeddings
- Generates Track DNA profiles from telemetry and timing data
- Predicts race results using ML + transfer learning
- Calculates component wear using Mechanical Karma
- Runs Monte Carlo championship simulations (300–500 iterations)
- Provides AI coaching tips for each race
- Measures “what-if” scenarios with a Butterfly Effect Engine
- Displays interactive charts and simulation results through a modern front-end
In short, it combines ML, simulation, and real-time modeling to predict races and full championships with more realism than traditional methods.
How we built it
We combined machine learning, simulation, and modern web technologies:
- Backend: FastAPI with asynchronous endpoints
- ML models: PyTorch transfer learning + RandomForestClassifier
- Data processing: Pandas, NumPy, min-max scaling, percentile-based normalization
- Simulation engine: Monte Carlo methods, contextual race modifiers, deterministic conflict resolution
- Frontend: React, TypeScript, Tailwind, Recharts, Framer Motion
- Integration: Real-time telemetry processing and per-lap feature extraction
Track DNA + driver embeddings + transfer learning allowed the model to predict performance on unseen tracks.
Challenges we ran into
- Ensuring predictions remained stable while still allowing randomness
- Handling missing or inconsistent telemetry values
- Designing the 8-dimensional skill vector
- Building track DNA extraction for variable-quality data
- Balancing ML predictions with heuristic fallbacks
- Managing NaN, infinity, and scaling issues
- Running Monte Carlo simulations efficiently
- Combining real-time mechanical stress with long-term season predictions
Accomplishments that we're proud of
1. Solving oversimplified driver modeling
Built an 8-dimensional skill embedding that required cleaning thousands of lap-time entries, designing normalization strategies, and preventing skill collapse.
2. Extracting Track DNA from noisy telemetry
Engineered fallback methods, smoothing functions, and statistical constraints to extract meaningful track features despite missing or corrupt data.
3. Building realistic mechanical wear modeling
Created “Mechanical Karma,” blending min-max scaling, weighted stress metrics, EMA smoothing, and Random Forest probabilities to simulate believable wear.
4. Transfer learning on unseen tracks
Designed and tuned a 50k-parameter model that stays stable and avoids overfitting, producing realistic predictions even for tracks not in the training data.
5. Efficient large-scale Monte Carlo simulation
Optimized season simulations so 300–500 iterations run fast without locking the UI.
6. Deterministic conflict resolution for position edits
Built an algorithm that cleanly resolves position swaps for the Butterfly Effect Engine without breaking race logic.
7. Full-stack integration at scale
Solved issues across FastAPI, ML models, telemetry processors, and React, including NaN serialization, async timing, and performance bottlenecks.
What we learned
- Modeling sports performance with multi-dimensional feature engineering
- Applying transfer learning to track differences
- Combining ML + rule-based logic to increase reliability
- Simulating randomness using Monte Carlo methods
- Engineering telemetry features and smoothing noisy data
- Structuring a full-stack ML system with clean data flow
- Handling NaNs, scaling errors, and conflicting assignments
What's next for Podium: GR Championship Simulation
- Driver-vs-driver battle predictor using time-series telemetry
- Reinforcement learning strategy engine for pit stops
- Real-time prediction updates with live streaming data
- Improved transfer learning with larger datasets + attention layers
- User-editable driver stats + custom scenario simulations
- Hosted version with cloud compute
- Public API for developers
Built With
- fastapi
- machine-learning
- numpy
- pandas
- probability
- pytorch
- react
- statistics
- typescript
- vite

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