Architecture

Each sim plugin is a lightweight Python process that runs alongside the simulator. It polls the sim's telemetry interface (shared memory or UDP), accumulates data per lap, and writes standardised CSVs to a local output folder. These files are then uploaded to Simutec — either manually or via a background sync agent (coming soon).

Shared MemoryUDP SocketPython 3.9+Windows 10/11

Assetto Corsa

Shared Memory (Python)

AC exposes a shared memory block via mmap. Poll at ~100Hz using the official sim_info.py wrapper.

sim_info.py (AC SDK)

Assetto Corsa Competizione

Shared Memory (Python)

ACC uses three shared memory structs: SPageFilePhysics, SPageFileGraphics, SPageFileStatics. Poll physics at 50–100Hz.

accSharedMemory (Python)

iRacing

iRacing SDK (Shared Memory)

Use the irsdk Python library. Speed is in m/s — multiply by 3.6 for km/h. LapDistPct gives 0–1 normalised track position; multiply by track length for distance.

irsdk (Python)

Le Mans Ultimate

rFactor2 Plugin (UDP or Shared Memory)

LMU runs on the rFactor2 engine. Install the rF2 shared memory map plugin DLL, then read via a Python bridge. Alternatively use the built-in UDP telemetry on port 5397.

rF2SharedMemoryMapPlugin + Python bridgePort UDP 5397

KartSim

rFactor2 Plugin (UDP or Shared Memory)

Identical to LMU — KartSim is built on rFactor2. Same plugin and bridge apply.

rF2SharedMemoryMapPlugin + Python bridgePort UDP 5397