Skip to main content
Open-source robot runtime

Cerulion is the operating system for physical AI.

An open-source, zero-copy robot runtime that records runs, replays failures against new code, and reaches your robots from anywhere. It’s ROS 2 compatible.
Try the QuickstartExplore the source ↗
Conceptual robotics lab: a camera's data flows to a workstation, robotic arm, and mobile platform beside a humanoid.The same conceptual robotics lab at dusk, with the camera's data paths illuminated.

What Cerulion is

Cerulion is an open-source Rust runtime for robots and real-time systems. You compose your application as a graph of nodes that pass messages over zero-copy shared memory, and you build, wire, and run the whole thing through one CLI: cerulion. Nodes on one machine exchange messages through shared memory, with no serialization on the local path. In internal benchmarks on one x86-64 Linux desktop, a 1 MiB round trip with the default multi-process layout has a median of 4.08 µs, close to the 2.48 µs of raw iceoryx2 shared memory; see the benchmark results. A run records to a standard MCAP bag, and cerulion bag play <bag> --resim all --verify re-runs a supported recording against your current node builds and compares the outputs. Flashback saves the moments around a failure from a rolling in-memory window. A robot’s topics are readable from any computer signed in to the same account, on one LAN or across networks. The CLI and runtime are open source under AGPL-3.0-only, with a commercial license available. Install the CLI and run the quickstart.

Why teams use it

Zero-copy pub/sub

Nodes exchange messages over iceoryx2 shared memory. Reads and writes go straight to the payload, with no serialization on the local hot path.

Record and re-execute

Record a live run to a standard MCAP bag, then re-run your current node builds against it and see which outputs changed.

Flashback

Save the moments around a failure from a rolling in-memory window, on request or when the runtime detects a fault.

Trigger policies

Decide when each node fires (periodic, data-triggered, synchronized, or external) with per-node tick deadlines that warn loudly when missed.

Ergonomic node API

Define a node as a Rust struct with #[cerulion_node]. Field attributes declare ports; the macro rewrites self.<port> access into zero-copy shared-memory reads and writes for you.

Fault isolation by default

On Linux and macOS a live graph runs as separate worker processes. A crash is contained to its own process, and the surviving workers keep running, degraded, by default.

Works with ROS 2

254 built-in ROS 2 message types. rmw_cerulion runs ROS 2 nodes on Cerulion’s transport, tested on Foxy, Galactic, Humble, Jazzy and Lyrical, and cerulion ros2 attach bridges an existing DDS robot’s topics into a Cerulion graph.

Your robots from your desk

Sign the robot and your computer in to the same account, and read its topics from your desk, on one LAN or across networks.

Start here

Installation

Set up the Rust toolchain, get the cerulion CLI, and verify it works.

Quickstart

Build and run a complete two-node graph, then watch its messages with topic echo.

Concepts

Learn the mental model: workspaces, nodes, graphs, topics, and schemas.

Hindsight and the hosted MCP server

The runtime is open source. Hindsight and the hosted MCP server are closed source and in early access: book 30 minutes with us to get access.

Hindsight

Early access. Point it at a recording and find the moment the run went sideways, with every claim cited to a topic and timestamp.

Connect an MCP client

Early access. Give your coding agent tools that analyze MCAP recordings served over HTTPS. Build and run your workspace with the cerulion CLI.

Build with the community

Meet us on DiscordGet unstuck. Share a run. Start contributing.