PitWall Devlog 4 Circuit DNA and Qualifying Analysis
What I built
Qualifying Analysis
get_quali_improvement tracks a driver’s best lap time across Q1, Q2 and Q3 using session.results which returns the results from the three sessions. chart_quali_improvement calculates each driver’s progression between 2 sessions (Q1 and Q2 and so on)
get_perfect_lap gets its own chart chart_perfect_lap shows the perfect theoretical lap vs actual best lap where the best lap is the three fastest sectors overall per driver
Circuit DNA
It classifies a circuit based on its traits (power track, high/low df, high/low drag and so on) get_circuit_dna analyzes the fastest lap telemetry from any session and extracts 6 metrics: full throttle percentage, braking percentage, top speed, average corner speed, low speed corner percentage and high speed cornering percentage.
classify_circuit uses those metrics to label a circuit as High Speed, Power Track, High Downforce, Stop/Go or Balanced. Tested across a few circuits as well
chart_circuit_dna shows a radar chart overlaying multiple circuits so you can visually compare their personalities
get_team_circuit_affinity and get_driver_circuit_affinity calculate average qualifying positions per team and driver based on circuit type
Results
- Silverstone: High Speed — 65% full throttle, 162 km/h avg corner speed
- Monaco: High Downforce — 34% low speed corners, 27% braking
- ANT is the strongest qualifier across all circuit types in 2026
- Mercedes dominant on Balanced circuits, Ferrari strong on High Speed
Problems I hit
- FastF1 doesn’t support Q1/Q2/Q3 as separate session types so i had to use
session.resultswhich has cleaner segment times - Circuit classifier kept misclassifying Silverstone as Power Track in the if/elif part of the code
- Team affinity chart showed each team 3 times in the legend fixed it with
dict.fromkeys()to remove the duplicates
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.