How rhythmgarg13/f1simulationproject works
The product is a full-stack F1 race-strategy simulator: users choose a circuit and weather in the dashboard, request a strategy, and view the resulting race, pit, tire, circuit, and telemetry data. The documented backend workflow combines constrained SLSQP strategy optimization with Monte Carlo race outcomes and tire degradation; weather changes trigger re-optimization. The README documents server-side comparative visualizations and all 24 circuits, but the sampled excerpts do not show their precise API wiring, so those links are omitted.
Main entry points: Dashboard.jsx Dashboard · api.py API routes · monte_carlo.py Monte Carlo engine · optimizer.py SLSQP optimizer
Components 18
Race dashboard
- Dashboard
frontend/src/components/Dashboard.jsx - Circuit map
frontend/src/components/CircuitMap.jsx - Lap-time chart
frontend/src/components/LapTimeChart.jsx - Pit strategy
frontend/src/components/PitStrategy.jsx - Tire strategy
frontend/src/components/TireStrategy.jsx - Telemetry
frontend/src/components/TelemetryCard.jsx - Race overview
frontend/src/components/StatsRow.jsx - Strategy API client
frontend/src/api/strategyApi.js
API and orchestration
- FastAPI app
backend/main.py - API routes
backend/api.py
Strategy simulation
- Weather logic
backend/weather.py - SLSQP optimizer
backend/optimizer.py - Monte Carlo engine
backend/monte_carlo.py - Race visualizations
backend/visualizations.py
Race inputs and outputs
- Circuit SVG paths
frontend/src/data/trackPaths.js - Domain models
backend/models.py - Circuit definitions
backend/track_data.py
Other components
- Race strategist
Connections 22
- Race strategist → Dashboard: chooses race inputs
- Dashboard → Strategy API client: requests strategy
- Dashboard → Strategy API client: changes weather
- Strategy API client → API routes: sends API requests
- FastAPI app → API routes: mounts router
- FastAPI app → Monte Carlo engine: warms degradation cache
- API routes → SLSQP optimizer: requests optimization
- API routes → Monte Carlo engine: requests simulations
- API routes → Circuit definitions: reads circuit data
- API routes → Weather logic: requests weather update
- SLSQP optimizer → Monte Carlo engine: evaluates strategies
- SLSQP optimizer → Domain models: uses domain types
- Monte Carlo engine → Domain models: uses race types
- Circuit definitions → Domain models: defines circuit records
- API routes → Dashboard: returns strategy data
- Dashboard → Circuit map: renders circuit data
- Dashboard → Lap-time chart: renders lap data
- Dashboard → Pit strategy: renders pit plan
- Dashboard → Tire strategy: renders compounds
- Dashboard → Telemetry: renders metrics
- Dashboard → Race overview: renders race summary
- Circuit map → Circuit SVG paths: reads track paths