GMAT Py¶
Orbit propagation and astrodynamics in Python, backed by a bundled native GMAT R2026a engine. Start with ordinary Python values, then use the scoped native interface when you need lower-level control.
import gmatpy as gmat
samples = gmat.propagate(
[7000, 0, 0, 0, 7.5, 1.0],
epoch="2020-07-20T12:00:00Z",
times=[0, 60, 600],
)
print(samples[-1].position_km)
A matching wheel bundles the engine, Python bindings, and selected scientific data. It needs no separate GMAT installation, GUI, display server, or runtime data download. GMAT Py is an experimental, independently packaged interface; it does not provide complete GMAT coverage or establish numerical equivalence with a NASA GMAT release.
Important
The distribution is gmatpy version 0.2.0, imported as gmatpy.
It is not yet on PyPI. Install a matching candidate wheel or build from
source. The single headless package includes SPICE and all supported mission
workflows; no feature profile or extra is needed. See Installation.
Find your starting point¶
Installation: choose a wheel, understand platform qualification, or prepare a native source build.
Propagate your first orbit: propagate an Earth-centered state and interpret the samples.
Mission workflows and native access: explore burns, multiple spacecraft, targeting, scripts, and native sessions.
TLE Tailor integration: use the GMAT Py propagation backend in a TLE-fitting workflow.
Time, frames, units and scientific inputs: check time scales, reference frames, units, and data limits.
Python API reference: look up every supported public Python export.
Runnable examples: run the same small programs used to check this documentation.
Scope and confidence¶
The value-based API covers Earth propagation, state/time/frame conversions, geometric DE405 body states, and a bounded set of mission operations. The bundled core SWIG interface is broader and experimental. Optional GMAT plugins and GUI workflows are outside the supported facade.
Numerical tests combine analytical checks, saved independent expectations, same-engine comparisons, and a controlled NASA-source comparison with declared adapters. Zero differences in sampled cases do not establish universal NASA equivalence. Their scope is described in Development and validation; passing them does not validate operational mission use. Scientific inputs are fixed snapshots, with coverage and freshness limits in Time, frames, units and scientific inputs.
These pages describe the single-package cleanup based on
bff0ed4687964cd1f36a3ebaeb278b451bac271d. That base revision passed all eight
native matrix cells across Linux x86_64/ARM64 and macOS Intel/ARM64 on the first
attempt. Those historical profile builds do not establish a fresh native build
of the packaging cleanup. See Platform qualification for exact source and
artifact boundaries and Development and validation for the checks.
Project resources¶
Source repository · Issue tracker · NASA GMAT project
The wheel and source archive include component notices and license/data
inventories. Consult gmatpy/NOTICE.txt, gmatpy/LICENSES.md, and
gmatpy/licenses/ for the specific distribution. Public source availability
does not imply binary publication clearance; the product-specific CSPICE
export determination remains an owner decision.