Rooc screenshot

Rooc

Author Avatar Theme by Specy
Updated: 19 Jul 2025
54 Stars

An optimization modeling language with solvers for MILP problems

Overview

ROOC is an innovative modeling language specifically crafted for developing and solving formal optimization models. Originating from courses in Operational Research and Combinatorial Optimization, it allows users to turn complex mathematical formulations into linear models that can be tackled using various optimization techniques. ROOC’s design focuses not only on functionality but also on ease of use, making optimization accessible to a broader audience, including those who may not have extensive coding backgrounds.

The platform is highly versatile, supporting different types of linear models such as Integer, Binary, and Mixed Integer Linear Programming (MILP). With its web interface and libraries available in Rust and TypeScript, users can seamlessly implement their optimization problems or leverage built-in examples to get started.

Features

  • Formal Model Definition: ROOC allows users to define complex models using functions, constants, arrays, and graphs, ensuring a clear and structured approach to optimization.

  • Utility Functions: The language comes equipped with built-in utility functions for iterating over graphs, edges, arrays, and more, simplifying common coding tasks.

  • Error Handling: Comprehensive error logging and parameter validation features enable users to troubleshoot effectively, with error traces providing detailed insights into model issues.

  • Primitives and Operators: ROOC supports operator overloading, allowing users to redefine standard operators for custom data types, enhancing code readability and functionality.

  • Multi-Dimensional Arrays: Built-in support for constants and multi-dimensional arrays in problem definitions facilitates complex modeling scenarios.

  • User Interface: The platform features an intuitive UI for creating and managing models, coupled with automatic documentation generation in LaTeX format for seamless reporting.

  • Compilation Options: ROOC offers automatic compilation to WASM, which broadens the application’s usability across different environments.

  • Interactive Development: Advanced code completion, syntax error highlighting, and hover types improve the coding experience, making it easier to write and debug models effectively.