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

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.