Flight dynamics (preview)
Dawn Engine Flight (planned Gem Gems/FlightDynamics) integrates
JSBSim as the sole flight-dynamics authority for aircraft. Dawn owns input, entity lifecycle, large-world transforms, rendering, weather bridging, terrain queries, kinematic collision proxies, editor workflows, and diagnostics.
Maturity: planned / design complete. First ship target: Windows / Linux desktop, single-player authoritative sim, fixed-wing MVP. Rotorcraft, VTOL, rockets, and multiplayer sync are architecturally reserved—outside first-release scope. Baseline: JSBSim v1.3.1 (LGPL-2.1), dynamically linked so users can replace a compatible DLL/SO.
JSBSim owns motion. PhysX does not re-integrate lift, drag, thrust, or gravity; AzPhysics supplies scene queries and optional kinematic proxies only.
What problem it solves
Simulation and training products need a data-driven fixed-wing loop—cold start through landing—without inventing another aerodynamic solver inside the engine. FlightDynamics is intended to provide:
- Per-aircraft
FGFDMExecinstances advanced on a fixed simulation clock (default 120 Hz); - Aircraft / engine / systems / init XML packages—no per-airframe C++ forks for ordinary models;
- Stable control, state, and event APIs for C++, Lua, and Script Canvas;
- Large-world absolute state on
AZ::Vector3d/AZ::TransformDwith render-origin-relative GPU transforms; - One-way consumption of Weather atmosphere, wind, and turbulence facts;
- Automated regression for units, frames, ground contact, and typical flight cases—plus LGPL-compliant shipping requirements.
Planned first-release scope
| In MVP | Deferred |
|---|---|
| Fixed-wing piston and jet (shared architecture) | Rotorcraft wake / VTOL / rockets / orbital |
| Cold start → taxi → takeoff → cruise → approach → landing | Full avionics, ATC, weapons, damage, icing accumulation |
| Single-player authoritative FDM | Multiplayer prediction / rollback |
| Weather + terrain + kinematic proxy integration | CFD, aeroelasticity, certification training devices |
| Dynamic JSBSim link + replaceable binary | Static / LTO merge into a monolithic launcher |
Realism is declared per aircraft asset (DeclaredRealismLevel). MVP acceptance targets R2 (procedural: mass/fuel, engines, FCS, trim, stall, gear, standard atmosphere and wind)—not FAA/EASA certification.
How it will work
Input / AI / Navigation3D expectations
│
▼
FlightDynamics Gem ◄── Weather FlightBridge (facts only)
│
├─ FGFDMExec (120 Hz fixed steps)
├─ Axis / unit adapter (body · NED · ECEF ↔ Dawn +Y forward, +Z up)
├─ HighPrecisionTransform (absolute)
└─ AzPhysics kinematic proxy + terrain / runway queries
Design rules:
- Render
dtnever entersFGFDMExec::Run()directly—only a fixed-step accumulator does. - One adapter layer converts JSBSim frames/units to Dawn conventions.
- Weather writes environment; FlightDynamics never drives Weather.
- LGPL-2.1 compliance is a release prerequisite: dynamic link, notices, corresponding source offer, and EULA reverse-engineering exception for user-modified JSBSim.
Rollout stages (FD0–FD5)
| Stage | Intent |
|---|---|
| FD0 | Version lock, dynamic-link probe, license / asset audit, upstream check cases |
| FD1 | Wrapper, clock, units/coordinates, headless harness |
| FD2 | Components, XML asset pipeline, Prefab, sample fixed-wing |
| FD3 | Weather, terrain, gear / runway friction, collision proxies |
| FD4 | Full-mission E2E under large-world / origin shift |
| FD5 | Performance, Windows/Linux packages, license and compliance checks |
Related systems
| Topic | Relationship |
|---|---|
| Weather (planned) | WeatherFlightRequestBus atmosphere / wind / turbulence |
| Double-precision rendering | Absolute FDM state vs float render origin |
| Navigation3D | Route / attitude expectations → control adapter (not direct Transform writes) |
| PhysX Vehicle | Ground vehicles only—not reused for flight FDM |
| Cesium 3D Tiles | Optional geospatial context for long-range visuals |
Status and next steps
This chapter is a product preview. When FlightDynamics ships, expect Quick start (enable Gem, mount sample aircraft Prefab, map input), Registry / packaging notes, and debugging panels consistent with other user-guide chapters.