Skip to content

V1.0.0

Choose a tag to compare

@FusRoman FusRoman released this 04 Sep 16:42
· 142 commits to main since this release
2f5514d

πŸŽ‰ 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/, and ref_system/
  • Improved error handling with thiserror (#[from]), removal of unwraps in production paths
  • Bench and release profiles tuned for scientific workloads (lto = "thin", codegen-units = 1); optional debug symbols in benches

What's Changed

Full Changelog: https://github.com/FusRoman/Outfit/commits/v1.0.0