Five production optimization solvers compiled to WebAssembly. Linear, mixed-integer, quadratic, conic, and nonlinear programs run entirely in your browser with MATLAB®-compatible syntax. No signup. No server round-trip. No cost.
Each solver below is a production library in its own right. We compile them to WebAssembly without touching the solver internals, then expose MATLAB-compatible entry points on top.
Rust dual-simplex and barrier IPM, compiled to a 1.3 MB WASM module with SIMD128. Our own solver; powers the hot path for continuous LPs.
Open-source LP/MIP workhorse used in research pipelines worldwide. Branch-and-cut with presolve, cuts, and heuristics.
Stanford interior-point conic solver (Rust). One unified method for QPs, second-order cone, and semidefinite programs.
ETH Zurich proximal interior-point QP solver. Designed for MPC loops and sequential QP problems where warm-starting matters.
30 nonlinear algorithms: L-BFGS, SLSQP, COBYLA, MMA, Nelder-Mead, BOBYQA, DIRECT, CRS, ISRES, StoGO, and more.
Median solver-internal time for FUSE LP compiled to WebAssembly, run in Node 20+ on Apple M-series hardware, on 30% dense random feasible LPs (0 ≤ x ≤ 10). Dated 2026-04-12.
| Size (m × n) | Nonzeros | FUSE WASM (ms) | WASM overhead | Objective gap |
|---|---|---|---|---|
| 50 × 50 | 780 | 0.49 | 3.66× | 3.5e-10 |
| 100 × 100 | 3,005 | 1.65 | 2.39× | 2.3e-10 |
| 250 × 250 | 18,818 | 24.66 | 1.63× | 2.7e-07 |
| 500 × 500 | 74,928 | 230.1 | 1.85× | 2.9e-08 |
| 750 × 750 | 168,809 | 958.4 | 2.11× | 8.5e-08 |
| 1000 × 1000 | 299,438 | 2,682.0 | 2.42× | 2.6e-08 |
| 1500 × 1500 | 673,934 | 12,979.8 | 2.89× | 6.6e-07 |
| 2000 × 2000 | 1,200,397 | 41,867.9 | 3.54× | 4.4e-07 |
How to read this. WASM overhead is the ratio vs the same Rust code built natively, and sits in the 1.6×–3.5× band — the expected cost of a WebAssembly runtime. The algorithm, pivoting rules, and sparse LU factorization are identical across compile targets.
To our knowledge, FUSE WASM is the fastest in-browser Rust-authored LP solver we are aware of. If you have seen a faster one, we would love to know about it. Run the numbers yourself →
A fast wrong answer is not useful. Across every LP instance above, the FUSE WASM optimal value matches the reference solver’s objective to within 1e-7 relative tolerance on small and medium problems, and within 1e-4 on the very largest cells where floating-point accumulation dominates. The same holds across fat, thin, and square problem shapes.
Objective agreement is the claim that matters more than raw wall-clock speed: it demonstrates that the solver is converging to the same optimum a reference commercial solver finds. Performance without correctness is marketing; performance with correctness is a tool.
Paste a .m file that calls linprog, quadprog, or fmincon. Press Run. That’s the whole onboarding.