Repository navigation
V1.0.0
π Outfit 1.0.0 β First stable release
Outfit is a modern Rust library for orbit determination and propagation of small Solar System bodies.
This 1.0.0 release marks the transition from prototype to a robust, validated toolkit suitable for research and survey-scale processing.
π Highlights
-
Initial Orbit Determination (IOD)
- Classical Gauss method on observation triplets
- Triplet selection & noise realizations framework
- RMS evaluation of normalized astrometric residuals
-
Observations & Data Formats
- Readers for MPC 80-column, ADES XML (structured & flat), and Parquet (batch)
- Automatic per-observer error parsing (MPC), optimized batched loading
-
Observers & Ephemerides
- Observatory registry; build observers from MPC code or custom geodetic coordinates
- JPL DE440 support via Horizons-format and NAIF/SPICE kernels (interpolation + body extraction)
-
Orbital Elements & Dynamics
- Classical Keplerian and Equinoctial elements
- Universal Kepler solver; two-body propagation; Jacobians for equinoctial conversions
-
Reference Frames & Corrections
- Precession, nutation (IAU 1980), aberration, and light-time correction
- Ecliptic β equatorial conversions
-
Quality, Testing & Tooling
- Extensive tests: unit, integration, and property-based (proptest)
- Criterion benchmarks (e.g. Gauss
prelim_orbit) - Optional progress indicators (
indicatif) & loop timing utilities (IterTimer) - Unified documentation with consistent Rustdoc style and runnable examples
π¦ Cargo features
jpl-downloadβ automatically downloads and caches JPL ephemerides (Horizons/NAIF)progressβ enables lightweight progress bars and loop timing for long runs
π§ͺ Engineering notes
- Large refactors and modularization across
initial_orbit_determination/,observations/,observers/,jpl_ephem/, andref_system/ - Improved error handling with
thiserror(#[from]), removal ofunwraps in production paths - Bench and release profiles tuned for scientific workloads (
lto = "thin",codegen-units = 1); optional debug symbols in benches
What's Changed
- Add observatory struct by @FusRoman in #8
- Can now build observer using mpc code observatory by @FusRoman in #10
- [Outfit] File format input for orbit solver by @FusRoman in #11
- Deps optimization by @FusRoman in #14
- Triplets selection by @FusRoman in #15
- RMS computation for orbit by @FusRoman in #19
- Issue/1/gauss full traj by @FusRoman in #23
- Issue/2/add ci by @FusRoman in #30
- Issue/3/refactor llm code gen by @FusRoman in #31
- Refactor orb_elem module by @FusRoman in #34
- Gauss IOD optimization by @FusRoman in #36
- [Outfit] Release 1.0.0 by @FusRoman in #9
Full Changelog: https://github.com/FusRoman/Outfit/commits/v1.0.0