Apogee is organized as a monorepo with four packages:

graph TD
    A[apogee-api<br/>FastAPI REST] --> B[apogee-orbit<br/>Orbital mechanics]
    A --> C[apogee-launch<br/>Launch simulator]
    B --> C
    C --> D[apogee-physics<br/>Core engine]

Package Overview

Package Description Key Modules
apogee-physics Core numerical engine dynamics, shooting, simulate
apogee-launch Launch simulator + CLI simulator, falcon9, plotting
apogee-orbit Orbital mechanics core, attitude, simulator
apogee-api REST API routers, schemas

Dependency Graph

apogee-physics (JAX, Diffrax, USSA1976)
    ↑
apogee-launch (Typer, Matplotlib)
    ↑
apogee-orbit (NumPy)
    ↑
apogee-api (FastAPI, Pydantic)

Design principle: Each layer depends only on layers below.

Code-to-Equation Mapping

Equation Description Location
Eq. 1 State vector types.py
Eq. 5-6 Kinematics dynamics.py:69-70
Eq. 9-11 Dynamics dynamics.py:73-82
Eq. 12-13 Regularization dynamics.py:66-77
Eq. 15-16 Atmosphere atmosphere.py
Eq. 18-21 Orbital elements orbit.py:31-38
Eq. 22-26 Shooting method shooting.py