Documents

Guide

User guide

ARLAMX flies a spacecraft in software. A C++ plant integrates the orbit and the attitude. Python loads the geometry, the atmosphere, and, when you want one, a neural network that chooses the attitude.

Three jobs, one plant

Free-molecular flow

Give it a plate model of a spacecraft. It sums Sentman (or Walker–CLL) force and torque, plus solar and Earth radiation pressure, and can integrate the orbit down until a stop altitude. The attitude can be held at minimum drag, maximum drag, or a fixed angle of attack.

Onboard control loop

An outer advisor picks a target quaternion every 300 seconds. An inner MRP or quaternion law tracks it every 2 seconds, through magnetorquers or torque rods. The advisor can be a script, a sampling MPC, or a trained network.

Deep RL

Stable-Baselines3 PPO, SAC, or TD3 train that outer advisor inside a Gymnasium environment. The default network is 4×16. Training stays FP32. quantize writes an INT8 actor afterwards.

Build once

mamba env create -n arlamx -f environment.yml
mamba activate arlamx
./build.sh
python main.py test

Use Python 3.12. ./build.sh writes python/arlamx_v2/arlamx_cpp*.so. That file is gitignored, so a fresh clone needs this step. Details and the library list are on the libraries page.

Then one of these

python main.py list                                      # every command
python main.py decay                                     # hex sail, min and max drag
python main.py sim geometry --in craft.stl --quality 1pct
python main.py train --network config/network_quick.yaml # short training run

The commands page is the map. Every flag is also in docs/notes/commands.md.

What the plant contains Free-molecular aerodynamics on flat plates, an optical solar-pressure plate law with Earth infrared and albedo, GGM03S gravity through degree 70 (training presets use 2, 4, or 8), Sun and Moon point masses, the World Magnetic Model, and NRLMSIS atmosphere from Python. Plates do not shadow each other, in flow or in sunlight.