This guide covers all installation methods for Apogee.
Prerequisites¶
Required¶
- Python ≥ 3.11
- uv - Modern Python package manager
Optional (for frontend)¶
- Node.js ≥ 20
- npm or pnpm
Installing uv¶
If you don't have uv installed:
curl -LsSf https://astral.sh/uv/install.sh | sh
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
pip install uv
Clone Repository¶
git clone https://github.com/daxrpm/apogee.git
cd apogee
Install Python Packages¶
Full Installation (Recommended)¶
Install all workspace packages:
uv sync
This installs:
| Package | Description |
|---|---|
apogee-physics |
Core numerical engine (JAX, Diffrax, USSA1976) |
apogee-launch |
Launch simulator and CLI |
apogee-orbit |
Orbital mechanics and yaw steering |
apogee-api |
FastAPI REST backend |
Individual Package¶
To install only a specific package:
uv sync --package apogee-launch
Verify Installation¶
# Check CLI is available
uv run apogee-launch --help
# Run a test simulation
uv run apogee-launch --h-target-km 200 --payload-kg 5000 --no-trajectory
Expected output:
{
"schema_version": 1,
"inputs": {"h_target_km": 200.0, "payload_kg": 5000.0},
"optimal_numerics": {...},
"summary": {"ecc": 0.000234, "h_err_m": -123.4, ...}
}
Frontend Installation (Optional)¶
For the 3D visualization:
cd frontend
npm install
npm run dev
The frontend will be available at http://localhost:5173/.
Development Setup¶
For contributors:
# Install with development dependencies
uv sync --all-extras
# Run tests
uv run pytest
# Type checking
uv run mypy packages/
Troubleshooting¶
JAX Installation Issues
If you encounter JAX-related errors on Apple Silicon:
# Install JAX with Metal support
pip install jax-metal
First Run Slowness
The first simulation takes longer (~20s) due to JAX JIT compilation. Subsequent runs are much faster (~0.5s).
Next Steps¶
- Quick Start - Run your first simulation
- Architecture - Understand the codebase structure