[][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

Usage

Put this in your Cargo.toml:

[dependencies]
nyx-space = "0.0.4"

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 nyx.

utils

Include utility functions shared by different modules, and which may be useful to engineers.