Telemetry CSV Format¶
This document describes the internal file format used to store laps.
Files are stored at %LocalAppData%\ApexLab\Sessions\*.csv.
Note
This is not a user-facing import format. The app populates the catalog exclusively via live capture (LMU, etc.).
Separator¶
Comma , or semicolon ;, auto-detected from the header line.
Minimum Header Row¶
Required columns (case-insensitive):
Full Export Header¶
Written by CsvTelemetryWriter:
Time,Distance,Speed,Throttle,Brake,Steering,Gear,X,Y,Lap,OfficialLapTime,NumPenalties,NumPitstops,InPits
Comment Metadata Lines¶
Optional lines before the column header:
# Track: Spa-Francorchamps
# TrackLayout: Full
# Vehicle: Ferrari 499P
# Recorded: 2026-04-19T20:00:00Z
# Source: ApexLab 1.0
# GameSource: LmuRf2
# WeatherAmbientC: 18.5
# WeatherTrackC: 32.1
# SetupTc: 4
# SetupAbs: 3
# SetupBb: 55.0
# SetupMap: 5
Data Columns¶
| Column | Type | Required | Description |
|---|---|---|---|
Time |
float (s) | Yes | Seconds since lap start — used for lap time derivation and cumulative delta |
Distance |
float (m) | Yes | Primary axis for lap comparison — stable across laps unlike time |
Speed |
float (km/h) | Yes | Core performance metric |
Throttle |
float (0–1) | Yes | Driver input — power application |
Brake |
float (0–1) | Yes | Driver input — deceleration |
Steering |
float (°) | Yes | Identifies corners vs. straights in TrackSegmentation |
Gear |
int | Yes | Vehicle context |
X, Y |
float | Yes | World-space position — track map rendering, centerline fusion |
Lap |
int | Yes | Lap boundary detection — change in value = new lap |
OfficialLapTime |
float (s) | Optional | Best-quality lap time source from the game engine |
NumPenalties |
int | Optional | Cumulative penalty count |
NumPitstops |
int | Optional | Cumulative pit stop count |
InPits |
int (0/1) | Optional | 1 = vehicle in pits at lap end → CountsForSessionTiming = false |
Lap Time Derivation¶
The reader derives lap times in priority order:
OfficialLapTimecolumn (most accurate — from game engine)- Time delta:
Points[^1].Time - Points[0].Time - Speed/distance estimate (last resort — least accurate)
The source used is stored in Lap.LapTimeSource for transparency.
Track Outlines (Cache)¶
- WGS84 GeoJSON outlines:
%LocalAppData%\ApexLab\track-outlines\*.json - Aligned world-space outlines:
%LocalAppData%\ApexLab\track-outlines\aligned\*.json - Built-in fallbacks: Spa, Monza, Silverstone (
SimCopilot.Storage/TrackOutlines/builtin-track-outlines.json)