Releases: JSBSim-Team/jsbsim
Releases · JSBSim-Team/jsbsim
v1.2.1
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
orpip 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
- The model of the Short S23 Empire has been updated.
- Fixed the initial conditions of the script ball_orbit.xml so that its orbit gets circular (i.e. its eccentricity is zero). See discussion #985 for more details.
- The model of the Zeppelin NT airship a.k.a ZLT-NT has been updated.
- The model of the Submarine Scout airship has been updated.
- The license of the following files have been changed from GPLv2+ to LGPLv2.1+
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
andFGPropertyNode.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
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
orpip 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
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
orpip 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 toC:\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 fromstring_utilities.h
(PR #837) - Fixed
#include
ofexpat.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 fromFGSurface
(PR #884) and removed dead code fromFGSurface
(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 ofcinst
which is no longer recognized on recent Windows runners.
- C++ Source files were duplicated in the folder
v1.1.13
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
orpip 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 renamedJSBSim.py
and now has the same features than the binary executableJSBSim.exe
. - Fixed the data folders that are installed along with the Python module: some aircraft sub-directories
System
andEngines
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
andePressure
are now derived from the Python moduleenum
.- 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 astatic
member that could lead to a segmentation fault when using several instances ofFGFDMExec
(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
byPROJECT_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
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
orpip 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 fromFGFDMExec
. - 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
andex737cruise_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
tobuild
(work in progress) - The Python source package now includes the Cython source code
jsbsim.pyx
instead of the Cython outputjsbsim.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
tosetuptools
(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
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
orpip 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 installerJSBSim-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
andGetOutputPath
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++ counterpartFGFDMExec::SetRootDir
. - All JSBSim exceptions now inherit from
JSBSim::BaseException
. There still existstd::string
exceptions thrown by JSBSim. Cleanup is still in progress. - JSBSim no longer calls
exit()
orabort()
. 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 tosetuptools
has been started. There are still a number ofdistutils
features which have no equivalent tosetuptools
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
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
orpip 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
andex737cruise.slx
) in the Windows installerJSBSim-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
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
orpip 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 parameternegated_crossproduct_inertia
which defaults totrue
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 theTableException
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 renamedINSTALL_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 attributenegated_crossproduct_inertia
.prepare_test_release.sh
which modifies JSBSim to dry run a test release0.99.xx
to be published to TestPyPI
v1.1.8
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
orpip 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
andFGTable
- Add an
assert
that forbids to set the value ofFGPropertyValue
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
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
orpip 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
andload_script
now raise aFileNotFoundError
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 toFGFDMExec::ResetToInitialConditions
(PR #466). When specified, this flag avoid callingFGFDMExec::RunIC
whenFGFDMExec::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 folderutils/aeromatic++/samples/
(PR #453)- These sample files are distributed with the Windows installer
JSBSim-1.1.7-setup.exe
- These sample files are distributed with the Windows installer
- 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.