GR Analytics: Precision Strategy Platform
Inspiration
Modern motorsport isn't just about the driver's hands and feet---it's about the gigabytes of data flowing from the car every second. When we looked at the Toyota GR challenge, we realized that raw CSV files (telemetry, lap times, sensor logs) are powerful, but they are hard for a human to interpret in the heat of the moment. We wanted to bridge the gap between raw data and race strategy. We asked ourselves: What does a Race Engineer actually need to see? They don't need a spreadsheet; they need a Mission Control. We were inspired to build a tool that visualizes the "invisible" forces---tire degradation, G-limits, and braking zones---in real-time, just like the pit wall at Le Mans or Daytona.
What it does
GR Analytics is a full-stack telemetry visualization platform that turns static race data into a live, actionable replay strategy tool.
⦁ Real-Time Race Replay: It ingests high-frequency TRD telemetry data and streams it at 20Hz, simulating a live broadcast of the race.
⦁ Virtual Physics Model: We calculate new metrics like a Tire Health Model based on braking intensity and lateral G-forces.
⦁ Dynamic Track Mapping: Track map is generated from GPS coordinates in real time.
⦁ Driver Input Visualization: Friction Circle, throttle, brake traces.
⦁ Strategy Alerts: Flags heavy braking, high lateral load, and more.
How we built it
⦁ Backend: Python (Flask), Pandas, Socket.IO for streaming.
⦁ Frontend: React, SVG projection engine, Recharts, CSS/Tailwind.
⦁ Physics: Derived metrics like Tire Wear Rate.
Insights it gives
⦁ Heavy brake abuse: if brake > 85% for >0.8s → “Heavy braking sustained; lift sooner to save brakes.” Trail braking coaching: if brake >30% AND throttle >20% → “Separate brake and throttle to reduce scrub.”
⦁ Mid-corner under-rotation: if |g_lat| >1.2 AND speed < 90 → “Carry more mid-corner speed; open steering earlier.”
⦁ Over-rotation risk: if |g_lat| >1.6 AND throttle > 40% → “Ease throttle to prevent rear step-out.”
⦁ Entry too slow vs. straight-line speed: if speed >150 on straights but entry speed <70 consistently → “Brake a touch later; raise corner entry by +5 km/h.”
⦁ Exit loss: if throttle <40% for >1.5s after apex AND speed delta vs previous lap > -5 km/h → “Feed throttle earlier on exit.”
⦁ Gear reminder: if rpm > 7200 for >1s → “Upshift sooner to protect engine.”
⦁ Short-shift to save tires: if tire_health <85% AND rpm >6500 → “Short-shift to reduce tire slip.”
⦁ Brake balance hint: if brake >80% AND front tire health drops faster than rear by >5% → “Bias rearward or release earlier to save fronts.”
⦁ Lift for temps: if track_temp_c > 40 AND tire_health <80% → “Back off 5% entry speed; protect tires in heat.”
⦁ Wet caution (if rain >0): “Rain detected; extend brake zones +10% and smooth throttle.”
⦁ Wind adjustment: if wind_kph > 15 → “High wind; expect aero loss in fast corners.”
⦁ Lap completion: on crossing start/finish → “Lap N complete in Xs. Best: Ys.”
⦁ Delta feedback: if current lap time > best by >1.0s → “Off pace by 1.0s; focus on earlier throttle at exit.”
⦁ Consistency flag: if lap variance >0.8s over last 3 laps → “Stabilize braking points; variance high.”
⦁ New top speed (keep once per session): if speed > session_best +0.5 → “New top speed Z km/h.”
⦁ Fuel-ish proxy (if available later) or long-run tire: if tire_health <70% and laps_remaining >5 → “Manage tires; reduce entry speed by 5% to finish stint.”
⦁ G-force peak: if |g_lat| >1.8 → “Peak lateral load; unwind steering sooner.”
Challenges we ran into
⦁ GPS projection from Lat/Long to 2D.
⦁ Cleaning NaN telemetry values.
⦁ 20Hz rendering without frame drops.
⦁ Creating a track map that represents actual path followed by car.
Accomplishments that we're proud of
⦁ Live insights and updates in real time.
⦁ Zero-asset dynamic UI.
⦁ Tire degradation simulation.
What we learned
⦁ Real-world data is messy.
⦁ Tiny changes matter in racing.
⦁ WebSocket packet optimization.
What's next for GR Analytics
⦁ Predictive lap timing via ML.
⦁ Multi-car tracking.
⦁ Pit window calculator.



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