Development¶
This guide covers building ORION from source on a development machine (macOS or Linux x86_64). For deploying to a Raspberry Pi 5, see Deployment.
Prerequisites¶
| Dependency | Minimum Version | Purpose |
|---|---|---|
| CMake | 3.20+ | Building llama.cpp and the F-Prime project |
| uv | latest | Python environment and dependency management |
| libcurl | any | SimSat HTTP client (NavTelemetry, CameraManager) |
| C++ compiler | C++17 | F-Prime and llama.cpp compilation |
| Git | any | Submodule management |
macOS¶
brew install cmake uv
# Xcode Command Line Tools provides clang and libcurl
xcode-select --install
Ubuntu / Debian¶
sudo apt-get update
sudo apt-get install build-essential cmake libcurl4-openssl-dev libomp-dev python3 python3-venv
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
Clone the Repository¶
ORION uses Git submodules for F-Prime and llama.cpp. Always clone with --recursive:
git clone --recursive https://github.com/Saransh-cpp/ORION.git
cd ORION
If you already cloned without --recursive, initialize the submodules manually:
git submodule update --init --recursive
Build llama.cpp¶
The VLM inference engine links against llama.cpp as a static library. Build it before the flight segment:
cd ground_segment/llama.cpp
cmake -B build \
-DBUILD_SHARED_LIBS=OFF \
-DLLAMA_BUILD_TESTS=OFF \
-DLLAMA_BUILD_EXAMPLES=OFF \
-DLLAMA_BUILD_SERVER=OFF
cmake --build build -j$(nproc)
cd ../..
Set Up the Python Environment¶
Create a virtual environment and install the F-Prime Python dependencies:
cd flight_segment/orion
uv venv --python 314
source .venv/bin/activate
uv pip install -r lib/fprime/requirements.txt
Generate and Build the Flight Segment¶
Use F-Prime's build tooling to generate the autocoded sources and compile the binary:
fprime-util generate
fprime-util build --all
The compiled binary is located at:
./build-artifacts/Darwin/Orion/bin/Orion # macOS
./build-artifacts/Linux/Orion/bin/Orion # Linux
Check if the executable was indeed produced in the right location:
# macOS
file ./build-artifacts/Darwin/Orion/bin/Orion
Install Ground Segment Dependencies (Optional)¶
If you plan to run the training pipeline, data generation scripts, or evaluation studies, install the ground segment Python dependencies:
deactivate # deactivate the FS environment if active
cd ../../ground_segment # if in flight_segment/orion
uv venv --python 314
source .venv/bin/activate
uv sync
This installs PyTorch, Transformers, PEFT, and other ML dependencies defined in ground_segment/pyproject.toml.
Next Steps¶
- Deployment: cross-compile for Raspberry Pi 5 and deploy
- Usage: run a demo session with SimSat and GDS
- Environment Variables: configure paths and endpoints