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.
In-Engine Development Progress
Live captures from Assetto Corsa showing automated camera rig switching, trackside tracking, and telemetry-driven camera control in action.
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
- Event Detection — drift initiation and transitions, countersteer, apex clipping, braking points, corner entry/exit, overtakes, contact, and near-limit moments.
- Moment Scoring — Drift, Speed, Risk, Flow, and Cinematic scores, normalised and weighted by style profile.
- 12 Camera Rigs & Diagnostics — static, follow, roadside, wheel, drone, interior, bonnet, suspension, roof, helicopter, spline, and orbital rigs with critically-damped smoothing and automated visibility verification.
-
LLM & MCP Server Integration — built-in Model Context Protocol server (
aidirector-mcp) enabling any compatible LLM agent to inspect sessions, evaluate events, diagnose camera coverage, and direct cuts programmatically. -
Standardised Outputs — versioned
timeline.jsonschemas, Assetto Corsacameras.initrackside sets, telemetry CSV, diagnostic SVG contact sheets, CLI, and PySide6 desktop inspector.
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)