Assetto AI Director

An AI cinematographer for Assetto Corsa.

Point it at a replay or telemetry session; it analyses the drive, decides which moments deserve a camera, and directs a cinematic shot list and camera timeline — in the visual language of Initial D, MF Ghost, Best Motoring, Option Video, and Gran Turismo replay theatre.

Source code & documentation: github.com/PlumberOR67/assetto-corso-ai-director

In-Engine Development Progress

Live captures from Assetto Corsa showing automated camera rig switching, trackside tracking, and telemetry-driven camera control in action.

Build Capture I (Sept 2026) — Roadside & trackside camera rig handoff test.
Build Capture II (Oct 2026) — Touge downhill chase, dynamic camera transitions & telemetry overlay.

Computational Cinematography

This is not a replay analyser with a camera menu bolted on. It is a director: it makes editorial decisions — where to put the camera, when to cut, what deserves a shot at all — using published research on automated cinematography rather than ad-hoc heuristics.

Continuity Editing Graph

Shot selection is solved as a minimum-cost path through an editing graph via dynamic programming under a semi-Markov assumption (Galvane et al., AAAI-15), enforcing the 180° line of action and 30° rule (He, Cohen & Salesin, SIGGRAPH ’96).

Toric Space Framing

Two-car battle framing uses the exact Toric manifold parameterisation of Lino & Christie (ACM TOG 2015) to maintain composition across corners and overtakes.

1/f Pink-Noise Cutting Rhythm

Cutting rhythm is sampled as 1/f noise rather than uniform durations, matching the correlated shot-length spectrum measured in cinema (Cutting, DeLong & Nothelfer, 2010).

Self-Verifying Replay Parser

Decodes binary .acreplay files with dynamic per-car frame stride verification (276 + 4 × numWings bytes) checked against the trailing Custom Shaders Patch footer.

Capabilities

Architecture

presentation / mcp  ──►  infrastructure  ──►  application  ──►  domain

src/assetto_ai_director/
├── domain/          pure data and pure functions (stdlib + NumPy)
├── application/     ports, features, events, scoring, director, camera
├── infrastructure/  .acreplay reader, synthetic provider, CSV, exporters
├── presentation/    CLI (aidirector) and PySide6 GUI (aidirector-gui)
└── mcp/             Model Context Protocol server (aidirector-mcp)