Open-source, glass-box chemical process simulator

CHOUPO

The process simulator that shows its work.

Build steady, batch and controlled processes; inspect thermodynamics; fit property models; and follow the balances and nonlinear solves all the way to the answer.

Current stable release Choupo-2607 · released 2026-07-14 · GPL-3.0-or-later · C++17 and WebAssembly · no licence fee or account · releases, development line & citation

247curated pure-component records
268mixture-parameter records — NRTL, Wilson, UNIQUAC, Henry, Pitzer, eNRTL
49unit-operation models across four engines
284runnable tutorial cases

What is inside Choupo

A curated engine, counted from the release itself.

Every number here is generated from the published Choupo-2607 tree, not written by hand. See the full model catalogue for names, status and source.

247curated pure-component records
41aqueous true species and ions
2NRTL binary pairs
3UNIQUAC binary pairs
205Henry-law gas–solvent pairs
55Pitzer electrolyte pairs
7property-method implementations
284runnable tutorial cases
249golden-master regression checks
4execution engines: steady, batch, control, properties

Counts exclude READMEs, templates, generated outputs and private data — only what is active and distributed in the release. Regenerate with bin/curate/release_inventory.py.

The glass-box contract

Not just open source. Inspectable while it solves.

Choupo keeps equations, inputs, iterations, balances and provenance close together. A model is not merely a name in a dropdown: the run tells you which correlation was selected, where its parameters came from and whether the numerical problem closed.

Cases remain plain-text dictionaries on disk. The browser runs the same C++ engine through WebAssembly; it is a runner and visualiser, not a second source of process physics.

isothermalFlash | benzene / toluene | 370 K, 1 bar  (flash01)

Rachford-Rice Newton
it        V/F           |g(V)|
0     0.50000000     3.76e-02
1     0.30001863     7.82e-04
2     0.30398070     5.66e-07
3     0.30398357     2.95e-13  converged

K_benzene  1.6514  from Psat / P
K_toluene  0.6735  from Psat / P

material balance    CLOSED
energy balance      reported

Capabilities

One simulator, four kinds of engineering work.

The breadth is now larger than the old landing page suggested. These are implemented workflows with runnable cases, not a roadmap.

01 · Process flowsheets

Steady simulation and process design

Recycle networks, balances, design specifications and non-ideal separations, from first flash to multi-unit plants.

  • Flash and phase change
  • MESH distillation
  • CSTR, PFR and Gibbs
  • Heat exchange
  • Rotating equipment
  • Utilities and costing
02 · Properties

Thermodynamics before the flowsheet

Evaluate, compare and regress pure-fluid and mixture models with provenance and validity visible beside the result.

  • Gamma-phi and cubic EOS
  • Pitzer and eNRTL
  • Electrolyte speciation
  • Adsorption isotherms
  • Parameter regression
  • Transport properties
03 · Specialist operations

Solids, membranes and adsorption

Detailed workflows in areas usually compressed into opaque blocks, with inventories and transport assumptions exposed.

  • NF and RO membranes
  • Crystallisation and PBE
  • PSA and TSA
  • Fixed-bed breakthrough
  • Drying and spray drying
  • Particle separation
04 · Time

Batch, kinetics and control

Recipe-driven campaigns and continuous dynamics with fixed or adaptive integration, controllers and energy ledgers.

  • Batch reactors and stills
  • Multi-vessel recipes
  • Stiff radical kinetics
  • PID control
  • Schedules and signals
  • Campaign balances

Representative workflows

Learn with cases that expose the engineering decision.

Each case is runnable, readable and designed around a question that can be checked in its output.

Separation

Non-ideal MESH columns and reactive distillation

Move beyond shortcut columns into stagewise material, equilibrium, summation and heat equations, including azeotropic and reactive systems.

Water

RO scaling from feed chemistry to the membrane wall

Combine electrolyte speciation, activity-based saturation indices, concentration polarisation and module-by-module recovery.

Adsorption

Isotherm fitting, PSA/TSA and breakthrough

Carry one adsorption record from measured-data regression into working capacity, batch uptake and conservative fixed-bed transport.

Solids

Crystallisation with population balances

Compare MSMPR moments and finite-volume crystal-size distributions while closing dissolved, solid and campaign inventories.

Dynamics

Runaway, stiff kinetics and feedback control

