Optimization Engine | OpEn

OpEn logo

Optimization Engine

Fast and accurate embedded nonconvex optimization

Build high-performance optimizers for next-generation robotics, autonomous vehicles, and other cyber-physical systems without hand-writing solver infrastructure.

Core languageRust

Primary usesMPC, MHE, Robotics

InterfacesPython, MATLAB, C/C++, ROS, TCP

Embeddable

All numerical routines are written in Rust, making OpEn a strong fit for embedded targets where speed, determinism, and memory safety matter.

Accurate

OpEn combines fast convergence with a practical problem formulation for nonconvex optimization, including augmented Lagrangian and penalty updates.

Fast

Benchmarks and applications show sub-millisecond performance in the right settings, enabling demanding control and estimation loops.

Easy code generation

Install OpEn in Python with pip, model your optimization problem with CasADi, and generate a solver that you can run through TCP, C/C++, ROS, or Rust.

The docs in Installation and Python Interface walk through the flow end to end.

Try it In Colab

Animated overview of OpEn code generation

Design and Deploy

Formulate your problem in Python or MATLAB, generate a Rust optimizer, and consume it over TCP, C/C++, ROS, or native Rust.

Benchmarks

OpEn is built for real optimization workflows, from reproducible academic experiments to embedded deployments and hardware-in-the-loop tests.

Well Documented

The documentation covers installation, interfaces, optimal control tutorials, and end-to-end examples for robotics and autonomous systems.

Browse the Docs

Presentation at IFAC 2020

A short introduction to what OpEn does, how it works, and how to use it in practice.