FlightGear
FlightGear Flight Simulator is a free, open source multi-platform flight simulator developed by the project since 1997.
David Murr started this project on April 8, 1996. This project had its first release in 1997 and continued in development. It has specific builds for a variety of different operating systems including Microsoft Windows, macOS, Linux, IRIX, and Solaris.
FlightGear is an atmospheric and orbital flight simulator used in aerospace research and industry. Its flight dynamics engine is used in a 2015 NASA benchmark to judge new simulation code to the standards of the space industry.
History
FlightGear started as an online proposal in 1996 by David Murr, living in the United States. He was dissatisfied with proprietary, available, simulators like the Microsoft Flight Simulator, citing motivations of companies not aligning with the simulators' players, and proposed a new flight simulator developed by volunteers over the Internet. The flight simulator was created using custom 3D graphics code. Development of an OpenGL based version was spearheaded by Curtis Olson starting in 1997. FlightGear incorporated other open-source resources, including the LaRCsim flight dynamics engine from NASA, and freely available elevation data. The first working binaries using OpenGL came out in 1997. By 1999 FlightGear had replaced LaRCsim with JSBSim built to the sims' needs, and in 2015 NASA used JSBSim alongside 6 other space industry standards to create a measuring stick to judge future space industry simulation code.FlightGear reached 1.0 in 2007, 2.0 in 2010, and there were 9 major releases under 2.x and 3.x labels, with the final one under the previous numbering scheme being "3.4", since "3.6" was cancelled. The project moved to a regular release cadence with 2-4 releases per year since 2016, with the first version under the new naming scheme being "2016.1". Around that time, the graphical front end "FlightGear Launch Control", also known as "FGRun", was replaced by a hard-coded Qt launcher. FlightGear's source code is released under the terms of the GNU General Public License and is free and open-source software.
The FlightGear project has been nominated by SourceForge, and subsequently chosen as project of the month by the community, in 2015, 2017, and 2019.
Simulator features
Physics
Forces experienced by a flying aircraft depend on the time-varying state of atmospheric fluid flow along the flight path - the atmosphere being a fluid that can exchange energy, exchange moisture or particles, change phase or other state, and exert force with boundaries formed by surfaces. Fluid behaviour is often characterised by eddies or vortices on varying scales down to the microscopic, but is harder to observe as the air is clear except for moisture phase changes like condensation trails or clouds. The atmosphere-terrain boundary interaction follows fluid dynamics, just with processes on hugely varying scales and 'weather' is the planetary boundary layer. The aircraft surface interaction works with the same dynamics, but on a limited range of scales. Forces experienced at any point along a flight path, therefore, are the result of complicated atmospheric processes on varying spatial scales, and complex flow along the craft's surface. Craft also experience varying gravitational force based on the 3d shape of the potential well and the non-spherical shape of the Earth.Atmospheric and environmental physics
FlightGear can simulate the atmosphere ranging from energy inputs/outputs to the system, like energy from the Sun or volcanic sources, through to fluid flow on various scales and changes of state. FlightGear is able to model different surface characteristics such as heating or cooling, and the exchange of heat and moisture with the atmosphere depending on factors like windflow or dew point. FlightGear models the continuously evolving life-cycle of phenomena on various scales, driven by interaction of fluid with terrain. They range from turbulence on different scales to, individual thermals, thunderstorms, through to moving air layers, and depicting air-masses on the scale of thousands of kilometers. Atmospheric water is modeled by FlightGear ranging from state changes such as condensing into cloud or haze layers, along with energy provided from latent heat to drive convective fluid flow, through to precipitation as rain droplets, snow, or hail.The process of generating lift creates turbulence with vortices, and FlightGear models wake turbulence with shedding of wingtip vortices by flown craft as well as AI craft.
FlightGear also has a less physically accurate model that uses METAR weather updates of differing frequency, designed for safe operation of aerodromes, to dis-continuously force atmosphere based on attempted guesses of processes that are fundamentally constrained by the closeness or density of observation stations, as well as the small-scale, limited, rounded off, non-smoothly varying, and need-to-know precision of information. Aloft waypoint settings modelling high altitude behaviors of wind can be synced to updates from Jeppeson.
Flightgear has a simulation of planetary bodies in the Solar System which is used for purposes like driving latitude dependent weather from solar radiation, as well as the brightness and position of stars for celestial navigation. There is a model of gravity based on a non-spherical Earth, and craft can even experience differing gravity across their bodies which will exert twisting force. A model of the observed variation in the Earth's complex magnetic field, and the option to simulate, to an extent, the propagation of radio wave signals due to interaction with different types of terrain, also exists in FlightGear.
FlightGear uses an exact, non-spherical, model of Earth, and is also able to simulate flight in polar regions and airports without simulator errors due to issues with coordinate systems.
Flight Dynamics
FlightGear supports multiple flight dynamics engines with differing approaches, and external sources such as MATLAB/Simulink, as well as custom flight models for hot air balloons and spacecraft.JSBSim
JSBSim is a data driven flight dynamics engine with a C++ core built to the needs of the FlightGear project from 1996 to replace NASA's LaRCSim, and integrated into FlightGear as the default from 1999. Flight characteristics are preserved despite low frame rate, as JSBSim physics are decoupled from rendering and tick at 120 Hz by default. This also supports high time-acceleration as rendering does not have to be done faster causing the GPU to be a bottleneck.Mass balance, ground reactions, propulsion, aerodynamics, buoyant forces, external forces, atmospheric forces, and gravitational forces can be utilized by JSBSim, the current default flight dynamics engine supported by FlightGear, to determine flight characteristics. JSBSim supports non-terrestrial atmospheres and has been used to model unmanned flight in the Martian atmosphere by NASA.
Benchmark testing by NASA
JSBSim was used by NASA in 2015 with other space industry simulation code, both to establish a ruler to judge future code for the requirements and standards of the space industry, as well as check agreement. The verification tested both atmospheric and orbital flight in 6-degrees-of-freedom for simulations like JSBSim that supported both. The results from 6 participants consisting of NASA Ames Research Center, Armstrong Flight Research Center, Johnson Space Center, Langley Research Center, Marshall Space Flight Center, and JSBSim were anonymous as NASA wanted to encourage participation. However, the assessment found agreement for all test cases between the majority of participants, with the differences being explainable and reducible for the rest, and with the orbital tests agreeing "quite well" for all participants.YASim
YASim's approach to flight dynamics uses the geometry of the aircraft present in the 3D model at startup, conceptually similar to Blade element theory used by some software, to calculate a rough approximation of fluid dynamics - with the conceptual problems that each "element" is considered in isolation therefore missing affecting fluid flow to other elements, and the approximation breaking down for craft in transonic to hypersonic regimes. By contrast, offline approaches like JSBSim can incorporate windtunnel data. They can also incorporate the results of computational fluid dynamics which can reach computable accuracy only limited by the nature of the problem and present day computational resources.FlightGear also supports LaRCsim and UIUC.
Time acceleration
FlightGear is able to accelerate and decelerate time, speeding up or slowing down the simulation. Time acceleration is a critical feature for simulating longer flights and space missions. For all interactions with the simulator, it allows people to speed up uneventful parts, and gain more experience. It also means automated simulations used for research finish faster - this is helped by FlightGear's headless mode.FlightGear is able to support high time accelerations by allowing parts of the simulation to run at different rates. This allows saving of CPU and GPU resources by letting unimportant parts of the simulation, like visuals or less time-sensitive aircraft systems, run at slower rates. It also improves performance. Separate clocks are available for JSBSim physics, different parts of aircraft systems, as well as environment simulations at large scale and small scale.