A Streamlit dashboard for analysing MotoGP 18 telemetry data. It provides lap viewing, lap comparison, editable track zones, telemetry-based findings, and CSV exports.
This is a simulator-data analysis project. It does not control a motorcycle ECU and does not provide real-world riding advice.
- Lap leaderboard with best-lap and coverage metrics
- Track trajectory viewer for each available lap
- Starter and custom track-analysis zones
- Zone profile export/import as JSON
- Reference-versus-comparison lap analysis
- Speed, throttle, front-brake, and rear-slip comparison charts
- Ranked zone findings and selected-zone CSV export
The deployed version uses a lightweight public demo dataset with 5 usable laps:
data/demo/laps_summary_demo.csv
data/demo/telemetry_curated_demo.parquet
When full local files are available, the dashboard loads them first:
data/processed/laps_summary.csv
data/processed/telemetry_curated.parquet
- Python 3.10 or newer
- pip
- Clone the repository:
git clone https://github.com/YOUR-USERNAME/TracksideTelemetry.git
cd TracksideTelemetry- Create and activate a virtual environment:
Windows PowerShell
python -m venv .venv
.\.venv\Scripts\Activate.ps1Windows Command Prompt
python -m venv .venv
.venv\Scripts\activate- Install dependencies:
pip install streamlit pandas numpy plotly pyarrow- Start the dashboard:
streamlit run app/dashboard.py- Open the local address shown in the terminal, usually:
http://localhost:8501
- Open the Dashboard tab to view the lap leaderboard and track trajectory.
- Select a lap from Choose a lap to display.
- Open Zone manager and click Load starter zones, or create custom zones.
- Open Lap comparison, select separate reference and comparison laps, then review zone findings.
- Select a zone to inspect speed, throttle, braking, and rear-slip traces.
- Download the selected-zone comparison as a CSV if required.
TracksideTelemetry/
├── app/
│ └── dashboard.py
├── data/
│ ├── demo/
│ │ ├── laps_summary_demo.csv
│ │ └── telemetry_curated_demo.parquet
│ └── processed/ # Optional full local dataset
│ ├── laps_summary.csv
│ └── telemetry_curated.parquet
└── README.md
The app automatically uses:
data/processed/when the full local dataset is availabledata/demo/when the full dataset is unavailable
The active source is displayed in the dashboard as either Full local telemetry dataset or Public demo dataset.