748.flightdm_r
SPEC CPU®2026 Benchmark Description

Benchmark Name

748.flightdm_r

Benchmark Program General Category

Flight dynamics models for aeronautics

Benchmark Authors

748.flightdm_r was submitted to the SPEC CPU v8 Benchmark Search Program by Jon S. Berndt.

Benchmark Description

JSBSim is a multi-platform, general purpose object-oriented Flight Dynamics Model (FDM) written in C++. JSBSim has been in development and use since 1996, and has been built on all of the most popular platforms in use today including those running Linux, Macintosh, and Windows operating systems. JSBSim provides models of general classes of objects such as aerodynamic models, flight control system components, engines, mass properties, and so on, with vehicle-specific characteristics read from a set of configuration files in an XML format. Vehicles that have been modeled within JSBSim encompass the range from a simple ball to gliders, unmanned aerial vehicles, airships, airliners, launch vehicles, all the way to an orbital spacecraft with an extensive aerodynamic database, rocket propulsion systems, and guidance and control laws.

The FDM is essentially the physics and math model that defines the movement of an aircraft, rocket, etc., under the forces and moments applied to it using the various control mechanisms and from the forces of nature. JSBSim can be run in a standalone batch mode flight simulator without graphical displays (as is done in this benchmark), or integrated with an immersive graphical environment. For example, JSBSim is the de-facto FDM integrated into Unreal Engine, FlightGear, and ATC Flight Sim (an FAA-approved training simulator). JSBSim has evolved from being the only flight dynamics model of the FlightGear flight simulator to being a library that has multiple applications: flight simulation, development of autopilots, and training neural networks to pilot an airplane.

Input Description

JSBSim comes with a host of aircraft models, as well as scenarios to simulate flight behavior including take-off, landing, cruising, and crashing. These can be found in the 'aircraft' directory and the 'scripts' directory, respectively. These are the scripts used to drive the benchmark.

The program produces telemetry output based on debug level. A user can pass the --property=simulation/jsbsim-debug=1 switch to increase the level higher to display more output.

A user can craft their own aircraft model and flight script, and there are lots of tutorials to assist, including this reference: JSBSim_Script_Tutorial.pdf

An online user guide is available at jsbsim.sourceforge.net/documentation.html. A local PDF reference is here: JSBSimReferenceManual.pdf

Output Description

The program's output shows the initial state of the aircraft, and then the events that are simulated during its flight path. The order of the events matter, so that the output occurs in the same order. For example, the right and left landing gears will touch down in a particular order. If this order is reversed, then the output log cannot be verified against the expected output. The benchmark provides some tolerance for the time at which touchdown occurs, but cannot provide tolerance for the order in which the landing gears hit the ground.

Programming Language

C++

Threading Model

The benchmark is single-threaded. The program is not thread-safe.

Known Portability Issues

Flight simulation relies on accurate math. Compiling with imprecise math flags may produce a result where the flight events occur out-of-order, telemetry is imprecise, and the aircraft is sent off course. This may lead to an output log which does not verify against the expected output. The JSBSim community builds their models at -O2 optimization levels and provides guidance to use precise math. Nevertheless, the SPEC CPU codebase has been tested with higher level of optimizations, and tolerance has been provided to accommodate small floating point deltas across a variety of compilers at the time of publication.

Sources and Licensing

JSBSim source is distributed under the LGPL-2.1 license.

The original sources are available at github.com/JSBSim-Team/jsbsim, starting from commit hash 08a3ae5 and are also included in the SPEC CPU redistributable_sources/ directory.

The aircraft models included in this project and distribution do not include any proprietary, sensitive, or classified data. All data is derived from textbooks (such as Stevens and Lewis' Aircraft Control and Simulation and Sutton's Rocket Propulsion Elements), freely available technical reports (NTRS and AIAA, or other public data such as the FAA web site). Aircraft models included in the JSBSim distribution and with names corresponding to existing commercial or military aircraft are approximations crafted using publicly available information, and are for educational or entertainment uses only. Special permission is provided to allow distribution of the aircraft models bundled with this benchmark. The aircraft models are unchanged from the original sources, and freely available at github.com/JSBSim-Team/jsbsim/tree/master/aircraft.

References

Copyright © 2026 Standard Performance Evaluation Corporation (SPEC®)