Skip to content

Basilisk v2.10.0

Choose a tag to compare

@schaubh schaubh released this 03 Apr 00:54
  • Stochastic Integration: Added support for stochastic dynamics (dynamics driven by Stochastic Differential Equations).
  • Stochastic Integration: Added stochastic dynamics support in core dynamics infrastructure (DynamicObject, StateData,
    and DynParamManager), including diffusion propagation APIs and support for shared noise sources.
  • Stochastic Integration: Added diffusion dynamics task support to MJScene via AddModelToDiffusionDynamicsTask() for
    MuJoCo systems with stochastic state dynamics.
  • Stochastic Integration: Added stochastic integrator base classes StateVecStochasticIntegrator.
  • Stochastic Integration: Added svIntegratorWeakStochasticRungeKutta to support stochastic integrator implementations.
  • Stochastic Integration: Added svStochasticIntegratorMayurama (Euler-Mayurama), a 1-weak/1-strong stochastic integrator.
  • Stochastic Integration: Added two stochastic integrators: svStochasticIntegratorW2Ito1 and svStochasticIntegratorW2Ito2.
    These are 2-weak-order stochastic integrators.
  • Stochastic Integration: Added MuJoCo models (meanRevertingNoise, stochasticAtmDensity, and
    stochasticDragCoeff) to model mean-reverting stochastic processes in dynamics-task modules.
  • Stochastic Integration: Added meanRevertingNoiseStateEffector, a generic spacecraft state effector that propagates a scalar
    Ornstein-Uhlenbeck mean-reverting stochastic state.
  • Stochastic Integration: Added scenarioStochasticDrag and scenarioStochasticDragSpacecraft, which illustrate how to
    use a state driven by stochastic dynamics to model randomly evolving atmospheric density (and thus drag force).
    The former scenario uses MuJoCo dynamics and the latter spacecraft dynamics.
  • Stochastic Integration: Added optional density correction support to dragDynamicEffector through
    densityCorrectionStateName, allowing drag density to be computed as
    (1 + correction) * neutralDensity using a user-selected scalar state.
  • Updated tleHandling to map TLE mean elements in TEME to Basilisk osculating elements in J2000/ICRS and to generate TLEs using an SGP4-consistent mean-element iteration.
  • Fixed how the gravity spherical harmonic coefficient are loaded in loadGravFromFile(). They were hard coded to 2nd order.
  • Added a new scenario, scenario_FaultList, that demonstrates the use of the fault modeling capabilities by selecting faults from BSK_Faults.
  • Added a Dockerfile to build Basilisk container images.
  • Prebuilt multi-architecture (linux/amd64, linux/arm64) container images are now published to GHCR on each release tag.
  • Updated vizInterface to bind to all network interfaces (0.0.0.0) by default, enabling Vizard connectivity when Basilisk is running inside a container.
  • Added hillFrameRelativeControl, a Hill-frame PD controller that computes an inertial force command to track deputy relative position and velocity with respect to a chief spacecraft.
  • Added thrOnTimeToForce module to convert thruster on-times to thruster forces for use in MuJoCo scenes.
  • Fixed reactionWheelStateEffector mixed-model wheel logging so theta outputs are indexed correctly when balanced and jitter wheel models are used together.
  • Added a new facetedSpacecraftModel module to convert spacecraft facet geometry from the local facet frames to the spacecraft hub body frame. The module supports both fixed facets and single-axis articulating facets.
  • Added a new facetedSpacecraftProjectedArea module to compute the per-facet and total projected area of a faceted spacecraft model using a provided heading direction vector. The module supports three heading configuration options: direct general heading, Sun direction heading, and spacecraft inertial velocity heading.
  • Fixed thrJointCompensation hinged joint control sign convention so that the computed compensation torque is applied in the correct direction.
  • Added scenarioThrArmControl, a MuJoCo example scenario for spacecraft control using thruster arms.
  • Added Python 3.14 support across packaging and CI.
  • Updated platform install guides to document Basilisk support for Python 3.14.
  • Updated tleHandling TLE parsing to fail explicitly on unsupported catalog-ID encodings.
  • Added tests in test_readTLE.py to validate rejection of unsupported catalog-ID encoding.
  • Added sccache compiler caching to CI builds to speed up incremental C++ compilation.
  • Removed deprecated vizInterface.MultiSphereVector support; use vizInterface.MultiShapeVector.
  • Removed deprecated vizInterface.MultiSphere and vizInterface.MultiSphereInfo aliases; use vizInterface.MultiShape and vizInterface.MultiShapeInfo.
  • dragDynamicEffector, facetDragDynamicEffector, and cannonballDrag now accept an optional windVelInMsg to compute atmosphere-relative drag velocity; supersedes the former useAtmosphereRelativeVelocity/planetOmega_N flags.
  • Updated scenarios to illustrate optional use of wind velocity input.
  • Added windBase abstract base class and zeroWindModel concrete implementation.
  • Removed Python 3.8 support from the build and CI configuration, and marked Python 3.9 support as deprecated for removal after March 2027.
  • Added stripLocation to support the strip imaging mode.
  • Updated locationPointing to include the new strip imaging mode.
  • Added new tests in test_locationPointing.py to verify the new strip imaging mode.
  • Created new message StripStateMsgPayload to interface locationPointing with stripLocation.
  • Added the scenario scenarioStripImaging showing how to perform strip imaging tasks.
  • Updated Python packaging metadata to use the PEP 639 license fields.
  • Added optional sunEclipseInMsg input to facetSRPDynamicEffector so that eclipse shadow conditions scale the SRP force and torque by the illumination factor.
  • Added documentation for the bsk-sdk plugin system, covering how to install, write, and distribute out-of-tree Basilisk plugins as standard Python wheels.
  • Added BSK_SUPPORT_DATA_CACHE environment variable to dataFetcher.py to allow overriding the default Pooch cache directory for support data files.
  • Added missing docstring to gravBodyFactory.createSpiceInterface() that prevented it from being built.
  • Added a detailed note for spicePlanetFrames describing default IAU_* behavior and supported alternatives.
  • Added an examples optional dependency set for installing example-only Python packages.
  • Added a matching python conanfile.py --examples True build option for source checkouts.
  • Improved gravityEffector gravity-coefficient loading to enforce consistent truncation.
  • Updated spherical-harmonic coefficient parsing to handle missing entries and reject malformed rows.
  • Added linkBudget, a communication module that computes link Carrier-to-Noise Ratio (CNR) between two antennas.
  • Fixed PythonVariableLogger to resume logging correctly after Reset() and handle edge cases.
  • Added spacecraftChargingEquilibrium module to solve coupled servicer/target equilibrium potentials.
  • Updated developer workflow for release notes to use snippet files.
  • Removed the default --clean flag from setup.py to allow incremental pip wheel builds.
  • TLE parsing fixed to be robust to file ending issues between LF and CRLF.
  • Updated conanfile.py to pass compiler.cstd=gnu17 during Conan builds.
  • Updated the World Magnetic Model (WMM) coefficients file to the 2025 version.
  • Local data fetches fall back to using the pooch fetch if local files are not found.
  • No longer prefetch ephemeris data kernels on initial local builds.
  • Warnings for not connected messages in simpleAntenna for ground-based antennas are no longer raised.
  • Updated documentation on how to use bskExamples to download tutorial examples.
  • Added thrJointCompensation module for joint torque compensation during thruster firing.
  • Added bskPrinciples-6a documentation entry on importing Basilisk data.
  • Added inertialCartFeedback module for inertial-frame relative motion control.
  • Added DragGeometryMsgPayload for drag computation geometry.
  • Added cannonballDrag model for MuJoCo aerodynamic drag.
  • Added linearTimeInvariantSystem module for state-space modeling in dynamics tasks.
  • Added singleActuatorLTI and forceAtSiteLTI subclasses.
  • Fixed grammatical typos in documentation and improved figure consistency.
  • Avoided memory leak when saving figures in CI unit tests.
  • Deprecated the pytest optional flag show_plots.
  • Added orbElemOffset for orbital element offsets.
  • Added cmdForceInertialToForceAtSite module for force frame transformation.
  • Added orbitalElementControl module for orbital feedback control.
  • Added scenarioFormationFlyingWithDrag example scenario.