IO.Astrodynamics
7.0.3
See the version list below for details.
dotnet add package IO.Astrodynamics --version 7.0.3
NuGet\Install-Package IO.Astrodynamics -Version 7.0.3
<PackageReference Include="IO.Astrodynamics" Version="7.0.3" />
<PackageVersion Include="IO.Astrodynamics" Version="7.0.3" />
<PackageReference Include="IO.Astrodynamics" />
paket add IO.Astrodynamics --version 7.0.3
#r "nuget: IO.Astrodynamics, 7.0.3"
#:package IO.Astrodynamics@7.0.3
#addin nuget:?package=IO.Astrodynamics&version=7.0.3
#tool nuget:?package=IO.Astrodynamics&version=7.0.3
IO.Astrodynamics
A modern .NET astrodynamics toolkit powered by NASA/JPL NAIF SPICE. IO.Astrodynamics delivers SPICE accuracy with a productive .NET API; a thin, stable C++ layer provides fast interop with CSPICE.
Important: The C++ layer is feature-frozen and exists only for communication with SPICE. All new features and APIs will land in the .NET projects.
What you can do
- Work with SPICE kernels and star catalogs
- Export simulations to Cosmographia
- Manage PDS archives (generate, materialize objects, validate against XML schemas)
- Ephemerides and propagation
- Spacecraft propagator: geopotential models, simplified atmospheres (Earth, Mars), solar radiation pressure, n-body perturbations, impulsive maneuvers, fuel balance
- Small-body propagator: geopotential (Earth), simplified atmospheres (Earth, Mars), SRP, n-body
- Orbital parameters: compute/convert State Vector, TLE, Equinoctial, Keplerian
- Frames and coordinates: ICRF/J2000, Ecliptic (J2000/B1950), TEME, Galactic, FK4, body-fixed/ITRF93, Equatorial/Horizontal/Planetodetic/Planetographic
- Spacecraft configuration: clocks, fuel tanks, engines, instruments
- Impulsive maneuvers: Lambert transfers, apogee/perigee height changes, plane/apsidal alignment, phasing, combined maneuvers
- Attitudes: instrument pointing, nadir/zenith, prograde/retrograde
- Time systems: Calendar, Julian, TDB, UTC, local; conversions included
- Event finding: distance, occultation, coordinate, illumination constraints; instrument field-of-view windows
- Kernel management utilities
- Math helpers: vectors, matrices, planes, quaternions, Jacobians, interpolation (Lagrange), Legendre polynomials, SLERP/LERP
- Use via CLI for common tasks (props, conversions, info queries)
How it works
- SPICE data: You supply NAIF kernels (ephemerides, planetary constants, leap seconds, mission data)
- Native bridge: A small C++ interop library talks to CSPICE for performance-critical calls (frozen API)
- .NET SDK: Rich, evolving API surface for scenarios, modeling, and utilities
- CLI: Command-line tools built on the .NET SDK for quick analyses
Links:
- SPICE concept: https://naif.jpl.nasa.gov/naif/spiceconcept.html
- SPICE data: https://naif.jpl.nasa.gov/naif/data.html
Install (.NET)
This package is on NuGet: https://www.nuget.org/packages/IO.Astrodynamics/
Install into your project:
dotnet add package IO.Astrodynamics
Requirements:
- Supported OS: Windows and Linux x64 (native CSPICE interop is bundled)
- SPICE kernels: you must load the kernels required for your computations
Quick start (C#)
Load kernels once at startup, then query ephemerides, frames, and more.
// Load required kernels (recursively) from your data directory
API.Instance.LoadKernels(new DirectoryInfo("<your path containing data>"));
// Example: Moon ephemeris at 2000-01-01T12:00Z in ICRF with Earth as center
var earth = new CelestialBody(PlanetsAndMoons.EARTH);
var moon = new CelestialBody(PlanetsAndMoons.MOON);
var epoch = new TimeSystem.Time(new DateTime(2000, 1, 1, 12, 0, 0), TimeFrame.UTCFrame);
var eph = moon.GetEphemeris(epoch, earth, Frames.Frame.ICRF, Aberration.None);
More examples: https://github.com/IO-Aerospace-software-engineering/Astrodynamics.Net/wiki/Examples
Using the CLI
A CLI is included in the repository for quick tasks (propagation, conversions, info queries, event finding).
- Build and show help:
dotnet run --project IO.Astrodynamics.Net/IO.Astrodynamics.CLI -- --help
- Typical commands include: sub-observer point, angular separation, orientation, orbital/frame/time conversions, event window finding (distance, occultation, FoV, illumination).
Getting SPICE data
You need to provide the kernels relevant to your scenario. Common sets:
- Leap seconds (e.g., naif0012.tls)
- Planetary constants (e.g., pck files)
- Ephemerides (e.g., de430.bsp, planetary/spacecraft SPKs)
- Frames and spacecraft clocks as needed
Organize them in a directory and load them recursively:
API.Instance.LoadKernels(new DirectoryInfo("Data/SolarSystem"));
Native C++ interop (frozen)
The native C++ library exists only as a high-performance bridge to CSPICE. It won’t receive new features. If you need to link it directly:
- Download prebuilt binaries from Releases: https://github.com/IO-Aerospace-software-engineering/Astrodynamics/releases
- Linux: install headers to /usr/local/include/IO and libIO.Astrodynamics.so to /usr/local/lib
- Windows: place IO.Astrodynamics.dll/.lib alongside your app and include headers
Note: Prefer the .NET SDK for all new work.
Build status and coverage
Sponsoring
Building and sustaining a .NET-first astrodynamics toolkit on top of SPICE takes significant effort across:
- Keeping pace with SPICE releases and kernel updates
- Evolving the .NET API, CLI, and documentation
- Cross-platform packaging and CI (Windows/Linux)
- Extensive tests, validation against reference data, and performance work
- New features and scenarios (propagators, event finders, attitudes, PDS tooling, Cosmographia export)
- Community support, triage, and example curation
How you can help:
- Sponsor the project via GitHub Sponsors to fund ongoing development and maintenance
- Company sponsorships to prioritize features, integrations, or support
- Back specific issues or improvements; contribute kernel sets, scenarios, or docs
- Provide infrastructure (CI minutes/compute) or test hardware when relevant
Where funds go:
- .NET SDK and CLI development (the native C++ bridge is feature-frozen)
- Documentation, tutorials, and examples
- Validation datasets and automated QA
- Release engineering, packaging, and platform support
Sponsor: https://github.com/sponsors/IO-Aerospace-software-engineering
Contributing
- We welcome contributions to the .NET SDK, CLI, docs, and tests. The native layer accepts only fixes and perf/stability improvements.
- Please read CONTRIBUTING.md and follow the code of conduct.
License and acknowledgments
- License: See LICENSE
- Security: See SECURITY.md
- Built on NASA/JPL NAIF SPICE. SPICE is developed by the Navigation and Ancillary Information Facility (NAIF) at JPL.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- AutoMapper (>= 12.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 7.0.4 | 107 | 12/5/2025 |
| 7.0.3 | 209 | 10/31/2025 |
| 7.0.2-preview2 | 173 | 10/1/2025 |
| 7.0.1-preview1 | 281 | 8/4/2025 |
| 6.5.1 | 393 | 7/20/2025 |
| 6.5.0 | 190 | 7/10/2025 |
| 6.4.0 | 226 | 6/5/2025 |
| 6.3.0 | 294 | 12/12/2024 |
| 6.2.0 | 332 | 11/15/2024 |
| 6.1.2 | 219 | 10/11/2024 |
| 6.1.1 | 177 | 10/11/2024 |
| 6.1.0 | 199 | 10/10/2024 |
| 6.1.0-preview-1 | 141 | 10/2/2024 |
| 6.0.0-preview-9 | 157 | 9/30/2024 |
| 6.0.0-preview-8 | 145 | 9/30/2024 |
| 6.0.0-preview-7 | 141 | 9/30/2024 |
| 6.0.0-preview-6 | 169 | 9/28/2024 |
| 6.0.0-preview-5 | 160 | 9/27/2024 |
| 6.0.0-preview-4 | 158 | 9/27/2024 |
| 6.0.0-preview-3 | 175 | 9/16/2024 |
| 6.0.0-preview-2 | 145 | 9/12/2024 |
| 6.0.0-preview-10 | 131 | 10/2/2024 |
| 6.0.0-preview-1 | 159 | 9/11/2024 |
| 5.0.0 | 221 | 9/6/2024 |
| 4.1.0 | 206 | 8/30/2024 |
| 4.0.0 | 194 | 8/28/2024 |
| 4.0.0-preview-3 | 180 | 8/28/2024 |
| 4.0.0-preview-2 | 158 | 8/27/2024 |
| 4.0.0-alpha | 173 | 8/23/2024 |
| 3.5.0 | 205 | 8/20/2024 |
| 3.4.0 | 200 | 8/19/2024 |
| 3.3.1 | 154 | 8/3/2024 |
| 3.3.0 | 174 | 8/2/2024 |
| 3.2.3 | 174 | 8/1/2024 |
| 3.2.2 | 390 | 6/1/2024 |
| 3.2.1 | 185 | 5/27/2024 |
| 3.2.0 | 178 | 5/27/2024 |
| 3.1.0 | 213 | 5/21/2024 |
| 3.0.4 | 256 | 5/3/2024 |
| 3.0.3 | 200 | 4/30/2024 |
| 3.0.2 | 219 | 4/27/2024 |
| 3.0.1 | 207 | 4/26/2024 |
| 3.0.0 | 189 | 4/22/2024 |
| 2.2.0 | 201 | 4/17/2024 |
| 2.1.0 | 318 | 3/15/2024 |
| 2.0.0 | 276 | 3/8/2024 |
| 2.0.0-alpha | 236 | 3/5/2024 |
| 1.10.0 | 417 | 2/2/2024 |
| 1.9.10 | 435 | 12/23/2023 |
| 1.9.2 | 481 | 12/5/2023 |
| 1.9.1 | 462 | 11/25/2023 |
| 1.9.0 | 409 | 11/22/2023 |
| 1.8.0 | 539 | 9/29/2023 |
| 1.7.0 | 667 | 7/31/2023 |
| 1.6.1 | 628 | 7/27/2023 |
| 1.6.0 | 671 | 7/24/2023 |
| 1.5.0 | 692 | 7/18/2023 |
| 1.4.0 | 687 | 7/16/2023 |
| 1.3.0 | 683 | 7/13/2023 |
| 1.2.0 | 670 | 7/11/2023 |
| 1.1.0 | 627 | 7/4/2023 |
| 1.0.2 | 748 | 7/3/2023 |