Skip to content

Astrodynamics

🚀 ANISE 0.9.0: Support CCSDS OEM; STK .e; Covariance interpolation; Instrument Field of View

Version 0.9.0 introduces a dedicated instrument modeling module, significantly expands interoperability with industry-standard file formats (CCSDS OEM, Ansys STK), and adds "hot-swap" capabilities for kernel management.

Covariance interpolation MathSpec available here.

🔭 Instrument & Field of View (Beta)

  • New Module: Introduced anise.instrument containing Instrument and FovShape classes.
  • Analysis: Added FovMargin and FovMarginToLocation to the scalar expression engine for event finding and reporting.
  • Visual Validation: Added tests/fov_plots.py demonstrating FOV pyramid construction and projection in the Moon Principal Axis frame.

    ⚠️ Beta Notice: The FOV margin calculation and Almanac signatures are currently in Beta. Expect potential API changes in future minor releases as the instrument modeling fidelity evolves.

📡 Interoperability & Data Exchange

  • CCSDS OEM Support:
  • Added Ephemeris.from_ccsds_oem_file() to load CCSDS Orbit Ephemeris Messages (OEM).
  • Added Almanac.load_ccsds_oem_file() to directly ingest OEMs into the frame system.
  • Added to_ccsds_oem_file() to export ephemerides.

  • STK Support: Added Ephemeris.from_stk_e_file() and Almanac.load_stk_e_file() to ingest Ansys STK .e ephemeris files.

  • Covariance Interpolation: Ephemeris interpolation via Log-Euclidean Riemannian space for covariance matrices, ensuring positive definiteness and volume preservation during sampling.

🔄 Kernel Management

  • Hot-Swapping: Added spk_swap() and bpc_swap() to the Almanac.
  • Allows in-place replacement of SPK/BPC files using a "high watermark" memory strategy (reusing existing buffers). Use this in embedded/flight software contexts.
  • Unloading: Added spk_unload() and bpc_unload().

📐 GNC & Frame Math

  • TRIAD / Align-and-Clock: Added DCM.from_align_and_clock() to construct rotation matrices based on primary/secondary vector alignment constraints.
  • Quaternion runtime frame checking: Fixed the Quaternion/Euler Parameter math to correctly use the Hamiltonian convention and use a passive rotation like the DCM.
  • Solar Elongation: Updated sun_angle_deg documentation to explicitly define conjunction/opposition geometry and illumination phases.
  • Numpy Integration: Orbit constructors now accept native numpy.array inputs for state vectors.

Nyx Space and Rust Power Firefly's Blue Ghost Lunar Landing

On March 2, 2025, Firefly Aerospace will attempt to land has landed its Blue Ghost 1 spacecraft on Mare Crisium, a vast lunar plain on the Moon. This historic mission, which you can follow via live stream on YouTube or through official updates, is powered in part by Rust—specifically, by the open-source Nyx Space libraries: Nyx, ANISE, and Hifitime.

Blue Ghost Mission 1 - Shadow on the Moon's Surface

These libraries form the backbone of the mission's flight dynamics toolset. Here’s how they’re helping guide Blue Ghost to its lunar destination.

Nyx Space libraries are open source: Nyx under AGPL 3.0 and ANISE/Hifitime under MPL 2.0. By releasing these tools publicly, we aim to empower engineers across industries—from aerospace startups to academic researchers—to rapidly build robust solutions to challenging problems.


ANISE: Precise Trajectory Computations

Since the 1980s, NASA's SPICE toolkit has been essential for interplanetary missions. ANISE builds upon this legacy as a modern, fully-featured rewrite in Rust. It introduces significant enhancements, including azimuth, elevation, and range (AER) computations, safe multi-threading, and Python bindings via PyO3.

For Blue Ghost, ANISE generates data products for all subsystems from the trajectory files provided by the flight dynamics team (FDO). Its accuracy has already been proven: ANISE correctly predicted the spacecraft's first eclipse to within one second of when it actually occurred—a testament to its precision.

You'll find all of the ANISE tutorials here.


Hifitime: Synchronizing Ground and Space

Executing maneuvers with sub-second precision is critical for mission success. The FDO team—led by Chris Rabotin—requires that maneuvers occur within 100 milliseconds of their planned time; any deviation means that the gravitational acceleration from celestial objects like the Earth or Moon are different relative to the expectations during the maneuver planning.

Hifitime ensures this precision by handling time scale conversions between Ephemeris Time (ET), used in trajectory data for its consistency in cislunar space, and UTC, which governs ground systems. ANISE complements this by calculating light-time delays between Blue Ghost and ground stations while accounting for relativistic effects such as aberration. Together, these tools ensure flawless timing synchronization between Earth and space.

Hifitime documentation, including explanation of a time scale, is available here.


Nyx: High-Fidelity Orbit Determination

Above GPS altitudes, spacecraft cannot rely on satellite navigation. Instead, they depend on ground-based tracking data processed through orbit determination algorithms. Nyx excels in this domain.

Nyx is a high-performance library for spaceflight dynamics that incorporates advanced models such as non-spherical gravity fields and solar radiation pressure. It directly ingests CCSDS TDM —the standard format for spacecraft tracking data—and processes it using its Kalman filter for high-fidelity orbit determination. This capability had previously been validated in real-world scenarios like the Lunar Reconnaissance Orbiter example.


If you've read this far, let's chat!