This monorepo contains the source code for all Elodin simulation and flight software:
- Flight software
aleph-os: Aleph NixOS modules for composing a Linux flight software stack that runs on the Orin.elodin-db(FSW application): A time-series database which functions as a central telemetry store and message bus.serial-bridge(FSW application): Reads sensor data being streamed over the serial port and writes it toelodin-db.mekf(FSW application): A Multiplicative Extended Kalman Filter implementation that fuses sensor data to estimate vehicle attitude.sensor-fw: Aleph expansion board firmware that streams sensor data (IMU, mag, baro) to the Orin over USB/UART.
- Simulation software
nox-py: Python version ofnox-ecs, that works with JAX.
- Editor: 3D viewer and graphing tool for visualizing both simulation and flight data.
- Determinate Systems Nix for a consistent development environment
- Just: (
brew install just/apt install just) - git-lfs: (
brew install git-lfs/apt install git-lfs), and make sure to activate it globally withgit lfs installfrom the terminal. - STRONGLY prefer an Arm-based MacOS, nix works on x86 & Ubuntu but at much slower build speeds and worse DX.
The Elodin repository uses Nix to provide a consistent, reproducible development environment across all platforms. This is the same environment our team uses daily.
# Install Determinate Systems Nix (recommended)
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- installgit clone https://github.com/elodin-sys/elodin.git
cd elodinnix developTip
The Nix shell supports Oh My Zsh + Powerlevel 10k; for first time configuration run: p10k configure
just install
elodin --version
python3 examples/rocket/main.py runOpen the Elodin editor in a new nix develop shell and connect to the local server
# In a new terminal
nix develop
# build the SDK python wheel
cd libs/nox-py && \
uv venv --python 3.12 && \
source .venv/bin/activate && \
uvx maturin develop --uv
# use the newly built wheel
python3 ../../examples/rocket/main.py runOpen the Elodin editor and connect to the local server
Note
Local setup instructions were validated on Arm M2 MacOS & Intel x86 Ubuntu 24.04 on 2025-10-12.
Warning
This setup is more complex and may lead to inconsistent environments across developers. We strongly recommend using Nix instead.
If you cannot use Nix, you can manually install dependencies on macOS:
# Install required tools via Homebrew
brew install gstreamer python gfortran openblas uv git-lfs rust
# Initialize git-lfs
git lfs installgit clone https://github.com/elodin-sys/elodin.git
cd elodin
just installcd libs/nox-py
uv venv --python 3.12
source .venv/bin/activate
uvx maturin develop --uv
uv sync
cargo run --manifest-path=../../apps/elodin/Cargo.toml editor ../../examples/three-body/main.pyNote
Local setup instructions were validated on M1 architecture, macOS 15.1.1 on 2025-08-26.