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.
README
View on GitHubACC 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, orenthusiastic) - 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.

