IO.Astrodynamics 7.0.3

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IO.Astrodynamics" Version="7.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IO.Astrodynamics" Version="7.0.3" />
                    
Directory.Packages.props
<PackageReference Include="IO.Astrodynamics" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IO.Astrodynamics --version 7.0.3
                    
#r "nuget: IO.Astrodynamics, 7.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package IO.Astrodynamics@7.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IO.Astrodynamics&version=7.0.3
                    
Install as a Cake Addin
#tool nuget:?package=IO.Astrodynamics&version=7.0.3
                    
Install as a Cake Tool

IO.Astrodynamics

IO Astrodynamics CI IO Astrodynamics CD

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:

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:

Note: Prefer the .NET SDK for all new work.

Build status and coverage

C++ CMake CI

Code 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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