A Python-based process simulation framework for coupling different simulation engines.

Model, plan, and solve process flowsheets in Python.

Processforge brings an equation-oriented solver, dynamic simulation, and a plan/apply workflow to steady-state and transient process engineering — with versioned snapshots and multiple backends.

processforge — terminal

Core capabilities

Built for process engineering workflows

Plan / Apply Workflow

Validate flowsheets, preview structural diffs, and apply changes with warm-start and automatic homotopy fallback.

Equation-Oriented Solver

Global Newton-Raphson with Armijo line search. Pluggable backends: SciPy, Pyomo/IPOPT, and CasADi.

Convergence Guardrails

Automatic rollback to the last good snapshot and divergence reports when solves fail.

Dynamic Simulation

ODE time-marching for tank-based flowsheets with sequential-modular propagation and Wegstein convergence.

Modelica & FMU Export

Transpile flowsheets to native Modelica source and compile to Model Exchange or co-simulation FMUs.

JSON Flowsheet DSL

Declarative configuration with schema validation, unit connectivity checks, and automatic recycle detection.

Who it's for

Built for the people who design, simulate, and ship process systems

Who it's for

  • Process engineers building steady-state and dynamic flowsheet models.
  • Simulation developers who need a Python-native, scriptable solver backend.
  • Researchers coupling thermal, hydraulic, and custom unit models in one framework.

What it can do for you

  • Ship faster with a declarative JSON DSL and pf init → plan → apply workflow.
  • Trust convergence via snapshot versioning, warm starts, and automatic rollback.
  • Pick your backend — SciPy, Pyomo/IPOPT, or CasADi — without rewriting the model.

Get started

Install from PyPI

pip install processforge