Development Roadmap
This document serves as the evolving roadmap for RunMat to track the progress of the project towards the 1.0 release.
Vision
RunMat is a fast MATLAB-compatible runtime with an open-source core. Same syntax engineers have used for decades, with a modern stack underneath: Rust, a JIT compiler, and automatic GPU acceleration. RunMat runs as a CLI, in the browser via WebAssembly, and (soon) as a native desktop app. We're building the foundation first — a runtime engineers can adopt without workflow changes or procurement headaches — with richer tooling and assistance for math and physics work to follow.
Current Shape
- CLI — Install and run
runmatin the terminal; REPL, script execution, Jupyter kernel. - Browser — Live at runmat.com/sandbox; full IDE with code and notebook editors, GPU-accelerated plotting, variable inspector, and file management — all running locally in the browser via WebAssembly and WebGPU.
- Desktop app — In development; will offer a native-style experience, local project management, and optional integrations.
Towards 1.0
The core language and runtime are complete. The major remaining items are:
- The package manager needs to be implemented.
- The JIT currently optimizes a subset of the language, with an interpreter fallback for operations that are currently not implemented in the JIT. Full JIT coverage will be implemented before the 1.0 release.
- Continued expansion of built-in function coverage. RunMat ships 400+ built-in functions across arrays, linear algebra, FFT/signal processing, statistics, plotting, strings, and I/O. Additional functions continue to be added based on user needs.
The below tracks the progress of the project towards the 1.0 release to date.
Milestone P0 - Bootstrapping
- Expand lexer to cover MATLAB operators, keywords and comments.
- Introduce
runmat-parsercrate producing an AST. - Basic REPL that tokenizes input and prints tokens.
- Set up CI with
cargo fmtandcargo check.
Milestone P1 - Language Core
- Complete parser with precedence rules and matrix syntax.
- Extend parser to support control flow, function definitions and array indexing so that typical MATLAB files can be parsed without errors.
- High-level IR (
runmat-hir) with scope and type annotations. - Simple interpreter running on an unoptimised bytecode (
runmat-vm). - Headless plotting backend emitting SVG/PNG.
- Jupyter kernel communication skeleton.
Milestone P2 - Performance Features
- Cranelift-based JIT (
runmat-turbine). - BLAS/LAPACK bindings and array primitives (
runmat-runtime). - Generational GC with optional pointer compression (
runmat-gc). - Snapshot creator to preload the standard library (
runmat-snapshot). - v0.1 release.
Milestone P3 - User Experience
- Full language coverage (
/docs/language-coverage). - v0.2 release.
- Full standard library pass for canonical built-ins ((arrays, linalg, FFT/signal, stats, strings, I/O, ...).
- Implement LSP server.
- Implement VSCode / Cursor extension.
- Complete Accelerate (GPU) support.
- Finish plotting library integration.
- Implement package manager.
Milestone P4 - Browser, App & Sandbox
- Compile runtime to WebAssembly with WebGPU acceleration.
- Deploy sandbox web app with full IDE experience.
- Service worker plotting with GPU-accelerated rendering.
- Cloud infrastructure (GCP, Terraform, Docker Compose).
- Organizations, projects, and memberships.
- Notebook editor with markdown and code cells.
- RunMat Agent v1 — built-in agent with streaming and persisted/replayable sessions. Executes code in the runtime, inspects workspace variables and plot output, proposes reviewable diffs for script adaptation (unsupported builtins, command-form cleanup, compatibility-mode prep), and operates under policy-gated tool controls. Provider-agnostic model routing.
- Desktop app with native experience and local project management.