P.03Internal prototype
Pitlabs
Sim-racing and track telemetry chain: capturing simulator channels, splitting into laps, braking analysis, trajectory comparison.
- Period
- December 2025
- Role
- Capture, storage format, analysis engine, interface.
- Stack
- Python
- pandas
- Tkinter
- matplotlib
- shared memory
- CSV
Reference points
44 728
samples captured in one session
session of 11 December 2025, Red Bull Ring, Lotus Exos 125
≈ 39 Hz
sampling rate
3,203 points recorded over a 1:22.130 lap
14
usable laps
split by normalised position over the same session
The problem
A driver losing three tenths does not know where they are losing them. The simulator exposes the car's entire physical state on every frame, but as a raw stream with no notion of lap, sector or comparison. All the value is in what happens after capture.
What was built
- 01
A receiver reading the simulator's shared memory and writing three separate streams: physics, graphics and session data.
- 02
Lap splitting from normalised track position, which gives a distance axis rather than a time axis — two laps of different durations become comparable point by point.
- 03
An analysis interface: track map, lap overlay, braking analysis, cornering, fuel management, g-forces.
- 04
A session export to replay an analysis offline.
Architecture
Technical decisions
Three files rather than one
Physics channels change every frame, session data never changes, graphics state changes at an intermediate rate. Writing them together would mean repeating the track name forty-four thousand times. Split and joined on the timestamp, they stay human-readable and diffable.
Distance as the reference axis, not time
Overlaying two laps on a time axis says nothing: the slow lap is simply longer. By resampling on normalised track position, a point on the trace corresponds to the same place on track in both laps. It is the only way to see that you are braking fifteen metres too early.
CSV, deliberately
A binary format would have been more compact. CSV opens in a spreadsheet, can be cut with head, and reloads into pandas ten years later without the software that produced it. For analysis data read rarely but for a long time, longevity beats size.
What it demonstrates
High-frequency capture, durable data format choice, time-series processing, graphical rendering of a signal.