astrodyn 0.2.0

Gateway to the astrodyn orbital-dynamics framework — a pure-Rust, engine-agnostic port of NASA JEOD (spherical-harmonics gravity, RNP Earth rotation, atmosphere, drag/SRP, multi-body dynamics) composing the astrodyn_* physics crates into one pipeline API any host can drive
Documentation
# NOTICE

This NOTICE file documents third-party material redistributed alongside the
`astrodyn` workspace. It supplements the project's own license terms; it does
not replace them.

## astrodyn source code

The `astrodyn` workspace — every Rust crate published from this repository
(`astrodyn`, `astrodyn_*`, the verification crates, and the build / xtask
support code) — is dual-licensed under either of:

- MIT license — see [`LICENSE-MIT`]LICENSE-MIT
- Apache License, Version 2.0 — see [`LICENSE-APACHE`]LICENSE-APACHE

at your option. SPDX identifier: `MIT OR Apache-2.0`.

This dual license governs the Rust source, examples, tests, benchmarks,
documentation, and CI scripts that originate in this repository.

## NASA JEOD source mirror — verification reference only

The directory
[`crates/astrodyn_verif_jeod/test_data/jeod_inputs/`](crates/astrodyn_verif_jeod/test_data/jeod_inputs/)
contains a **verbatim, unmodified mirror** of selected source files from
NASA's *JSC Engineering Orbital Dynamics* (JEOD) simulation tool. These files
are redistributed solely as input fixtures for Tier 2 and Tier 3
cross-validation tests — they are read by our verification rigs to recover
initial conditions, dt, mass properties, time-scale offsets, and gravity
configuration that originated in JEOD's own verification simulations. The
mirror is never compiled, linked, or executed; it is reference data.

| Attribute               | Value                                                        |
|-------------------------|--------------------------------------------------------------|
| Upstream project        | JSC Engineering Orbital Dynamics (JEOD)                      |
| Government designation  | MSC-27344-1                                                  |
| Pinned version          | v5.4                                                         |
| Upstream source         | <https://github.com/nasa/jeod>                               |
| Upstream license        | NASA Open Source Agreement (NOSA), Version 1.3               |
| Full license text       | <https://github.com/nasa/jeod/blob/main/LICENSE>             |
| Originator              | National Aeronautics and Space Administration (NASA), JSC    |

The NOSA terms in the upstream `LICENSE` apply to every file under
`crates/astrodyn_verif_jeod/test_data/jeod_inputs/` exactly as they apply in
an upstream JEOD checkout. Refer to the upstream LICENSE for the authoritative
text of the agreement (definitions, grant of rights, attribution obligations,
warranty disclaimer, and U.S. Government rights).

### Composition with astrodyn's own license

The NOSA terms apply *only* to the verbatim mirrored files listed under
`crates/astrodyn_verif_jeod/test_data/jeod_inputs/`. They do **not** extend to
any other file in this repository. The astrodyn Rust source — including the
verification *rigs* that read those fixtures
(`crates/astrodyn_verif_jeod/src/`, `crates/astrodyn_verif_jeod/tests/`) — is
covered exclusively by the `MIT OR Apache-2.0` dual license declared above.

This is consistent with the NOSA definition of a "Larger Work": astrodyn
combines the mirrored Subject Software (JEOD's verification input files) with
software that is *not* governed by NOSA, and including the mirror does not by
itself bring the rest of the repository under NOSA.

## Independence: astrodyn is not vendored JEOD

astrodyn is an **independent Rust reimplementation** of the physics topics
covered by JEOD; it does not vendor, fork, or wrap any of JEOD's C++ source.
The only files redistributed from JEOD are the inputs to verification tests.
Every line of physics code in the `astrodyn_*` crates is an original Rust
implementation written against publicly documented algorithms, with JEOD's
output used purely as a numerical reference for Tier 2 / Tier 3 comparison
(see `CLAUDE.md` § "Computational Independence" and § "Tier 3
Cross-Validation").

## NASA-derived reference CSVs

Tier 3 cross-validation also consumes per-scenario reference trajectories
generated by running JEOD v5.4 simulations inside NASA's Trick simulation
environment via the Docker workflow documented on the
[Tier3-Regeneration wiki page](https://github.com/simnaut/astrodyn/wiki/Tier3-Regeneration).
The resulting CSVs (committed under `crates/astrodyn_verif_jeod/test_data/`,
file pattern `<label>_*.csv`, plus the SPICE `.bsp` kernels used by some rigs)
are derivative output of NASA-authored software (JEOD v5.4 + Trick).
Attribution and licensing follow JEOD's NOSA terms above; the regeneration
script `trick/generate_references.sh` and the surrounding Rust tooling are
covered by astrodyn's `MIT OR Apache-2.0` license.

## Refresh procedure

The refresh recipe — including the `cp`-from-`$JEOD_HOME` command for
upgrading the mirror after a JEOD version bump — lives in
[`crates/astrodyn_verif_jeod/test_data/jeod_inputs/README.md`](crates/astrodyn_verif_jeod/test_data/jeod_inputs/README.md).
When the upstream pin moves to a new JEOD release, update both the "Pinned
version" row above and the corresponding pin documented in `CLAUDE.md`
§ "Environment Setup".