astrodynamics
astrodynamics is a pure-Rust numerical astrodynamics library: orbit propagation,
coordinate frames and time scales, SGP4/TLE, eclipse and pass geometry, and
conjunction analysis, held to a bit-exact parity bar against pinned references.
Capabilities
- Propagation: Cartesian inertial state, two-body and J2 gravity, fixed-step RK4
and adaptive Dormand-Prince 5(4) (
DP54). - Frames and time: ITRS/GCRS transforms with precession, nutation, and GAST; TT/TAI/UT1 time scales backed by IERS/IAU data tables.
- SGP4 and TLE: Vallado-parity SGP4 propagation and TLE parsing and formatting.
- Geometry and events: satellite look angles, pass prediction, and eclipse/shadow geometry.
- Conjunctions: close-approach screening, collision probability, and RTN-frame covariance.
- I/O: CCSDS Conjunction Data Message (KVN and XML) and TLE.
- Foundations: shared vector and linear-algebra kernels, named physical constants, and RF link-budget helpers.
Units and conventions
- Position: kilometers
- Velocity: kilometers per second
- Time: seconds
- State frame: inertial Cartesian state
The frame and datum are carried in the type system.
Example
use ;
use ;
use ;
use CartesianState;
let initial = new;
let mut forces = new;
forces.add;
forces.add;
let dynamics = OrbitalDynamics ;
let integrator = DP54;
let ctx = default;
let opts = IntegratorOptions ;
let result = integrator
.propagate
.expect;
let final_state = result.final_state;
assert!;
Parity bar
The deterministic substrate (frames, time, propagation kernels, SGP4, geometry) is held to bit-exact (0 ULP) parity against pinned references, proven by committed hex-float golden vectors. 0 ULP is certified against a pinned target (OS/arch, libm, toolchain, FMA policy); other platforms run the same algorithms but need their own fixtures.
License
MIT