Skip to content
Back to selected work2026 · Data visualisation / sports analytics

Project case study / 04

Pitwall

Raw F1 telemetry, explained: where the time was won or lost.

Live static demo · Independent project

At a glance / inspectable evidence

Pitwall at a glance

Cached sessions
04

Served in the public static demo

Public demo
Live

Hosted on GitHub Pages

Full stack
Solo

API, dashboard, and publishing pipeline

01 / Overview

Role
Solo project · full stack
Stack
Python · FastAPI · FastF1 · React · TypeScript · ECharts · Three.js

What Pitwall is

An interactive race-analysis dashboard that turns FastF1 timing and telemetry into lap, sector, and driver comparisons that explain the gap instead of only charting it.

02 / Context & problem

The problem

F1 telemetry is rich but raw. Comparing two laps meaningfully means aligning distance, speed, throttle, and braking traces, which most fan tools leave to the viewer.

The response

A FastAPI service loads, caches, and serves FastF1 sessions (timing, telemetry, weather, and race control) to a React and TypeScript dashboard built with ECharts and Three.js.

03 / System path

Follow the work from input to outcome.

  1. 01

    FastF1 session

  2. 02

    Disk cache

  3. 03

    FastAPI

  4. 04

    Telemetry alignment

  5. 05

    Interactive dashboard

04 / Contribution

My contribution.

  1. 01

    Built the FastAPI service for sessions, timing, telemetry, weather, and race control

  2. 02

    Built the React dashboard with ECharts traces and Three.js views

  3. 03

    Wrote the cache-warming and static-export pipeline behind the GitHub Pages demo

05 / Engineering pressure

The hard parts.

  • 01Session loads are heavy, so data is precomputed and served from a disk cache
  • 02Aligning telemetry traces by distance so two laps compare like for like
  • 03Shipping a backend-free public demo as a static snapshot

06 / Outcome & reflection

What came out of it.

A public demo serves four cached sessions’ fastest-lap telemetry from a static build, with no backend required.

Lessons carried forward

  • Explaining a delta is more useful than plotting another line.
  • Precomputation turns a slow data source into an instant interface.
  • Static snapshots are an honest, cheap way to share a data product.