astrodyn_math 0.1.0

Quaternion, Euler, geodetic, orbital-element, and LVLH math kernels for the astrodyn orbital-dynamics pipeline
Documentation
astrodyn_math-0.1.0 has been yanked.

astrodyn_math

JEOD-faithful math kernels — quaternions, Euler angles, orbital elements, geodetic coordinates, the LVLH frame, the solar beta angle, and the small but load-bearing collection of vector / matrix helpers that mirror JEOD's Vector3 / Matrix3x3 inline functions.

Ports models/utils/ from NASA JEOD v5.4.0. Specifically: orbital_elements/, orientation/, planet_fixed/, lvlh_frame/, quaternion/, and the inline helpers under math/.

Layered architecture

astrodyn_bevy        (Bevy ECS adapter, mission code)
   ↓
astrodyn         (orchestration, recipes, single API surface)
   ↓
astrodyn_math        ←  this crate (pure Rust, zero Bevy)
   ↓
astrodyn_quantities  (typed quantities + JeodQuat re-export)

astrodyn_math is part of the astrodyn_* physics layer — pure Rust with no Bevy dependency. After Phase 2 (#104) of the type-system refactor, JeodQuat is a re-export of astrodyn_quantities::JeodQuat.

Public surface

  • OrbitalElements — Cartesian ↔ Keplerian conversion.
  • EulerSequence, compute_*_typed helpers — Euler-angle algebra.
  • cartesian_to_geodetic_typed / geodetic_to_cartesian_typed, GeodeticState, GeodeticStateTyped — ellipsoidal coordinates.
  • compute_lvlh_frame_typed, LvlhFrame — local-vertical / local- horizontal frame.
  • solar_beta_angle_typed — solar beta angle.
  • quaternion — JEOD-convention algebra on the unified JeodQuat.
  • types::mat3_from_rows — row-major constructor for glam::DMat3, matching JEOD source layout.

JEOD conventions

  • Quaternions are scalar-first, left-transformation (JeodQuat == Quat<ScalarFirst, LeftTransform>).
  • Geodetic conversions follow Borkowski's iterative latitude solver.
  • All angles in radians, all lengths in meters.

See also