The Principal Dev – Masterclass for Tech Leads

The Principal Dev – Masterclass for Tech Leads28-29 May

Join

     Copper Runtime & SDK

copper GitHub last commit dependency status Discord Book Documentation

Why Copper

Rust-first – ergonomic & safe

Sub-microsecond latency – zero-alloc, data-oriented runtime

Deterministic replay – every run, bit-for-bit identical

Interoperable with ROS2 – bridges via Zenoh opening the path for a progressive migration.

Runs anywhere – from Linux servers, workstations, SBC to bare-metal MPUs

Built to ship – one stack from simulation to production

Already showing up in: ✈️ Flying | 🚗 Driving | 🌊 Swimming | 🚀 Spacefaring | 🤖 Humanoids

Try Copper In One Click In Your Browser

No setup required. Open one of the live demos in your browser: the simulator runs on the left and the live Copper monitor runs on the right.

These are not mockups: BalanceBot is the exact same application that runs on a Raspberry Pi physical robot, and Flight Controller is the same control stack we run on a microcontroller (STM32H7) on real drones. Copper lets that same graph be recompiled for embedded hardware, a local workstation, or the browser.

BalanceBot browser demo
BalanceBot
Self-balancing robot sim with a live Copper DAG and latency monitor.
Source code
Flight controller browser demo
Flight Controller
Quadcopter flight sim with the same live Copper monitor.
Source code

Prefer a native app instead of the browser? Install the published demo crates from crates.io:

cargo install cu-rp-balancebot
balancebot-sim

cargo install cu-flight-controller
quad-sim

The source for the published demo crates above lives in copper-project/extra-examples. Cross-framework comparison benchmarks live in copper-project/benchmarks.

Want to see more Copper in action? Watch the community showcase video.

Copper community showcase video

Get Started

Zero To Your First Copper App in 30 Seconds

cargo install cargo-cunew
cargo cunew hello_copper
cd hello_copper
cargo run

cargo cunew is the primary Copper bootstrap path. It generates a minimal source -> task -> sink application. cargo run starts the app, prints the first messages (Received message: 42, then Sink Received message: 43), and records to logs/hello-copper.copper; stop it with Ctrl-C when you've seen enough. If you have just installed, the generated project also includes helpers like just log, just cl, and just resim. To get situated, open copperconfig.ron, src/main.rs, src/tasks.rs, and justfile.

Documentation

Link to the full documentation

Python Support

Copper has two very different Python stories:

Putting Python inside a Copper task defeats the performance model Copper is built for: it adds allocations, latency, jitter, and middleware overhead, and it ruins the realtime characteristics of the stack. The intended use is to sketch one task in Python, get the behavior right, then rewrite it in Rust.

Citation

If you use Copper-rs in your research, please cite it as:

@misc{copperrs2026,
  author       = {Guillaume Binet and Copper Project contributors},
  title        = {Copper-rs: A deterministic runtime and SDK for robotics},
  year         = {2026},
  howpublished = {GitHub repository},
  url          = {https://github.com/copper-project/copper-rs},
  note         = {Version v1.0.0-rc2 or latest}
}

Project

[!NOTE] We are looking for contributors to help us build the best robotics framework possible. If you are interested, please join us on Discord or open an issue.

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.