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

Optimization Engine
Build high-performance optimizers for next-generation robotics, autonomous vehicles, and other cyber-physical systems without hand-writing solver infrastructure.
Why people use OpEn
All numerical routines are written in Rust, making OpEn a strong fit for embedded targets where speed, determinism, and memory safety matter.
OpEn combines fast convergence with a practical problem formulation for nonconvex optimization, including augmented Lagrangian and penalty updates.
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.

Capabilities
Formulate your problem in Python or MATLAB, generate a Rust optimizer, and consume it over TCP, C/C++, ROS, or native Rust.
OpEn is built for real optimization workflows, from reproducible academic experiments to embedded deployments and hardware-in-the-loop tests.
The documentation covers installation, interfaces, optimal control tutorials, and end-to-end examples for robotics and autonomous systems.
Browse the DocsA short introduction to what OpEn does, how it works, and how to use it in practice.
Python OCP package
OpEn comes with a Python OCP module that facilitates the design of optimal control problems in an intuitive and straightforward way. You define the key ingredients of the problem, including stage and terminal costs, dynamics, and state or input constraints.
It is a practical starting point for building nonlinear optimal control and MPC formulations directly in Python before generating an embedded optimizer.
