Skip to content

michal92299/f1-race-replay

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

F1 Race Replay 🏎️ 🏁

A Python application for visualizing Formula 1 race telemetry and replaying race events with interactive controls and a graphical interface.

Race Replay Preview

Features

  • Race Replay Visualization: Watch the race unfold with real-time driver positions on a rendered track.
  • Leaderboard: See live driver positions and current tyre compounds.
  • Lap & Time Display: Track the current lap and total race time.
  • Driver Status: Drivers who retire or go out are marked as "OUT" on the leaderboard.
  • Interactive Controls: Pause, rewind, fast forward, and adjust playback speed using on-screen buttons or keyboard shortcuts.
  • Legend: On-screen legend explains all controls.
  • Driver Telemetry Insights: View speed, gear, DRS status, and current lap for selected drivers when selected on the leaderboard.

Controls

  • Pause/Resume: SPACE or Pause button
  • Rewind/Fast Forward: ← / → or Rewind/Fast Forward buttons
  • Playback Speed: ↑ / ↓ or Speed button (cycles through 0.5x, 1x, 2x, 4x)
  • Set Speed Directly: Keys 1–4

Requirements

Install dependencies:

pip install -r requirements.txt

Usage

Run the main script and specify the year and round:

python main.py --year 2025 --round 12

The application will load a pre-computed telemetry dataset if you have run it before for the same event. To force re-computation of telemetry data, use the --refresh-data flag:

python main.py --year 2025 --round 12 --refresh-data

File Structure

  • main.py — Entry point, handles session loading and starts the replay.
  • src/lib/tyres.py — Type definitions for telemetry data structures.
  • src/f1_data.py — Telemetry loading, processing, and frame generation.
  • src/arcade_replay.py — Visualization and UI logic.

Customization

  • Change track width, colors, and UI layout in src/arcade_replay.py.
  • Adjust telemetry processing in src/f1_data.py.

Contributing

  • Open pull requests for UI improvements or new features.
  • Report issues on GitHub.

Known Issues

  • Occasional telemetry data gaps cause accuracy issues with the leaderboard

📝 License

This project is licensed under the MIT License.

⚠️ Disclaimer

No copyright infringement intended. Formula 1 and related trademarks are the property of their respective owners. All data used is sourced from publicly available APIs and is used for educational and non-commercial purposes only.


Built with ❤️ by Tom Shaw

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%