Version 2.13 Release Notes

Version 2.13.0b0

  • Added scenarioThrusterArm, scenarioRoboticGrappling, and scenarioAerobrake, which demonstrate effector branching across the supported parent and child effector pairings.

  • Added scenarioBranchingVerification, which verifies the branched equations of motion against the integrator’s formal order and the impulse-momentum theorems.

  • Fixed C++ Module: constraintDynamicEffector applying its constraint force and torque while the device status message commanded it off, which previously suppressed only the output message.

  • Added prescribed rotation and translation solar array deployment sequence scenarioRotTransArrayDeployment to examples, with unequal deployment rates and heavier panel elements to show the spacecraft hub’s response.

  • Fixed BSpline.approximate() ignoring final-acceleration components because of incorrect constraint-vector indexing (GitHub issue 1563).

  • GitHub issue 1573: Rust MsgReader ports now expose is_written, time_written (nanoseconds), and module_id for the subscribed source message.

  • Fixed out-of-bounds table reads in the C debyeLength() utility for altitudes from 2,000 km through 30,000 km (GitHub issue 1581).

  • Fixed out-of-bounds table reads for NaN altitude inputs to the C debyeLength() utility; these inputs now produce an error diagnostic and return NaN.

  • Fixed makeDraftModule path handling and generated test imports, preserved the caller’s working directory, and protected existing module files from validation and generation failures by staging replacements.

  • makeDraftModule now generates smoke tests that check module execution and output message publication, including recording and write timestamps. Removed unused placeholder test parameters; add numerical payload assertions when implementing the module algorithm.

  • Documented the actual C and C++ template behavior with runnable Python examples, moved general RST instruction to Module RST Documentation, and added the standard documentation outline to generated module drafts.

  • Renamed dummy to updateCounter and dumVector to sampleConfigVector in C Module: cModuleTemplate and C++ Module: cppModuleTemplate to clarify runtime state versus configuration. Update assignments, logger field names, and C++ calls to setUpdateCounter(), getUpdateCounter(), setSampleConfigVector(), and getSampleConfigVector(); the old names are no longer available. Reset behavior and sample calculations are unchanged.

  • Simplified C Module: cModuleTemplate and C++ Module: cppModuleTemplate updates by removing a redundant temporary vector while retaining the linear-algebra examples, configuration interfaces, and simulation behavior.

  • Documented the existing hub and wheel mass-property accounting for all three C++ Module: reactionWheelStateEffector models, including center-of-mass and parallel-axis contributions and guidance for switching models without double-counting (issue 600).

  • Added the opt-in includeWheelMassProperties setting to C++ Module: reactionWheelStateEffector for automatic mass, center-of-mass, inertia, energy, and momentum accounting of balanced and simple-jitter wheels with axisymmetric inertia. The default preserves existing hub accounting (issue 600).

  • Added initialization checks for finite, positive spin inertia in every wheel model and for valid mass, transverse inertia, and imbalance inputs in fully coupled wheels, independently of the mass-accounting option.

  • Updated BSK-SDK Release Guide with beta and release workflows, the single-command --refresh-example version update, and nightly source verification.

  • Incremental native builds now refresh Basilisk.getBuildInfo() when docs/source/bskVersion.txt changes, including in existing build trees with an old Conan-cached version.

  • Split release notes into version-series pages and a single archive for versions before 2.0.0, preserving historical release bookmarks and the manual release workflow.

  • Group the example-script sidebar by its existing topic headings, with collapsible categories and automatic expansion for the current scenario.