[−][src]Crate nyx_space
nyx-space
Nyx is a high fidelity, fast, reliable and validated astrodynamical toolkit library written in Rust. It will eventually provide most functionality in Python for rapid prototyping.
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.
To some extend, the ultimate goal of this library is to retire SPICE Toolkit.
NOTE: It is recommended to compile all code in nyx
with the --release
flag. A lot of heavy
computation is done in this library, and no one likes waiting for production code to run.
Features
- Propagators / Integrators of equations of motions (cf. the
propagators
module) - Two Body dynamics with planets defined as in GMAT / STK.
- Angular momentum dynamics for a rigid body
- Convenient and explicit definition of the dynamics for a simulation (cf. the dynamics documentation)
- Orbital state definition with transformations to other frames
- Multi body dynamics (known bug for heliocentric propagation: https://gitlab.com/chrisrabotin/nyx/issues/61)
- Multi body dynamics estimation (i.e. state transition matrix computation, using hyperdual numbers, cf. conf. paper AAS 19-716)
- Maneuver design (via MissionArc), maneuver simulation with fuel depletion (via Spacecraft) and continuous thrust and control (ThrustControl)
- And many, many more. Refer to README.md for more a up to date list of features
Usage
Put this in your Cargo.toml
:
[dependencies]
nyx-space = "0.0.19"
And add the following to your crate root:
extern crate nyx_space as nyx;
Modules
celestia | Provides the solar system planets, and state and (later) ephemeride management. |
dynamics | Provides several dynamics used for orbital mechanics and attitude dynamics, which can be elegantly combined. |
io | Provides all the input/output needs for this library, including loading of SPICE kernels, and gravity potential files. |
od | Provides all the orbital determination tools. |
propagators | Provides all the propagators / integrators available in |
utils | Include utility functions shared by different modules, and which may be useful to engineers. |