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

join on tsSimulatorshared memoryReceiverread loopphysics.csvper framegraphics.csvlaps, sectorsSplittingnormalised positionAnalysisbraking, g, fuel
From the simulator's shared memory to a two-lap overlay.

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.