Formula 1 telemetry. Race intelligence. Broadcast-grade.
Live position classification with gap/interval calculations, sector times, tyre compound tracking, DRS indicators, and position swap animations. Real-time updates at sub-second latency.
Compare up to 4 drivers simultaneously with team color coding, mini-sector colouring, lap-by-lap traces for speed, throttle, brake, gear, RPM, and DRS.
Two-phase rendering (400 instant → 3000 async), 30+ circuit-specific pit stop models, SC/VSC probability analysis, backtest RMSE panel, and JSON export.
git clone https://github.com/telemetryx/telemetryx.git && cd TelemetryX && ./start.shThat's it. The app starts against your local backend using DuckDB (no Docker).
Local mode defaults:
- Real backend/API calls (no mock fallback)
- DuckDB/parquet data source
- Zero Docker requirement
Manual local run (no Docker):
# 1. Configure environment
cp .env.example .env
# Optional: edit .env
# 2. Start backend
cd backend && ./start_local.sh
# 3. Start frontend
cd frontend-electron && npm run devOptional Docker mode is for containerized deployment/testing, not required for normal app usage.
Click to expand full feature list (80+ items)
- Timing Tower — Live position classification, gaps, intervals, sector times, tyre compound, DRS indicator, position swap animations
- Telemetry — Multi-driver comparison (up to 4), speed/throttle/brake/gear/RPM traces, mini-sector colouring, lap selector per driver
- Strategy — Pit window calculator, tyre degradation curves, undercut/overcut predictor, stint planning
- Simulation — Monte Carlo with 30+ circuit models, SC/VSC probability, backtest RMSE, JSON export
- Track Map — 2.5D animated circuit, 38 real circuits from GPS, CSS perspective with tilt sliders, clean HUD mode
- Broadcast View — Production-ready display for screen recording/streaming
- Race pace analysis per driver/team
- Season standings (drivers & constructors)
- Driver clustering by performance
- Circuit insights and facts
- FIA documents viewer (stewards decisions, technical directives)
- Tyre stint analysis and degradation tracking
- Undercut/overcut effectiveness calculator
- Position gain/loss analysis
- 90fps playback — RAF-based timing with 6ms update interval
- Lazy loading — React.lazy + Suspense for all views
- Code splitting — Separate vendor chunks (React, ECharts, uPlot, Lucide, Zustand)
- Web Workers — Telemetry processing and car position interpolation off main thread
- API caching — Client-side response cache with 120s TTL
- Initial load bundles React (~716KB vendor chunk, cached after first run). App startup chunk is 78KB.
- Welcome screen with animated progress
- Glass morphism panels
- Micro-animations (modal, sidebar, tooltip transitions)
- Dark theme optimized for analysis
- Responsive layout (ultrawide supported)
- Team color coding throughout
- DNF/PIT/OUT status badges
- FL (Fastest Lap) badge
- Tyre chip visualization
- FastAPI with Pydantic v2
- DuckDB for embedded analytics
- Global error handler
- GZip compression
- WebSocket support for real-time
- Background task processing
- FastF1 (2018+ live timing, telemetry, session metadata)
- Ergast (historical results 2000–2017)
- OpenF1 WebSocket (real-time car positions)
- Jolpica-F1 (race calendar, driver info)
See /docs/architecture.md for detailed system design including:
- Electron main process (GPU rasterization, window state, CSP)
- React 19 renderer (Zustand stores, Web Workers, Canvas 2D)
- FastAPI + DuckDB backend (15+ routers, LRU cache, WebSocket)
- Data pipeline (FastF1, Ergast, OpenF1)
Contributions welcome! Please read our contributing guidelines before submitting PRs.
# Clone and setup
git clone https://github.com/telemetryx/telemetryx.git
cd TelemetryX
# Backend
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Frontend
cd ../frontend-electron
npm install
# Run frontend
npm run dev# Unified backend + frontend suite
./scripts/test_suite.sh# TypeScript check
cd frontend-electron && npx tsc --noEmit
# Full release validation
./scripts/run_desktop_local.sh --gate-only --release-gate| Layer | Technology |
|---|---|
| Desktop | Electron 40, electron-vite 5 |
| Frontend | React 19, TypeScript 5.9, Vite 7, Tailwind CSS 4 |
| State | Zustand 5 |
| Charts | ECharts 6, uPlot 1.6, Canvas 2D |
| Backend | Python, FastAPI, DuckDB, Uvicorn |
| Data | FastF1 (2018+), Ergast (2000–2017), OpenF1 |
MIT License — see LICENSE for details.
TelemetryX is a fan-driven analytics project. It is not affiliated with Formula 1, FIA, or any team.