Project · Wed, 28 Oct, 2026 · 11:35 am UTC

Apex Engineer

  • Mohamed Akeel Nazeer

Using AI as a Race Engineer for Sim Racing and to help improve lap times.

ACC AI Race Engineer

A voice-driven AI race engineer for Assetto Corsa Competizione (ACC) built in Python 3.11+.

While the driver races, the engineer monitors live shared memory telemetry and delivers short, timely spoken callouts (fuel consumption, tyre temperatures and pressures, lap performance, and flag warnings). The driver can ask questions via voice and receive concise spoken answers, followed by a post-session AI debrief highlighting where lap time was lost.

Architecture Overview

ACC (Windows) --shared memory--> Telemetry Reader (10 Hz)
                                        │
                                        ▼
                               State + Lap Tracker
                                        │
                    ┌───────────────────┼───────────────────┐
                    ▼                   ▼                   ▼
             Event Detector      Recorder (JSONL)    Snapshot Builder
           (rules, templates)                               │
                    │                                       ▼
                    ▼                                   LLM Layer
              Speech Queue <────────────────────────────────┘
          (priority, cooldown)
                    │
                    ▼
                 TTS Out

Windows Setup Steps

1. Prerequisites

  • Windows 10/11 (ACC shared memory is only available on Windows)
  • Python 3.11+ installed and added to your PATH
  • Assetto Corsa Competizione (for live telemetry)

2. Create and Activate Virtual Environment

Open PowerShell or Command Prompt in the project root directory:

python -m venv .venv
.\.venv\Scripts\Activate.ps1

(If script execution is disabled in PowerShell, run Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned)

3. Install Dependencies

Install the required packages:

pip install -r requirements.txt

4. Configuration

Review and customize config.yaml for:

  • Telemetry polling rate (polling_hz, default 10 Hz)
  • Race engineer personality (calm, blunt, sarcastic, or enthusiastic)
  • Speech cooldowns and rule threshold values (starting values to tune)

Important: API keys (e.g. LLM providers, Supabase) must be read from environment variables only, never saved in config.yaml.

Running the Tests

Execute pytest from the root directory:

pytest

To run with verbose output:

pytest -v

Hackers

Builders behind this 503 Day project.

Mohamed Akeel Nazeer
Mohamed Akeel Nazeer

Quality Assurance Engineer • Engineering