Skip to content

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
Python 3.10+ F-Prime tooling and ground segment scripts
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:

uv venv
source .venv/bin/activate
uv pip install -r flight_segment/orion/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:

cd flight_segment/orion
fprime-util generate
fprime-util build --all -j$(nproc)

The compiled binary is located at:

flight_segment/orion/build-artifacts/Linux/Orion/bin/Orion     # Linux
flight_segment/orion/build-fprime-automatic-native/bin/Orion   # varies by platform

Install Ground Segment Dependencies (Optional)

If you plan to run the training pipeline or data generation scripts, install the ground segment Python dependencies:

cd ground_segment
uv sync
cd ..

This installs PyTorch, Transformers, PEFT, and other ML dependencies defined in ground_segment/pyproject.toml.

Verify the Build

Run the binary with --help or test that it starts:

./flight_segment/orion/build-artifacts/Linux/Orion/bin/Orion --help

Next Steps