// the find
JSBSim-Team/jsbsim
An open source flight dynamics & control software library
JSBSim is a 6-degree-of-freedom flight dynamics model library that's been around since the FlightGear days — think of it as the physics engine for aircraft simulation. It models aerodynamics, propulsion, landing gear, and control systems via XML configuration files, and has bindings for C++, Python, and MATLAB. The target audience is aerospace researchers, autopilot developers doing SITL testing, and anyone building a flight simulator who doesn't want to implement the equations of motion themselves.
The XML-driven aircraft configuration is genuinely well thought out — you can define a complete aircraft aerodynamic model without touching C++ code, which makes it tractable for aerospace engineers who aren't primarily programmers. NASA validated it against six other flight simulation tools in 2015 and it held up. The Python wheel distribution is painless (`pip install jsbsim`) and ships with aircraft data and example Jupyter notebooks that actually run on Colab. It has real-world adoption credibility: ArduPilot, PX4, and the DARPA AlphaDogfight competition all use it, which means the edge cases have been stress-tested in ways that most academic simulation tools never are.
The documentation situation is a mess — the canonical reference is a PDF on SourceForge, the online manual has been 'under construction' since 2018, and the gap between documented and implemented features is openly acknowledged in the README. The XML aircraft format has no schema enforcement worth speaking of (there's an XSD but validation is loose), so model authoring errors fail silently at runtime rather than at load. The Earth model and atmosphere are accurate for most uses, but there's no built-in terrain, weather dynamics, or icing — you have to integrate those yourself, which is fine if you're pairing it with a full sim environment but a real gap if you're not. The Unreal Engine plugin bundles binary `.uasset` files in the main repo, which is a versioning and diff nightmare.