#space #design #mission #orbit #estimation

nyx-space

A high-fidelity space mission toolkit, with orbit propagation, estimation and some systems engineering

15 releases

0.0.17 Nov 8, 2019
0.0.16 Oct 23, 2019
0.0.14 Sep 4, 2019
0.0.13 Aug 29, 2019
0.0.3 Apr 25, 2018

#32 in Science

Download history 8/week @ 2019-07-25 49/week @ 2019-08-01 35/week @ 2019-08-08 19/week @ 2019-08-15 113/week @ 2019-08-22 79/week @ 2019-08-29 52/week @ 2019-09-05 33/week @ 2019-09-12 82/week @ 2019-09-19 19/week @ 2019-09-26 45/week @ 2019-10-03 11/week @ 2019-10-10 64/week @ 2019-10-17 33/week @ 2019-10-24 41/week @ 2019-10-31

203 downloads per month

Apache-2.0

4MB
5.5K SLoC

nyx

Nyx is a high fidelity, fast, reliable and validated astrodynamical toolkit library written in Rust.

The target audience is researchers and astrodynamics engineers. The rationale for using Rust is to allow for very fast computations, guaranteed thread safety, and portability to all platforms supported by Rust.

nyx-space on crates.io nyx-space on docs.rs

License

The LICENSE will be strictly enforced once this toolkit reaches production-level quality.

Features

  • Propagation with different Runge Kutta methods (validated in GMAT)
  • Convenient and explicit definition of the dynamics for a simulation (cf. tests/orbitaldyn.rs)
  • Orbital state manipulation (from GMAT source code and validated in GMAT) (cf. tests/state.rs)
  • Statistical Orbit Determination: Classical and Extended Kalman Filter (cf. tests/stat_od/two_body.rs)
  • Multibody dynamics using XB files (caveat: #61) (cf. tests/orbitaldyn.rs)
  • Orbit Determination with multibody dynamics (cf. tests/stat_od/multi_body.rs)
  • Finite burns with fuel depletion (including low thrust / ion propulsion) (cf. tests/prop/)
  • Sub-Optimal Control of continuous thrust (e.g. Ruggerio, Petropoulos/Q-law) (cf. tests/prop/closedloop_multi_oe_ruggiero.rs)
  • Planetary and Solar eclipse and visibility computation (cf. tests/eclipse.rs)
  • Solar radiation pressure modeling (cf. tests/srp.rs)
  • Propagation to different stopping conditions
  • Spherical harmonics
  • Basic drag models
  • Light-time corrections and abberations
  • Spacecraft attitude control and some useful optimal control algorithms
  • Monte Carlo simulations on different parameters
  • Link budget computations

Note: Some of these features may only be made available only through a commercial license in the future.

Who am I?

A astrodynamics engineer with a heavy background in software. Nyx relies on the fallbacks of smd, a library I wrote in Go while researching at the University of Colorado at Boulder. I work for Advanced Space (we do cool stuff), but this code is mostly developed on my leisure time.

Examples

Refer to the tests for short examples.

Orbital Determination - Estimation plots of a Halo orbit using a classical Kalman filter

Note: the Kalman Filtering capabilities have been validated against JPL Monte using a proprietary scenario.

Data to recreate this simulation is deliberately not shared. This just provides an example of what is possible using this library. Halo position covar Halo velocity covar

Dependencies

~8MB
~147K SLoC