airaceGP Docs

Basic setup

Install the app, answer six questions, connect your game and drive. This page walks through each step.

What you need #

  • A Windows PC. airaceGP is a Windows desktop app.
  • Assetto Corsa Competizione or F1 25.
  • A microphone and headphones or speakers.
  • An AI provider. The recommended one is free: an Ollama Cloud key. You can also run a model on your own PC with Ollama and no key.
  • An internet connection for cloud AI, and once for each language pack you download.

Install #

Public download coming soon

The packaged Windows app is not public yet. Until it is, the app runs from its source folder with Python, as below.

From the app's source folder (airacee\airacee), install the dependencies and start the desktop window:

Command prompt
rem in airacee\airacee
pip install -r requirements.txt
python desktop.py

desktop.py starts the engineer and opens the dashboard in its own window. To run without the window, start run.py and open the dashboard in a browser at http://127.0.0.1:6969:

Command prompt
python run.py
rem optional: --no-voice (no microphone), --tick-seconds 40, --silence-seconds 2.5

The dashboard port (6969) can be changed in Settings → Network. The designed neural engineer voice is optional and not installed by default; the app speaks with Piper without it.

First run #

The first time the app opens, a short wizard sets it up. Every answer can be changed later in Settings, and Skip closes the wizard.

  1. App language. Pick one of the nine languages for the interface.
  2. Your engineer's language. The same as the app, or a different one. This is the language you hear on the radio.
  3. Which game? Assetto Corsa Competizione, F1 25 with the 2026 Season Pack format, or F1 25 with the classic 2025 format. Older F1 games are listed as unverified.
  4. Connect a provider. Paste a key for at least one provider. Ollama Cloud and Groq are shown first, recommended to start; List more providers shows the rest. Then answer If your first provider fails: Try the next one or Stay quiet. The wizard shows the order it will save before you continue.
  5. How should they talk? Talkativeness (only when it matters, balanced, keep me talking) and how often they check in (now and then, regularly, frequently: every 60, 40 or 20 seconds).
  6. Offline language pack. Only when your engineer speaks a language other than English: the translation pack downloads so it works trackside with no internet. It keeps downloading in the background if you continue.
Onboarding, Let's pick your language: a grid of the nine languages, English, Español, Italiano, Français, Deutsch, Português, Čeština, Polski and 日本語.
Step 1: the app language. Step 2 asks the same for the engineer.
Onboarding step 3 of 5, Which game: Assetto Corsa Competizione selected and marked supported, F1 25 / 26 and F1 25 2025 supported, F1 24, F1 23, F1 22 and F1 2021 marked unverified.
Step 3: the game. ACC, and F1 25 in either telemetry format.
Onboarding step 4 of 5, Connect a provider: Ollama Cloud and Groq first, recommended to start, both with a free tier; an Ollama Cloud key pasted and masked; OpenRouter, Anthropic and List more providers below; If your first provider fails with Try the next one selected; and the chain it will save. Unprompted calls: Ollama Cloud gpt-oss:120b. Your questions: Ollama Cloud gemma4:31b, then Ollama Cloud gpt-oss:120b.
Step 4 with an Ollama Cloud key. The key is masked on screen and saved only to your local .env; below it, the fallback question and the chain the wizard will save.
Onboarding step 5 of 5, How should they talk: Talkativeness with Only when it matters, Balanced and Keep me talking; How often they check in with Now and then, Regularly and Frequently.
Step 5: how much the engineer talks.

Connect Assetto Corsa Competizione #

  1. Choose Assetto Corsa Competizione in the wizard, or later in Settings → Telemetry → Sim, then restart the app. It starts its ACC reader by itself.
  2. Start ACC and get on track. ACC publishes nothing while you are in the menus. Shared memory needs no game settings.
  3. Optional check, from the app folder while you are on track:
    Command prompt
    python acc_run.py --selftest
    It should end with ALL SYSTEMS GOOD. A corner that reads SUSPECT means a misaligned read, not a bad setup; report it.

Live timing (optional)

Shared memory does not carry gaps, standings or other drivers' names. ACC's Broadcasting API does. To use it:

  1. Open Documents\Assetto Corsa Competizione\Config\broadcasting.json. The app expects ACC's shipped values:
    broadcasting.json
    {
      "updListenerPort": 9000,
      "connectionPassword": "asd",
      "commandPassword": ""
    }
    ACC reads this file only when it starts, so restart the game after editing it.
  2. Turn on Settings → AI → Live timing (gaps and rivals).

If you use a different port or connection password, set broadcast_port and broadcast_password to match in the app's web_config.json. The connection is listen-only: the app has no code that can send a command to the game.

What ACC does not provide

  • No tyre wear figure. Tyres are judged on pressures and core temperatures.
  • No safety car data. The engineer will not claim one either way.
  • No gaps without the Broadcasting API. The app computes them from track position.

Connect F1 25 #

  1. In F1 25, open Settings → Telemetry Settings and set:
    SettingValue
    UDP TelemetryOn
    UDP IP Address127.0.0.1 when the app runs on the same PC; otherwise that PC's address
    UDP Port20778
    UDP Format2025, or the 2026 Season Pack format
  2. In the app, set Settings → Telemetry → UDP packet format to the same format as the game: F1 25 (2026 Season Pack) or F1 25 (2025 classic). This applies without a restart.
  3. Drive. The status bar at the bottom of the app reads Telemetry · Live while packets arrive.
Settings, Telemetry pane: UDP port 20778, the Sim dropdown set to F1 25 / 26, the UDP packet format dropdown set to F1 25 (2026 Season Pack), and the Record sessions switch.
Settings → Telemetry: the port the app listens on, the game, and the UDP packet format for F1.

Talking to the engineer #

There is no button to hold. The microphone listens for your voice while telemetry is live: speak, and when you stop for about 2.5 seconds the recording is transcribed and answered. The microphone is released completely while the app is paused, the mic is muted, or no telemetry is arriving.

  • Interrupting. Speak over the engineer and it stops talking and listens. The loudness that counts as an interruption is interrupt_rms in web_config.json; raise it if game audio cuts the engineer off.
  • Wake word. Optional, off by default: turn on Settings → Voice → Wake word ("hey Bono"). Say "hey Bono" and the engineer answers "Yes?" at once. It runs offline with Vosk.
  • Transcription. Settings → Audio → Transcription engine: Local runs faster-whisper on your PC (sizes tiny to medium; bigger is more accurate and uses more CPU), Groq cloud is fast and accurate but needs a Groq key. Without a Groq key, or if a Groq call fails, it uses Local.
  • Devices. Settings → Audio picks the microphone, the speaker and the voice volume, with a Test button.
  • Mute and pause. Mute Mic is on the Home page and in the radio panel on the Live page; Pause is on the Home page.

Languages #

The app language (the interface) and the engineer language (the radio) are set separately, in the wizard or in Settings → Language. The model always answers in English and the line is translated on your PC. Each language's pack downloads once and then works offline. If translation is not available, you hear English.

Dashboard on your phone #

Turn on Settings → Network → Host dashboard on local network, then open http://<your PC's IP>:6969 on a phone on the same Wi-Fi. Keys, restarts and model downloads work only on the PC running the app; from another device they are refused with AIR-503.

The Live page at phone width: position P10, fuel 4.8 laps and marked short, speed 212 km/h, gear 5, last lap 2:37.165, sector 1, and throttle, brake and steering bars.
The same Live page at phone width.