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.