MaximaLabs
About

Modernizing heavy-industry engineering

Browser-native, AI-assisted process simulation — built by engineers who understand chemical process modeling, not a wrapper around a node engine.

Feed
Distillation
Distillate
Bottoms

The real canvas engine, running live in your browser — not a screenshot.

0.18 K
DECHEMA VLE bubble-point AAD
0 sec
Desktop install time
100%
Open governing equations — no black boxes

Why MaximaLabs exists

Process simulation has run on the same desktop-installed, license-server-gated software since before most of today's engineers started their careers. Legacy desktop simulators are thermodynamically rigorous — and stuck in 2003: a multi-day onboarding course, an email thread to share a .hsc file, and a per-seat license that puts real simulation out of reach for smaller teams.

MaximaLabs exists to bring the same rigor into the browser: zero install, real-time collaboration instead of emailed files, version history instead of "final_v3_REAL.hsc," and an AI copilot that reads your actual flowsheet state — not a chatbot bolted onto the side of a 20-year-old codebase.

The legacy status quo
The MaximaLabs architecture
Single-user Windows desktop .exe
Browser-native, zero-install web application
License server queues & per-seat dongles
Instant web workspace access, no seat queue
Emailing .hsc files back and forth
Real-time multi-user editing with version history
Proprietary, closed "black box" equations
Open MESH matrices, kinetics & LaTeX equations

Built on verified thermodynamics

The solver is pure Python — NumPy, SciPy, and CoolProp for thermophysical properties, with Peng-Robinson, NRTL, UNIQUAC, and steam-table packages for phase equilibrium. The distillation column solves the same material/equilibrium/summation/energy (MESH) balances every rigorous simulator does — by default via a Newton-Jacobian simultaneous correction, with a Boston-Sullivan inside-out solve as the fallback for wide-boiling feeds where that converges more reliably; the flash engine is Rachford-Rice with successive substitution. None of it is a black box: every unit op traces back to a named method, not a proprietary correlation.

We don't ask you to take that on faith. Every thermo package is regressed against cited, published VLE datasets with a stated accuracy tolerance — pass or fail, not "looks about right."

The column MESH equations
Mi,j:;li,j1+vi,j+1+fi,jli,jvi,j=0M_{i,j}:\\; l_{i,j-1} + v_{i,j+1} + f_{i,j} - l_{i,j} - v_{i,j} = 0
Ei,j:;yi,j=Ki,j,xi,jE_{i,j}:\\; y_{i,j} = K_{i,j}\\, x_{i,j}
Sj:;sumiyi,j1=0S_j:\\; \\sum_i y_{i,j} - 1 = 0
Hj:;Lj1hj1L+Vj+1hj+1V+FjhFLjhjLVjhjVQj=0H_j:\\; L_{j-1}h^L_{j-1} + V_{j+1}h^V_{j+1} + F_j h^F - L_j h^L_j - V_j h^V_j - Q_j = 0
The same column, in Python
from flowsim.sdk import FlowSimClient, feed, unit, edge

fs = {
    "thermo_package": "nrtl", "components": ["ethanol", "water"],
    "nodes": [
        feed("FEED", flow=10, temperature=350, pressure=101325,
             composition={"ethanol": 0.3, "water": 0.7}),
        unit("COL", "distillation", n_stages=8, feed_stage=4,
             reflux_ratio=2.5, distillate_rate=3.0, pressure=101325),
        unit("D", "product"), unit("B", "product"),
    ],
    "edges": [edge("e1", "FEED", "COL"),
              edge("e2", "COL", "D"), edge("e3", "COL", "B")],
}
sim = FlowSimClient("https://maximalabs.io").run_and_wait("demo", fs)

Stop fighting legacy software. Build your first flowsheet in 60 seconds.