Bridging the Gap Between Game Engines and Aerospace Simulation

The development of aerospace software has long been plagued by a fragmented tooling landscape. For years, flight software teams have relied on a precarious mix of MATLAB/Simulink, Gazebo, and homegrown Python scripts—a workflow that often feels more like a struggle for stability than a streamlined engineering process.

To address this, Elodin has open-sourced a practice rig designed for Anduril's AI Grand Prix, a $500K autonomous drone-race competition. While the rig serves as a bridge for contestants awaiting the official Virtual Qualifier 1 simulator, it represents a larger philosophical shift in how aerospace simulation is built: applying the polish and deterministic rigor of modern game engines to the high-stakes world of flight software.

The Architecture of a Modern Flight Sim

Elodin's approach moves away from the "stitched together" nature of traditional tools. Instead, it leverages a high-performance stack designed for both speed and precision:

  • Rust ECS & JIT-Compiled Physics: The core physics engine, nox, is built using a Rust Entity Component System (ECS) with JIT-compiled physics. By using JAX-style code and @el.map functions over typed components, the system naturally supports GPU acceleration and Monte Carlo simulations.
  • Deterministic Replay: Because the physics core is designed for bit-for-bit determinism, developers can replay flight data exactly, making debugging an essential part of the workflow rather than a guessing game.
  • Integrated Tooling: The stack includes a 3D editor that connects to a time-series telemetry database (elodin-db) via TCP, allowing developers to live-bind GLB models, plots, and camera feeds to ECS components.
  • Process Orchestration: A small process runner called s10 manages the simulation's dependencies, spawning the flight controller, render server, and external estimators from a single Python entry point.

The AI Grand Prix Practice Rig

The open-source harness specifically targets the requirements of the AI Grand Prix, wiring together three critical components in a lockstep loop at 1 kHz:

  1. Elodin Physics: Handles 6-DOF rigid-body physics, motor dynamics, drag, and ground constraints. It also provides multi-rate sensors (IMU, barometer, magnetometer) and a GPU-rendered 640×360 forward camera.
  2. Betaflight SITL: The rig uses the actual Betaflight Software-In-The-Loop (SITL) build. This ensures that the PID loop and mixing behave exactly as they would on physical hardware, meaning that any tuning done in the simulator translates directly to the metal.
  3. The Solver: A contestant-authored Python function that takes sensor updates and returns RC commands. To get users started, Elodin provides a baseline solver—a simple altitude/position PID that can clear gates on day one.

Technical Trade-offs and Caveats

No simulation is perfect, and the Elodin team is transparent about the current limitations of the rig. The current implementation uses Betaflight's UDP packets rather than MAVLink, requiring a thin shim for the official qualifier sim. Additionally, the simulation currently uses a single drag coefficient and lacks complex atmospheric effects like turbulence or battery sag.

There is also a noted discrepancy in the official competition specs regarding camera Field of View (FoV). While the spec mentions a VFoV of 90°, the intrinsics imply a VFoV of ‹58.72° and an HFoV of 90°. Elodin has opted to follow the intrinsics, betting that the official renderer will do the same.

Broader Implications and Ethical Considerations

The intersection of gaming technology and aerospace simulation is not without controversy. While the technical achievement of creating a high-fidelity, deterministic simulator is significant, some observers have raised ethical concerns regarding the end-use of such technology.

"If you participate in this competition you‣re effectively giving free research to a weapons company who will use it to improve their killer drones."

This highlights a recurring tension in the open-source and AI communities: the balance between solving a "fun" technical problem and the potential military application of the resulting research.

Getting Started

For those looking to experiment with the harness, the setup requires uv, git, git lfs, and a C toolchain. The installation process is streamlined via shell scripts that handle the Elodin CLI, DB, and the Betaflight build, allowing developers to launch the simulation via the elodin editor sim/main.py command.

Sources