ROOC

A language and browser editor for linear and mixed integer optimization.

About ROOC

In ROOC, you describe an optimization problem with an objective, constraints and variables. The web editor solves the model in your browser using HiGHS or microlp.

Models can include data, sets, graphs and iteration. You can inspect each stage of compilation, see the linear model passed to the solver, and export it in CPLEX LP format.

ROOC is also available as the rooc Rust crate and the @specy/rooc npm package. Both have type safe builders for defining models in code.

Features

Modeling language

Define objectives and constraints using sums, indexed constraints, boolean logic, abs, min and max.

Data, sets and graphs

Keep data in the model and iterate over arrays, sets, graph nodes and edges.

Solvers in the browser

Run HiGHS or microlp in the browser, without a local installation.

Compilation steps

Inspect the output of each stage, from source code to the linear model sent to the solver.

CPLEX LP export

Export the linear model in CPLEX LP format for use with other solvers and tools.

Rust and TypeScript libraries

Define and solve models in code with the type safe builders in rooc and @specy/rooc.

From the blog

Other apps