Skip to content
/ nyx Public

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

License

Notifications You must be signed in to change notification settings

nyx-space/nyx

Repository files navigation

Nyx: Comprehensive Spaceflight Dynamics

Empowering flight dynamics engineers with open-source software

Nyx is revolutionizing the field of flight dynamics engineering as a powerful, open-source tool for mission design and orbit determination. From trajectory optimization to orbit estimation, Nyx is built for speed, automation, and scalability.

Nyx has proven mission-critical reliability, already contributing to the success of several lunar missions including Firefly Blue Ghost 1 and NASA/Adanced Space CAPSTONE.

Nyx Space Badget Contact Form

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

License

The core of Nyx is provided under the AGPLv3 License. The foundational components of Nyx are open-source and accessible to everyone.

By using this software, you assume responsibility for adhering to the license. Refer to the pricing page for an FAQ on the AGPLv3 license. Notably, any software that incorporates, links to, or depends on Nyx must also be released under the AGPLv3 license, even if you distribute an unmodified version of Nyx.

Starting with version 2.2.0-alpha, Nyx now offers a set of advanced functionalities available under a premium crate feature. This feature operates under a dual-license model.

The premium Feature License

The premium feature is available for use free of charge under the standard AGPLv3 license for the following users:

  • Individuals
  • Non-profit organizations
  • Academic institutions
  • Commercial entities with annual gross revenue of $1,000,000 USD (one million) or less.

Use of any code enabled by the premium feature is prohibited for any for-profit entity (including, but not limited to, companies, corporations, and organizations) whose annual gross revenue exceeds $1,000,000 USD. Entities exceeding this revenue threshold must purchase a commercial license to enable and use the premium feature. This license grants you the right to use these advanced features in your commercial products and services. To inquire about a commercial license, please contact me at christopher.rabotin@gmail.com or via the contact form.

Note: under the assumption that most users are below this threshold, the premium feature is enabled by default. As a user you are responsible for ensuring compliance with the license by your entity and customers. It is enforced.

Showcase

The website has the latest use cases

GEO Low Thrust Orbit Raising & StationKeeping

Click for description

RAAN, AOP, INC over time

James Webb Space Telescope Monte Carlo Simulation

Click for description

RAAN, AOP, INC over time

Orbit Determination of the Lunar Reconnaissance Orbiter

Click for description

RAAN, AOP, INC over time

Documentation

The documentation is currently being updated. If you have specific use cases you would like to see documented, please open a Github issue or use the contact form

Quick start

Rust

To install Nyx, follow these steps:

  1. Clone the repository: git clone https://github.com/nyx-space/nyx.git
  2. Navigate to the directory: cd nyx
  3. Run any of the examples, e.g. RUST_LOG=info cargo run --example 01_orbit_prop --release

Compilation

Nyx uses lld, the LLVM linker, for faster compilation times. You may need to manually install lld depending on your distribution. On Ubuntu, this command is sudo apt install clang lld.

Python

For Python projects, get started by installing the library via pip: pip install nyx_space.

Important: The Python package has been temporarily disabled. Refer to #311 for details.

Versioning

Nyx mostly adheres to SemVer. New patch versions should be rare. Updated dependencies trigger a new minor version. However new fields in structures and new behavior may also be added with minor releases, but the public facing initializers and functions should not significantly change (but may still change).

Major releases are for dramatic changes.

Author information

Chris Rabotin is a GNC and flight dynamics engineer with a heavy background in software.

I currently work for Rocket Lab USA as the lead flight dynamics engineer on the Blue Ghost lunar lander missions. -- Find me on LinkedIn.

External contributions

Contributions are licensed under AGPLv3 and may also be relicensed under a commercial license by Nyx Space. Contributors retain ownership of their copyrights but grant Nyx Space broad rights as outlined in the Contributor License Agreement (CLA).

About

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

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors 16

Languages