Skip to main content

OrbitalGym — JAX-native decision-making for orbital scenarios

Documentation


OrbitalGym is a JAX-native framework for two-side decision-making in orbital scenarios. The goal is to provide a high-performance research and education framework for orbital decision-making. It is built on top of JAX and astrojax for differentiable dynamics, and is intended as a starting point for further development and research.

OrbitalGym models any two-side decision making problem where two sides compete to complete an objective. Five scenarios ship in the box: Lady-Bandit-Guard, Pursuit-Evasion, Get-Off-My-Lawn, Sun-Blocking, and Observation-Blocking.

The same core drives single-agent (Gymnasium-shaped), multi-agent (PettingZoo-shaped), and POMDP-shaped views of the same underlying game to enable integration with the rich ecosystem of tools built around those interfaces. The core is also designed to be easily extended with new scenarios, new dynamics, and new interfaces.

Install

pip install orbitalgym
# or
uv add orbitalgym

If you want JAX accelerated on GPU or Apple Silicon, install the matching extra:

# NVIDIA CUDA 12
pip install orbitalgym[cuda12]
# NVIDIA CUDA 13
pip install orbitalgym[cuda13]
# Apple Silicon Metal (via jax-mps)
pip install orbitalgym[mps]

Quickstart

This project uses just as a command runner and uv for Python package management.

# Install just (macOS)
brew install just

# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone and install everything (dev deps + adapter extras)
just install

See the Getting started guide to walk from a fresh checkout to a rendered trajectory plot.

Papers

papers/2027_ieee_aeroconf holds the experiments, figures, and quoted statistics of "Where Planning Changes the Outcome of Orbital Games" (IEEE Aerospace Conference, 2027), one runnable script per experiment.

Development

Every recipe has an equivalent raw command you can run directly.

Task just recipe Raw command
Install dev deps just install uv sync --dev
Run tests just test uv run pytest tests/ -v
Test with coverage just test-cov uv run pytest --cov=orbitalgym --cov-report=term-missing
Format code just fmt uv run ruff format
Lint (auto-fix) just lint uv run ruff check --fix
Type check just typecheck uv run pyrefly check
All quality checks just check Runs fmt + lint + typecheck
Build docs just docs-build uv run zensical build --clean
Serve docs just docs-serve uv run zensical serve --clean

License

The code in this repository is licensed under the MIT License. See LICENSE.md for details.

Metadata

Release files for orbitalgym 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for orbitalgym 0.1.0
File Size Uploaded
orbitalgym-0.1.0.tar.gz 213.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for orbitalgym 0.1.0
File Interpreter ABI Platform
orbitalgym-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 495.3 kB

Release files / orbitalgym-0.1.0.tar.gz

Download URL orbitalgym-0.1.0.tar.gz
Size 213.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0fb07180e91c1e2cface4048ccafe4648b54477ebfad09269bbe2784834721c1
BLAKE2b-256 checksum
How to use checksums
73a73050434372bee9ebc56a477f3957f061cabd4a3d3a3e0a45e5f1846c3063
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / orbitalgym-0.1.0-py3-none-any.whl

Download URL orbitalgym-0.1.0-py3-none-any.whl
Size 281.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc506e1ccfecf2b5b7526340e98b9d395603906c2d5cbabc6c0179a6a350dde7
BLAKE2b-256 checksum
How to use checksums
46666fe5bb1af7e4b16c2cd0e734a11c983d424a362e8d251966b17204445ce6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page