See adaptive integration through a thermal event, then distinguish the plant integration grid from a fixed digital-controller sampling grid.

Browse all tutorials in Choupo

Evidence, not badges

Every credible claim needs a check beside it.

Choupo separates numerical convergence, conservation, model validation and data provenance. They are different questions and receive different verdicts.

284runnable tutorial cases, each with checkable output
Goldentutorial KPIs are checked against versioned expected results
Balancesmaterial and energy closure are reported, including declared gaps
Provenancemeasured, regressed, estimated and assumed data remain distinguishable

Every tutorial ships an expected golden-master file. bin/runTests re-runs the whole suite and flags any KPI drift or NaN/inf, so a regression is caught the moment it appears — across all 4 engines.

Choupo is educational and research software, not certified process-design or safety software. Engineering use requires independent validation of models, data and results.

No installation required

Open a real case and watch the solver work.

The browser application executes the C++ engine locally through WebAssembly. Choose a tutorial, inspect its files, run it and read the results.

Launch Choupo

Run it

Choose how to run Choupo.

The browser needs nothing installed and works everywhere. Build from source when you want the native binaries, custom cases and the regression suite.

Browser — Windows, macOS, Linux

The C++ solver is compiled to WebAssembly and runs locally in your browser tab. Nothing is installed, no account is needed and no case data leaves your machine.

Recommended way to start on any operating system.

Launch Choupo

# Nothing to install.  Open:
https://www.choupo.org/app/

# The same C++ engine as the native build,
# executed in your browser via WebAssembly.

Windows

1 · Browser — recommended to start. Just open the app; nothing to install.

2 · WSL2 — recommended for the native build, development and the regression tests.

There is no published native .exe installer. The Unix commands below run inside WSL2 (Ubuntu), not in PowerShell or CMD.

# In PowerShell (admin), then reboot:
wsl --install -d Ubuntu

# Inside the Ubuntu (WSL2) shell:
sudo apt update && sudo apt install -y git build-essential
git clone https://github.com/choupo-admin/choupo.git
cd choupo
make all

source etc/bashrc
runCase tutorials/steady/flash/flash01_benzene_toluene
bin/runTests

macOS

1 · Browser — nothing to install; open the app.

2 · Native build from source — the standard C++17 toolchain, no external libraries.

A native macOS build is not yet part of the automated test matrix; treat it as unverified (both Apple Silicon and Intel) until a workflow confirms it.

# Command Line Tools (clang + make):
xcode-select --install

git clone https://github.com/choupo-admin/choupo.git
cd choupo
make all

source etc/bashrc
runCase tutorials/steady/flash/flash01_benzene_toluene
bin/runTests

Linux

The native target. Only a C++17 compiler and GNU make are required — zero external libraries.

Read the full build guide

# Debian / Ubuntu deps:
sudo apt install -y git build-essential

git clone https://github.com/choupo-admin/choupo.git
cd choupo
make all

source etc/bashrc
runCase tutorials/steady/flash/flash01_benzene_toluene
bin/runTests

iPhone & iPad

The browser app runs in Safari and can be added to the Home Screen (Share → Add to Home Screen) to open full-screen.

Reading cases, running tutorials and inspecting results work on iPad. Building or editing flowsheets is not recommended on small phone screens.

There is no native iOS app. Choupo on iPhone and iPad means the WebAssembly build in Safari — the same engine, in the browser.

Open in Safari

# iPad / iPhone — open in Safari:
https://www.choupo.org/app/

# Share -> Add to Home Screen for a
# full-screen, offline-capable launcher.

Documentation

From first case to property architecture.

Source and issue tracker

Inspect every implementation or report a reproducible problem.

Open GitHub

Cite Choupo

Make the exact software part of the record.

Geraldes, V. (2026). Choupo: Open Chemical Process Simulator (Choupo-2607) [Computer software]. https://github.com/choupo-admin/choupo

People and governance

Independent and centrally maintained.

Choupo was conceived and created by Vítor Geraldes, chemical engineer and process-modelling researcher. The Properties Guide and Theory Guide are coauthored with Pedro Mendes and Miguel Rodrigues. Their authorship and copyright are preserved in those two works.

Suggestions, bug reports, validation evidence and data corrections are welcome. Choupo is centrally developed; external code contributions and pull requests are not accepted. Suggestions do not imply acceptance, priority or an implementation timeline.

Report a problemSuggest an improvement