Skip to main content

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

Project description

nyx

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

The target audience is mission designers, astrodynamics engineers/hobbyists, and GNC 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 LoC.

License

The AGPLv3 LICENSE is enforced.

Features

Propagation

  • Propagation with different Runge Kutta methods (validated in GMAT)
  • Convenient and explicit definition of the dynamics for a simulation (cf. tests/orbitaldyn.rs)
  • Propagation to different stopping conditions
  • Detect orbital events in other frames

Dynamical models

  • Multibody dynamics using XB files
  • Finite burns with fuel depletion (including low thrust / ion propulsion)
  • Sub-Optimal Control of continuous thrust (e.g. Ruggerio, Petropoulos/Q-law)
  • Solar radiation pressure modeling
  • Basic drag models (cannonball)
  • Spherical harmonics
  • Spacecraft attitude control and some useful optimal control algorithms

Orbit determination

  • Statistical Orbit Determination: Classical and Extended Kalman Filter
  • Orbit Determination with multibody dynamics
  • Smoothing and iterations of CKFs
  • Square Root Information Filer (SRIF) (removed in version 1.0.0-alpha.1)
  • An easy-to-use OD user interface
  • Estimation with spherical harmonics enabled
  • Solar radiation pressure (SRP) parameter estimation (#98)
  • Covariance mapping and estimate frame transformations
  • State noise compensation (SNC)
  • Dynamic model compensation (DMC) (#86)
  • High fidelity ground station placement

Celestial computations

  • Orbital state manipulation
  • Planetary and Solar eclipse and visibility computation
  • Light-time corrections and aberrations
  • Frame rotations

Who am I?

An astrodynamics engineer with a heavy background in software. I currently work for Rocket Lab USA on the GNC of the Blue Ghost lunar lander. -- Find me on LinkedIn.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nyx_space-2.0.0a0.tar.gz (5.5 MB view hashes)

Uploaded Source

Built Distributions

nyx_space-2.0.0a0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

nyx_space-2.0.0a0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

nyx_space-2.0.0a0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

nyx_space-2.0.0a0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

nyx_space-2.0.0a0-cp311-none-win_amd64.whl (30.7 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

nyx_space-2.0.0a0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

nyx_space-2.0.0a0-cp311-cp311-macosx_11_0_arm64.whl (31.1 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

nyx_space-2.0.0a0-cp311-cp311-macosx_10_7_x86_64.whl (31.3 MB view hashes)

Uploaded CPython 3.11 macOS 10.7+ x86-64

nyx_space-2.0.0a0-cp310-none-win_amd64.whl (30.7 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

nyx_space-2.0.0a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

nyx_space-2.0.0a0-cp310-cp310-macosx_11_0_arm64.whl (31.1 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

nyx_space-2.0.0a0-cp310-cp310-macosx_10_7_x86_64.whl (31.3 MB view hashes)

Uploaded CPython 3.10 macOS 10.7+ x86-64

nyx_space-2.0.0a0-cp39-none-win_amd64.whl (30.7 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

nyx_space-2.0.0a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

nyx_space-2.0.0a0-cp38-none-win_amd64.whl (30.7 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

nyx_space-2.0.0a0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

nyx_space-2.0.0a0-cp37-none-win_amd64.whl (30.7 MB view hashes)

Uploaded CPython 3.7 Windows x86-64

nyx_space-2.0.0a0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.0 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

nyx_space-2.0.0a0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (34.4 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

nyx_space-2.0.0a0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page