Skip to content

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):

Time,Distance,Speed,Throttle,Brake,Steering,Gear,X,Y,Lap

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:

  1. OfficialLapTime column (most accurate — from game engine)
  2. Time delta: Points[^1].Time - Points[0].Time
  3. 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)