Skip to content

Releases: JSBSim-Team/jsbsim

v1.2.1

08 Aug 19:18
Compare
Choose a tag to compare

JSBSim version 1.2.1

Release files

  • Windows 64 bits
    • JSBSim-1.2.1-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.35026.282))
  • Ubuntu Focal 20.04 and Jammy 22.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Fixed a bug in the computation of orbital parameters where the perigee argument was valid only if the inclination and eccentricity were non-zero (PR #981)
  • Restored the ability to use the linearization feature from the console and from XML scripts (PR #991). As a result of this change, the script 737_cruise_steady_turn_simplex.xml no longer fails.
  • Fixed an error in the computation of rotation rates in the body frame (aka vPQRdot) (regression test added by PR #1034 and fixed by PR #1036)
  • The documentation has been updated regarding the values that the mixture of a piston engine can be set to (PR #1048 and issue #1037).
  • Fixed a bug where a telnet connection could not be reopened (PR #1078)
  • Added the ability to change the location of thrusters via properties (PR #1073)
  • The error management in socket code has been improved to intercept and report more errors. This should help the user finding errors more easily when using this feature (PR #1081)
  • Added the ability to modify the property ic/vw-mag-fps i.e. the initial value of the wind velocity magnitude (PR #1093)
  • Reduced the console output when debug level is zero (PR #1092)
  • The thrust augmentation command is now clamped to the range [0.0 - 1.0] (PR #1090)
  • Added properties AGL-ft to display the height above the ground of each contact (PR #1104)
  • Clarified the document of <function> to state that it can contain a single <table> element (PR #1131)

Distributed flight dynamics models

Python module

  • Improved the caching of property nodes for faster lookups (PR #993)
  • The reference counting of property nodes is now shared between the C++ code and the python module. This avoids crashes due to the inadvertent deletion of pointers by the C++ code of pointers that are also used by the Python module. (PR #1000)
  • Fixed the documentation of the methods FGPropertyNode.get_double_value and FGPropertyNode.set_double_value (PR #1048 and issue #922).
  • Made the Python module compatible with NumPy 2.0 (PR #1107)

Aeromatic++

  • Fixed a typo in a message printed in the console by aeromatic++ (PR #1002)
  • Fixed the headers so that aeromatic++ can also be compiled with VS2015 (PR #1020)

Developer

  • The CMake target libJSBSim now includes the list of the headers it uses for cross reference in other CMake files (PR #1022).
  • Some maintenance / minor changes have been done (see PR #1031 and PR #1050 for details).
  • Replaced hardcoded buffer lengths by a computation of the length using sizeof(). This avoids potential mismatches in future updates of the files (PR #1035).
  • JSBSim is now compiled and tested on MacOS M1 runners (PR #1030)
  • libexpat has been updgraded to 2.6.2 (PR #1080)
  • The XML element of late bound properties is now released after successful binding for memory saving (PR #1096)

v1.2.0

05 Nov 14:39
Compare
Choose a tag to compare

JSBSim version 1.2.0

Release files

  • Windows 64 bits
    • JSBSim-1.2.0-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.34114.132))
  • Ubuntu Focal 20.04 and Jammy 22.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

v1.1.14

04 Nov 18:02
Compare
Choose a tag to compare

JSBSim version 1.1.14

Release files

  • Windows 64 bits
    • JSBSim-1.1.14-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.34114.132))
  • Ubuntu Focal 20.04 and Jammy 22.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • A planet XML definition file can now be loaded using FGFDMExec::LoadPlanet() or the argument --planet=<filename> of the JSBSim executable (PR #913)
  • The MSIS model of the Earth atmosphere can now be selected instead of the International Standard Atmosphere model (PR #941 and PR #916)
  • Added the ability to specify external forces in the inertial frame (PR #962)
  • Fixed a bug where the speed of sound could be used uninitialized in FGPropeller.
  • Fixed a bug where number parsing silently failed due to the decimal separator being set to the comma , by the locale while the XML files are using the period . (PR #799).
  • Fixed a bug where the ambient pressure could reach 0.0 and make JSBSim crash (PR #836 and #839)
  • Fixed a bug where the version of an initial conditions XML file could be reported as being infinite. As JSBSim behavior is to default the version to 1.0 when it is unspecified, the version is now set accordingly (PR #845)
  • Fixed a bug where the initial value of the wind velocity in the down direction was not converted from knots to ft/sec (PR #855)
  • Fixed a bug where the equivalent airspeed velocity (VEAS) was using the local air density instead of the standard sea level density (PR #900 and PR #909).
  • Clarified the warning message issued for already defined properties (PR #864)
  • The support of Ubuntu Bionic 18.04 has been dropped: JSBSim packages for this version of Ubuntu are no longer released.
  • The Windows installer now installs JSBSim in the folder %LOCALAPPDATA% by default. In most cases %LOCALAPPDATA% resolves to C:\Users\<user name>\AppData\Local (see #798 (comment) for details).

Distributed flight dynamics models

  • New aircraft 787-8 and global5000 have been added to the models distributed with the Python module.
  • The roll autopilot of c172x has been fixed

Python module

This is the last release of JSBSim that supports Python 3.7.
Python 3.7 has reached its end of life and is no longer supported by the Python Foundation (see PEP537). Please upgrade to Python 3.8 or higher.

  • Python wheels for Python 3.12 are now available.

Aeromatic++

  • Better handling of input errors or inconsistencies to avoid erroneous outputs such as negative point masses (PR #860 and PR #954)

Developer

  • The year in copyright notices in files *.in that are distributed by the Python module are now automatically updated.
  • The Python docs can now be generated even if the JSBSim module has been installed by pip rather than having been built locally.
  • Fixed a debug message in FGActuator that reporting a pointer address rather than the name of the <lag> element.
  • Removed the BASE flag from string_utilities.h (PR #837)
  • Fixed #include of expat.h (PR #838) to avoid build failure for some compilers.
  • Unit tests have been added for the following class: FGAtmosphere (PR #857)
  • Improved the build process of the Python module by avoiding mutual dependencies of the CMake process and the setup.py script (PR #866)
  • Moved the Mach/VCAS conversion methods to FGAuxiliary (PR #898).
  • Simplified the class FGLGear by removing its inheritance from FGSurface (PR #884) and removed dead code from FGSurface (PR #907) in the process.
  • Python wheels are now uploaded to PyPI using a Trusted Publisher (i.e. our GitHub project) rather than the less reliable pair of password/username.
  • FGAtmosphere properties can now be unbound to allow switching the atmospheric model (PR #902 and PR #908)
  • Some maintenance and minor changes (PR #952)
  • Fixed some bugs in the CMake files
    • C++ Source files were duplicated in the folder python/
    • Use choco install in replacement of cinst which is no longer recognized on recent Windows runners.

v1.1.13

03 Dec 12:54
Compare
Choose a tag to compare

JSBSim version 1.1.13

Release files

  • Windows 64 bits
    • JSBSim-1.1.13-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.33027.164))
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • The license of libexpat is now included in the Windows installer and in the Python wheels.
  • Input sockets that were broken on Windows have been fixed.

Python module

  • The Python script JSBSim has been renamed JSBSim.py and now has the same features than the binary executable JSBSim.exe.
  • Fixed the data folders that are installed along with the Python module: some aircraft sub-directories System and Engines were missing in the previous release (issue #687)
  • Python wheels for MacOSX are now provided as universal binaries for Python >=3.8 which allows using these binary wheels with Apple Silicon chips.
  • Python wheels for Python 3.11 are now available.
  • JSBSim Python module is now installed under a single folder including the licenses and the aircraft data. In the previous release, the files were scattered among several folders. This allows a cleaner installation and removal (PR #755).
  • Type hints are now provided along with JSBSim Python module (as per PEP 561 and PR #756).
  • Usage of uninitialized instances of JSBSim classes now throws an exception to avoid a crash of the Python interpreter.
  • eTemperature and ePressure are now derived from the Python module enum.
  • Some internal methods are no longer accessible. Their names were prepended by the double underscore __ which according to Python programming guidelines are meant to be private methods. So you were warned !

MATLAB S-Function

  • By default, the S-Function is now compiled using the flag JSBSIM_STATIC_LINK since JSBSim is supplied as a static library in the Windows installer (PR #735).

Developer

  • Removed the Messages feature as it was unused and was using a static member that could lead to a segmentation fault when using several instances of FGFDMExec (issue #666)
  • Restored the automatic rebuild of the Python module that should occur when the headers included in jsbsim.pyx are modified.
  • Replaced CMAKE_SOURCE_DIR by PROJECT_SOURCE_DIR to allow JSBSim being built using CMAKE FetchContent (issue #684)
  • The dependency to the win32api module has been removed to build JSBSim Python module on Windows.
  • Random number generation is now made using C++11 standard library. This allowed removing another static member (issue #666)
  • Fixed a bug that prevented building JSBSim as a DLL using the MinGW compiler (issue #719)
  • Unit tests have been added for the following classes: FGRealValue, FGParameter, FGParameterValue, FGCondition.

v1.1.12

26 Jun 10:24
Compare
Choose a tag to compare

JSBSim version 1.1.12

Release files

  • Windows 64 bits
    • JSBSim-1.1.12-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.32602.291))
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Improvements to the <table> element:
    • Better error handling and improved messages when an error is found.
    • <table> now accepts 1x1, 1xN and Nx1 shapes (issue #185).
  • The XML schemas for scripts and systems have been updated to match the most recent JSBSim features.
  • Accelerations with respect to the ECI frame (and expressed in the body frame) are now exported by the properties:
    • accelerations/uidot-ft_sec2
    • accelerations/vidot-ft_sec2
    • accelerations/widot-ft_sec2
  • Rotational accelerations with respect to the ECI frame (and expressed in the body frame) are now exported by the properties:
    • accelerations/pidot-rad_sec2
    • accelerations/qidot-rad_sec2
    • accelerations/ridot-rad_sec2
  • Clarified the legal notice as well as the license used by JSBSim and its dependencies.
  • Temporary fix for issue #654: the balloon content can no longer reach 0.0 moles.
  • The example script scripts/weather-balloon.xml now display the burst event.

Python module

  • The minimum Python version is now 3.7
  • The dependency of the Python module to setuptools has been removed.
  • Fixed issue #611 - extra arguments can now be added to the constructor __init__ of a class inheriting from FGFDMExec.
  • Fixed issue #641 - the method FGFDMExec.get_property_catalog() no longer has arguments to match the signature of its C++ counterpart.

MATLAB S-function

  • The documentation matlab/README.md for the MATLAB S-Function has been improved.
    • Added MacOS build instructions
    • Documented the version of MSVC used to compile the JSBSim library
  • Added MacOS compile line for MATLAB S-Function in the script JSBSimSimulinkCompile.m
  • Allow two engines
  • Overrode script control through SFunction input
  • Control input on scripts only when allowed
  • Added XML script to config the I/O ports of s-function
  • Added error handling and dynamic update of I/O ports
  • Created optional second input for wind/turbulence
  • Added read/write checks for nodes
  • Weather input now loaded to JSBSim
  • Updated simulink model ex737cruise.slx and ex737cruise_io.xml.

Aeromatic++

  • Overhaul of the propeller code, the produced tables now matches published data quite close.
  • Created a configuration file in metric units when the parameters are entered in metric units.
  • Added the option to save the aerodynamics section and the external-force section into separate files.

Developer

  • The Python module shall now be compiled with setuptools>=60.0.0
  • Migrating the front-end of the Python module build process from setuptools to build (work in progress)
  • The Python source package now includes the Cython source code jsbsim.pyx instead of the Cython output jsbsim.cxx. This allows having consistent input data if the local version of Cython is different than the one used by JSBSim while building the source package.
  • Added an .editorconfig file to set coding conventions for editors.
  • Progress has been made on the migration from distutils to setuptools (still work in progress).
  • The JSBSim library can now be built as a DLL on Windows.
  • JSBSim now builds and uses libexpat 2.4.8 (unless explicitely requested to use the system libexpat library).

v1.1.11

13 Feb 13:05
Compare
Choose a tag to compare

JSBSim version 1.1.11

Release files

  • Windows 64 bits
    • JSBSim-1.1.11-setup.exe (Windows installer)
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

This is the last release of JSBSim that supports Python 3.6.
Python 3.6 has reached its end of life and is no longer supported by the Python Foundation (see PEP494). Please upgrade to Python 3.7 or higher.

  • Output files are now written in the current directory instead of being written in the aircraft folder (issue #337)
  • The uninstall of Python wheels now completely removes the directory structure that was created during the installation of the aircraft data.
  • A new exception TrimFailureException is now thrown when trim fails. This eases the detection of the trim failure (previously the exception message needed to be checked).
  • An exception is thrown when a latitude higher than 90 degrees is supplied to a <waypoint> control element (PR #536)
  • Fix the sign of the initial NED climb rate (property ic/gamma-deg) (PR #545)
  • JSBSim now checks malformed data in <table> elements. Anything different than numbers and spaces/tabs will be rejected.
  • Usage of <location> and <orientation> in engines is now officially dropped (PR #559, #561 and #563). These elements were deprecated long ago in favor of the corresponding elements <location> and <orientation> in thrusters. Therefore the code removed is no-op.
  • The computation of the initial rotation rates has been fixed (Issue #553). Previously, the rotation rates could be initialized with extremely high values when the vehicle was spawned over the Poles. And for a given set of initial conditions, the initial rotation rates could have different values depending on the initial latitude at which the vehicle was initialized. This now fixed.
  • [Windows] The script JSBSimSimulinkCompile.m that builds the MATLAB S-function is now set to be executed immediately after the installer JSBSim-setup.exe has been run and no longer need manual updates before being run.
  • The precision with which values are transmitted thru a socket can now be set via the attribute precision such as <output precision="8"> (PR #579)

Developer

  • Added 2 new methods to FGFDMExec: SetOutputPath and GetOutputPath to specify the path to which the output files will be written.
  • Python method FGFDMExec.set_root_dir() no longer alters the aircraft, engine and system paths. This is now the same behavior than its C++ counterpart FGFDMExec::SetRootDir.
  • All JSBSim exceptions now inherit from JSBSim::BaseException. There still exist std::string exceptions thrown by JSBSim. Cleanup is still in progress.
  • JSBSim no longer calls exit() or abort(). Exceptions are thrown instead. This gives the calling application an opportunity to gracefully recover.
  • The MATLAB S-Function is now tested on Windows and MacOSX in addition to Linux.
  • As distutils will be deprecated for Python 3.11, the migration to setuptools has been started. There are still a number of distutils features which have no equivalent to setuptools so this is work in progress.
  • Improved the ability of setup.py to be executed on multiple platforms (removed some hardcoded statements)
  • SGPropertyNode:getName() is no longer used as it has been dropped from the official SimGear library. This allows remaining compatible with FlightGear.
  • When <input> and <output> elements are read from a file, JSBSim now checks that the file can be read before reading it, otherwise an exception is thrown. This avoids SEGFAULTs.

v1.1.10

12 Nov 18:22
Compare
Choose a tag to compare

JSBSim version 1.1.10

Release files

Binary files

  • Windows 64 bits
    • JSBSim-1.1.10-setup.exe (Windows installer)
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)

Python module

Release 1.1.10 supports Python 3.6 and higher

  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Added the Matlab example files (TestJSBSim.m and ex737cruise.slx) in the Windows installer JSBSim-1.1.10-setup.exe to allow the user testing the S-Function once it is built.
  • Provide Python package for Python 3.10
  • Fixed an error where JSBSim could not autodetect the location of the bundled aircraft data (issue #337)

Developer

  • The XML validation schema for scripts has been updated. All scripts are now validated against this schema when a GitHub Action is triggered.

v1.1.9

07 Nov 19:01
Compare
Choose a tag to compare

JSBSim version 1.1.9

Release files

Binary files

  • Windows 64 bits
    • JSBSim-1.1.9-setup.exe (Windows installer)
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)

Python module

Release 1.1.9 supports Python 3.6 and higher

  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Fixed an error which prevented the equatorial and polar radii from <planet> to be propagated to the initial conditions.
  • The header files needed to build the Matlab S-Function are now included in the Windows installer (issue #491).
  • The planet radii in <planet> can now be specified by the tags <equatorial_radius> and <polar_radius> which are more self explanatory than <semimajor_axis> and <semiminor_axis> (which are still valid).
  • The support of Ubuntu Xenial 16.04 has been dropped: JSBSim packages for this version of Ubuntu are no longer released.
  • Improved the error messages returned by FGTable: the file name and line number where the error occurred are now printed.
  • Check the number of <input> tags for flight controls such as <pure_gain> (issue #497). This avoids a crash when some or all <input> elements are missing.
  • JSBSim now accepts 2 sign conventions for the cross product inertia (xy, xz, yz) in <mass_balance> (see PR #502). The sign convention is specified by the parameter negated_crossproduct_inertia which defaults to true for backward compatibility.
  • The attribute negated_crossproduct_inertia is now specified in the JSBSim models that are using non zero cross product inertia.
  • Turbine engines can now windmill even before they start (issue #494 and PR #509).
  • Fixed a sign error in the computation of aero/h_b-mac-ft (PR #508 )
  • Example scripts and aircraft data (as well as their engines and systems) are now included in the Python wheels (issue #337). They can be accessed from the Python module using the new function jsbsim.get_default_root_dir().

Developer

  • Added a regression test for the <planet> feature.
  • Expanded the unit test of FGTable. It now checks:
    • Initialization from XML
    • Table names using the prefix #
    • 3D tables
    • Error handling.
  • Fixed a bug where FGTable instances were not untied from the property manager during their destruction. This could lead to segmentation faults when the property manager was later destroyed.
  • Exceptions raised by FGTable are now instances of the TableException class.
  • A minimum Python version is now specified for the binary wheels (currently 3.6 or higher).
  • The Python script setup.py is no longer changing the current directory.
  • The flag INSTALL_PYTHON_MODULE has been renamed INSTALL_JSBSIM_PYTHON_MODULE. The former being too generic, this avois potential name clashes with other modules.
  • Two new scripts have been added in the admin folder:
    • XML_mass_update.py which allows automatically updating selected XML files in the aircraft data. It has avoided manual updates for the aircraft models which have been updated with the new XML attribute negated_crossproduct_inertia.
    • prepare_test_release.sh which modifies JSBSim to dry run a test release 0.99.xx to be published to TestPyPI

v1.1.8

24 Jul 16:32
Compare
Choose a tag to compare

JSBSim version 1.1.8

Release files

  • Windows 64 bits
    • JSBSim-1.1.8-setup.exe (Windows installer)
  • Ubuntu Xenial 16.04, Bionic 18.04 or Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Add an interface to Matlab (PR #445)
  • Fix a bug in <linear_actuator> that resulted in erroneous output values when oscillating around the zero value (issue #485)
  • Update the Windows installer to distribute the files needed to build the interface with Matlab

Developer

  • Improve test coverage for FGQuaternion
  • Restore automatic deployment of the wheels for Python 3.9
  • Deployment now need the build for MinGW32 to succeed
  • Add a unit test for FGPropertyValue and FGTable
  • Add an assert that forbids to set the value of FGPropertyValue when the property was specified with a minus sign
  • Add a regression test for issue #485
  • Expand the message of the exception that is raised when not providing a value or a property to FGParameterValue.

v1.1.7

14 Jul 12:15
Compare
Choose a tag to compare

JSBSim version 1.1.7

Release files

  • Windows 64 bits
    • JSBSim-1.1.7-setup.exe (Windows installer)
  • Ubuntu Xenial 16.04, Bionic 18.04 or Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Mass flows can now be specified using SI unit (kg/s)
  • Fixes issues where propellers were reported:
    • to generate high torques while being motionless or,
    • to unexpectedly spin in mild wind conditions.
  • [Python] The methods load_ic and load_script now raise a FileNotFoundError exception when called on non existing files. This avoids the Python interpreter being killed when specifying a wrong path (or filename) to these methods.
  • Adds a new property propulsion/fuel_freeze to freeze fuel consumption (PR #462). This can be used for simulations that require the aircraft mass to remain constant.
  • Adds a new flag DONT_EXECUTE_RUN_IC that can be specified to FGFDMExec::ResetToInitialConditions (PR #466). When specified, this flag avoid calling FGFDMExec::RunIC when FGFDMExec::ResetToInitialConditions is executed.
  • Fixes an error in the F-15 model where the kinematic element was not connected to the elevator position (PR #471)

Aeromatic++

  • Fixes lift curves for delta wings (issue #436 / PR #450)
  • Samples input files are now provided for aeromatic++ in the folder utils/aeromatic++/samples/ (PR #453)
    • These sample files are distributed with the Windows installer JSBSim-1.1.7-setup.exe
  • Fixes a bug which avoided engine data to be generated (issue #436 / PR #458)

Developer

  • [Python] Both signatures of FGFDMExec.load_ic are now tested.
  • Improves the release message
  • Uses GitHub default TOC (table of contents) for Markdown documentation rather than providing our own (ugly) one.
  • Avoids building JSBSim with Python 3.10 since this new version of the language will not be released until October 2021.