Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

FlowState User Guide

FlowState is a desktop process simulator for batch, continuous and hybrid plants. It solves material and energy balances with phase equilibrium, kinetics and separations, schedules the recipe, sizes and costs the equipment, evaluates the economics, and assesses the environmental footprint, all in one application that re-simulates on every edit.

A continuous monoclonal antibody process from the Examples Library.

This guide is written for engineers who use the app. It follows the menus and labels you see on screen, so menu paths are written like File ▸ Examples Library….

What is in this guide

ChapterRead it to…
Installing FlowStateinstall on Windows, macOS or Linux
Your first flowsheetbuild the “Getting Started” process step by step
The workspace tabsunderstand the Flowsheet, Streams, Equipment, Schedule, Resources, Economics and Environment tabs
Components, mixtures and property methodsregister components, define media and buffers, choose a thermodynamic model
Unit procedures and operationsfind the right one of the 98 unit procedures and build recipes
Schedulingset batches per year, cycle time, campaigns and equipment sharing
Economicsestimate capital and operating cost, profitability, minimum selling price and sensitivity
Environment and LCAreport waste and emissions and run a life-cycle assessment with SimaPro exchange
Examples Libraryopen one of the 38 ready-to-run models and see how they compare with the published studies
Importing .spf project filesbring existing project files into FlowState
Reports and exportsproduce HTML, Word, Excel, CSV and SVG output and batch sheets
Command line and automation APIscript FlowState with flowstate-cli, Excel or Python
Keyboard shortcutswork faster
FAQ and supportget help

Key ideas

  • A process is a flowsheet of unit procedures connected by streams. Each unit procedure holds a recipe: an ordered list of operations (charge, heat, react, filter, transfer out…) carried out in one equipment item.
  • Simulation is automatic. There is no “run” button. Every change re-solves the balances, the schedule, the economics and the environmental results; a typical process solves in well under a millisecond. The status button at the right of the toolbar shows ✔ Solved, ⚠ Warnings or ⛔ Errors.
  • Everything is per batch for a batch plant (per hour for a continuous plant), and annualised with the number of batches per year from the schedule.
  • Your data stays local. FlowState has no account and no telemetry. Projects are ordinary .flow files (JSON) that you can keep under version control.

Results are engineering estimates. Verify them independently before relying on them for design, investment, regulatory or safety decisions.

Installing FlowState

FlowState 1.0 is in a controlled release. Packages for every platform are available to early-access users, who receive download instructions with their invitation. To request one, use the early-access form on the home page.

PlatformPackageRequirements
WindowsMicrosoft Store (“FlowState Process Studio”), installer, or portable .zipWindows 10 or 11, x64
macOSUniversal disk image (.dmg)macOS 11 Big Sur or later, Apple silicon or Intel
Linux.deb packageDebian 12+ or Ubuntu 22.04+, amd64
LinuxFlatpak bundleAny distribution with Flatpak, x86_64

FlowState draws its interface with the GPU (wgpu), so an up-to-date graphics driver gives the best results. Every package contains two programs: the desktop app FlowState and the command-line tool flowstate-cli (see Command line and automation API).

Windows

Microsoft Store

In the Microsoft Store, the app is listed as FlowState Process Studio, because the name “FlowState” alone was already taken in the Store. Once installed, the app calls itself FlowState everywhere. During early access the listing is private: open the direct Store link from your invitation, then click Get or Install.

The Store package:

  • appears in the Start menu and registers .flow files;
  • includes flowstate-cli, which you can run from any terminal;
  • is updated automatically by the Store.

Installer

Run FlowState-1.0.0-windows-x64-setup.exe. The wizard asks whether to install for you only (no administrator rights needed) or for all users, and offers these options:

  • Create a desktop shortcut
  • Open FlowState process files (.flow) with FlowState: the file association
  • Add the flowstate-cli command-line tool to PATH: off by default

The uninstaller (Settings ▸ Apps, or the Start-menu entry) removes everything the installer added. A portable .zip is also available: unzip it anywhere and run FlowState.exe.

macOS

  1. Open FlowState-1.0.0-macos-universal.dmg.
  2. Drag FlowState to the Applications folder.
  3. Start FlowState from Launchpad or Applications.

The app is a universal binary that runs natively on Apple silicon and Intel Macs. It is signed with a Developer ID and notarised by Apple, so Gatekeeper opens it without warnings. The app registers the .flow document type. The command-line tool is inside the bundle; to use it from a terminal, add an alias or a symbolic link:

sudo ln -s /Applications/FlowState.app/Contents/MacOS/flowstate-cli /usr/local/bin/flowstate-cli

Linux

Debian and Ubuntu (.deb)

sudo apt install ./flowstate_1.0.0-1_amd64.deb
flowstate          # desktop app (also in your applications menu)
flowstate-cli --help

The package installs /usr/bin/flowstate and /usr/bin/flowstate-cli, a desktop entry, AppStream metadata, the .flow MIME type and icons. apt pulls in the runtime libraries (X11/Wayland and GL/Vulkan) automatically. Remove it with sudo apt remove flowstate.

Flatpak

flatpak install --user FlowState-1.0.0-x86_64.flatpak
flatpak run uk.yaylali.FlowState

The app id is uk.yaylali.FlowState. The sandbox grants access to Wayland/X11, the GPU, your home folder (for process files) and the network (only used for the optional local automation API).

First start

On first launch FlowState shows the Welcome screen, with buttons to start a New blank process, Open process file… or Browse the examples library…, and a card for each built-in example process. You can reopen it at any time from Help ▸ Welcome screen.

The default theme is dark. Switch with View ▸ ☀ Light theme or the sun/moon button at the right of the toolbar; the choice is remembered.

FlowState keeps a small settings file (theme, recent files, automation options) in %APPDATA%\FlowState\settings.json on Windows and ~/.config/FlowState/settings.json on macOS and Linux. It is never transmitted. See the privacy policy.

Command-line start options

The desktop app accepts a few options, useful for shortcuts and scripts:

OptionEffect
FlowState my.flowOpen a process file (legacy .spdx files open too)
--example <id>Open an Examples Library model by id, for example --example aspirin
--sample <n>Open built-in sample n (0 = Getting Started)
--libraryOpen the Examples Library window
--tab <n>Start on workspace tab n (0 = Flowsheet … 6 = Environment)
--select <name>Select a procedure or stream by name
--lightUse the light theme for this session
--aboutShow the About window

Your first flowsheet

This chapter walks through the Getting Started example: a batch reaction of A and B in heptane to give product C, followed by cake filtration and washing. It is the smallest complete FlowState process and touches every part of the workflow: components, procedures, streams, operations, scheduling and economics.

Open the finished example

Before building it yourself, open the finished model to see where you are heading:

  • on the Welcome screen, click Open “Getting Started (A + B → C)”; or
  • choose File ▸ Examples Library…, select the Tutorials category and click Open example.

The flowsheet has two unit procedures:

TagProcedureEquipmentRecipe
P-1In a ReactorR-101, stirred reactorCHARGE-SOLVENT, CHARGE-A, CHARGE-B, REACT-1, TRANSFER-TO-PFF
P-2Plate & Frame FiltrationPFF-101FILTER-1, CAKE-WASH-1, TRANSFER-OUT-1

Per batch, about 820 kg of heptane, 50 kg of A and 40 kg of B give about 55.4 kg of C, with 2.5 kg of A and 32.1 kg of B left over. The reactor is the bottleneck, with a cycle time of 10.75 h, which allows 736 batches per year in 7,920 operating hours.

Build it step by step

1. Start a new process

Choose File ▸ New (Ctrl+N). A new process contains the components Water, Oxygen, Nitrogen and Carbon Dioxide. Open Tasks ▸ Process settings & scheduling… (or the ⏱ Scheduling toolbar button), give the process a title and check that Plant mode is Batch.

2. Register the components

Open Tasks ▸ Pure components… (toolbar ⚛ Components).

  1. Click + New custom four times and rename the new rows Heptane, A, B and C.
  2. Enter molecular weights: Heptane 100.2, A 150, B 25, C 175.
  3. Enter prices in the Price $/kg column (Heptane 1, A 10, B 15) and a Sell $/kg of 200 for C, so the economics have something to work with.

Many common substances (water, solvents, sugars, salts, biomass, proteins) are available from + Add from library instead; see Components, mixtures and property methods.

3. Place the unit procedures

The Unit Procedures library is on the left of the Flowsheet tab.

  1. Type reactor in the search box, then drag “In a Reactor” onto the canvas. Alternatively, click the item once to arm it and click on the canvas to place it. A toast confirms Added In a Reactor.
  2. Search for plate and place Plate & Frame Filtration to the right of the reactor.

Each procedure gets a tag (P-1, P-2) and an equipment tag, and comes with a default recipe. For “In a Reactor” this is CHARGE-1, HEAT-1, REACT-1, COOL-1, TRANSFER-OUT-1 and CIP-1.

You can also add procedures from the Unit Procedures menu, or by right-clicking the canvas and choosing Add unit procedure.

4. Connect the streams

Ports are the small circles on the procedure icons: inlets on the left, outlets on the right.

  • Feeds: drag from an inlet port of the reactor into empty space. This creates a feed stream with a free end. Create three feeds, for heptane, A and B.
  • Intermediate stream: drag from the reactor’s outlet port to the filter’s inlet port.
  • Products: drag from each filter outlet into empty space to create the cake, filtrate and wash-liquor streams. Add one more feed into the filter for the wash heptane.

Click a stream to edit it in the Inspector on the right:

  • rename it (for example Heptane, Cake);
  • set its Classification (Raw material, Revenue, Waste…), also available by right-clicking the stream;
  • for feeds, enter the Composition (per batch): click + Add component… and type the mass, for example 820 kg of Heptane, 50 kg of A and 40 kg of B.

5. Edit the reactor recipe

Click the reactor. The Inspector shows collapsible sections: Procedure, Scheduling & sharing, Vent & emissions, Equipment, Consumables, labor & hybrid operation, Operations and Results.

In Operations, delete the default operations you do not need with ✕, reorder with ⏶ and ⏷, and use + Add operation to add new ones. For this process the recipe is:

  1. Charge heptane, then A, then B. Select each charge operation and pick its feed stream.
  2. Stoichiometric Reaction: A + B → C on a mass basis, with an extent of 95 % of the limiting reactant and a process time of 6 h.
  3. Transfer Out of the whole contents into the filter feed stream.

Each operation has a Scheduling block with setup time, process time, turnaround, start condition and labour. The tutorial uses 5 min setup and 40, 20 and 30 min for the three charges.

6. Watch it simulate

There is no run button. After each edit FlowState re-solves the process and the status bar shows solved in … ms, the batch time, cycle time and batches per year (and the unit cost and NPV when economics are on). Problems appear in the toolbar status button as ⚠ Warnings or ⛔ Errors. Click it to open the Simulation messages panel, then click a message’s source to jump to the procedure or stream concerned.

7. Look at the results

Use the workspace tabs, or Ctrl+1 … Ctrl+7:

  • Streams: the per-batch material balance for every stream, including C in the cake.
  • Equipment: reactor and filter sizes, utilisation and purchase cost.
  • Schedule: the Gantt chart; R-101 is marked as the bottleneck.
  • Economics: capital, operating cost, unit production cost and NPV.
  • Environment: waste streams, E-factor and VOC from the heptane.

8. Save

Choose File ▸ Save (Ctrl+S). Processes are saved as .flow files. To share results, export a report with File ▸ Export HTML report… (see Reports and exports).

Where to go next

The workspace tabs

The FlowState window has a menu bar (File, Edit, Unit Procedures, Tools, Tasks, View, Help), a toolbar, seven workspace tabs in the centre, the Inspector on the right and a status bar at the bottom. The Unit Procedures library on the left appears on the Flowsheet tab.

#TabShortcutShows
1⛶ FlowsheetCtrl+1The process diagram
2☰ StreamsCtrl+2Stream table (material balance)
3⚙ EquipmentCtrl+3Sizing, utilisation, purchase cost
4▤ ScheduleCtrl+4Gantt chart, cycle time, bottleneck
5📈 ResourcesCtrl+5Utility, power and labour profiles
6$ EconomicsCtrl+6Capital, operating cost, profitability
7♻ EnvironmentCtrl+7Waste, emissions, LCA

The toolbar and status bar

The toolbar gives one-click access to New, Open, Save, Undo and Redo; the project dialogs ⚛ Components, ⚗ Mixtures, 🔥 Resources, ⏱ Scheduling and $ Economics; and the exports 📄 Report and 📋 Batch Sheet. On the right are the light/dark theme toggle and the simulation status (✔ Solved, ⚠ Warnings or ⛔ Errors).

The status bar shows the message counts, the solve time and recycle iterations (“recycle not converged” if a loop fails), the batch time, cycle time and batches per year, and, when economics are evaluated, the unit cost and NPV. Its right end shows Batch plant or Continuous plant.

The Inspector

The Inspector edits whatever is selected:

  • Nothing selected: a process overview (number of procedures, streams and components, batch and cycle time, batches per year, unit production cost) and a ⚙ Process settings… button.
  • A unit procedure: its name, section and operating mode, scheduling and sharing, vent and emission model, equipment (design or rating mode, size, units in parallel, staggered sets, cost model), consumables and labour, the recipe of Operations and the Results.
  • A stream: name, classification, price or disposal cost, temperature and pressure, the composition of feeds (pure components or a stock mixture), and the calculated mass, volume, temperature, vapour fraction, second liquid phase and bubble/dew points.

1. Flowsheet

The canvas is where you build the process.

  • Add procedures by dragging from the library, clicking an item and then the canvas, using the Unit Procedures menu, or right-clicking the background ▸ Add unit procedure. The library search matches names, categories and descriptions.
  • Connect by dragging from a port to another port, or onto a procedure body to use a free port. Drag from a port into empty space to create a feed or product stream with a free end; free ends can be moved.
  • Navigate with the mouse wheel (zoom 20–300 %) and by dragging the background, or with the middle or right button. Press F or ⛶ Fit to fit the flowsheet to the window.
  • The overlay at the top right has zoom buttons, Fit, and the toggles Grid and Flows (stream flows on labels).
  • Right-click a procedure for Duplicate, Delete and Show in schedule; right-click a stream to change its Classification, reset a free end or Delete stream.
  • Procedures are coloured by section, and badges mark the bottleneck and procedures with warnings.

2. Streams

The Stream Table is the per-batch material balance for every stream. Rows show the classification, temperature, total mass, volume, density, enthalpy, vapour fraction (mass), bubble and dew points, and the mass of each component. Click a column header to select that stream. ⬇ Export CSV saves the table.

3. Equipment

Lists every equipment item with its tag, procedure, type, mode, size, number of units, utilisation, occupancy and purchase cost, with summary cards for the number of items, the listed purchase cost and the estimated unlisted equipment. Shared equipment is shown once, as “shared · counted in …”.

4. Schedule

The Recipe Schedule shows the operations Gantt chart over several batches, with cards for Batch time, Cycle time, Bottleneck, Batches / year and Operating time used. Switch between Operations and Equipment occupancy, set the number of Batches to draw, and zoom. Bars are coloured by operation family (Transfer, Thermal, Reaction, Separation, Cleaning, Hold); the bottleneck row is red. Click a bar to select its procedure and operation. See Scheduling.

5. Resources

Demand profiles for labour, electric power and heat-transfer agents over consecutive batches, with per-batch cards and limit lines. Below the chart:

  • Annual utility consumption: per batch and per year, and cost per year, for every agent and electricity;
  • Availability limits: peak demand and hours over each limit;
  • Storage-unit inventories, if you have defined storage units under Tasks ▸ Storage units & resource limits….

6. Economics

The Economic Evaluation dashboard: total capital investment, operating cost, revenues, unit production cost, gross margin, return on investment, payback time and NPV (with IRR). Charts show the direct-fixed-capital breakdown, the annual operating cost and the cash flow; tables give capital investment, profitability, costs by section and the year-by-year cash-flow analysis. Further cards cover the minimum selling price, consumables, credits, labour and QC, and raw materials and revenues. See Economics.

If economics are switched off for the process, the tab shows Cost evaluation is off for this process and a Turn on cost evaluation button.

7. Environment

The Environmental Impact view lists total waste, E-factor, COD and BOD₅, suspended solids, VOC emitted, CO₂ vented and water intensity, with a per-stream table and a waste chart. Below it are the Life-cycle assessment section and the water-quality and energy summary. See Environment and LCA.

View options

The View menu switches tabs and toggles the Messages panel, the Flowsheet grid, Stream flows on labels and the dark/light theme.

Components, mixtures and property methods

Pure components

Open Tasks ▸ Pure components… or the ⚛ Components toolbar button. The Pure Components window lists every component registered in the process with its physical and economic properties.

  • + Add from library searches the built-in component library of about 70 substances: water and WFI, gases (oxygen, nitrogen, CO₂, air, hydrogen, methane, ammonia), sugars and polyols, organic acids, salts, acids and bases, buffers, nutrients (yeast extract, corn steep liquor, peptone), biomass and cells (E. coli, CHO cells, yeast), proteins (mAb, insulin, host cell protein), common solvents and more. About 25 of them carry critical constants and UNIQUAC parameters for the equation-of-state and activity models.
  • + New custom adds a blank component (named “Component N”) that you fill in yourself.

A new process starts with Water, Oxygen, Nitrogen and Carbon Dioxide. Water, Oxygen and Nitrogen cannot be removed, because utilities and aeration rely on them.

Component properties

GroupColumns
IdentityName, Formula, Phase (liquid, solid or gas)
PhysicalMW, density ρ (kg/m³), Cp (kJ/kg·K), normal boiling point Tb (°C), heat of vaporisation ΔHv (kJ/kg)
Vapour pressureAntoine A, B, C; vapour Cp; Henry constant (bar)
Equation of stateTc (K), Pc (bar), acentric factor ω, molar volume, dρ/dT
Activity modelsUNIQUAC r and q
EconomicPrice $/kg (purchase), Sell $/kg (revenue), Waste $/kg (disposal)
EnvironmentalThOD, BOD/COD ratio, VOC flag, Biomass flag
SolidsSolubility (for crystallisation)

Further per-component data for wastewater and energy (TKN, TP, TOC, lower heating value, acid/base behaviour) is edited under Tasks ▸ Energy, heat integration & wastewater… on the Component data tab.

Stock mixtures

Media, buffers and cleaning solutions are defined as stock mixtures: named mass-fraction compositions with a price. Open Tasks ▸ Stock mixtures… or ⚗ Mixtures.

  1. Click + New mixture (it starts as 100 % Water).
  2. Rename it, set its Price $/kg, and use + Add component… to add ingredients with their mass fractions.

If the fractions do not add up to 100 %, FlowState warns you and normalises them when the mixture is used. Mixtures belong to the process; for example, the Recombinant Enzyme example defines an Elution Buffer (97 % water, 3 % NaCl) and a CIP Caustic (0.5 % NaOH).

To use a mixture, select a feed stream and pick it under Composition (per batch) ▸ Stock mixture; then enter the Total mass instead of individual component masses.

Resources: heat-transfer agents, power and labour

Tasks ▸ Resources (utilities, labor)… (toolbar 🔥 Resources) defines:

  • Heat-transfer agents: name, heating or cooling duty, supply and return temperatures, Cp, latent heat and cost per tonne. Add more with + Add agent.
  • Electricity: price per kWh.
  • Operating labor: basic rate, benefits and overhead, giving the effective rate.

Property methods

Open Tasks ▸ Property methods & convergence…. The Property Methods window sets the thermodynamic model for the whole process.

Phase-equilibrium model

ModelUse it for
Ideal (Raoult) (default)Raoult’s law with Antoine vapour pressures; similar, non-polar mixtures
NRTLStrongly non-ideal liquids, azeotropes and partially miscible liquids
WilsonStrongly non-ideal but fully miscible liquids
UNIQUACVLE and LLE (needs r and q for each component)
Peng–RobinsonCubic equation of state (needs Tc, Pc, ω): gases, hydrocarbons, high pressure
Soave–Redlich–KwongAs Peng–Robinson

Options

OptionEffect
Second liquid phase (VLLE): Allow liquid–liquid splitThree-phase flash; NRTL and UNIQUAC only
Liquid density: Temperature dependentLiquid density varies with temperature (off by default)
Vapor phase (γ–φ): Ideal gas, Peng–Robinson or SRKVapour fugacities for activity models
Liquid corrections: Poynting factor, Excess enthalpyCorrections for activity models
Carboxylic acids: Vapor dimerizationChemical-theory association of acetic and formic acid in the vapour
EOS enthalpy: Residual (departure) enthalpyDeparture enthalpy for PR and SRK

Binary interaction parameters

The Binary interaction parameters table lists each pair (component i, component j) with aij, aji, bij, bji (K), the NRTL non-randomness α, the equation-of-state kij, and the source. Load built-in parameters fills the table from FlowState’s library; + Add pair adds your own. A few built-in pairs are FlowState’s own fits and are marked as such in the Source column.

Excess enthalpy derived from VLE-fitted parameters is only qualitative. Carboxylic acids dimerise only with themselves.

Recycle convergence

The same window controls the recycle solver. FlowState chooses tear streams automatically; you can mark a stream as Preferred tear stream in its Inspector.

  • Tolerance (default 10⁻⁶) and Max iterations (default 500).
  • Acceleration: Wegstein (default) or Direct substitution.
  • Initial tear guess: current state, zero flows, or custom tear guesses.
  • Convergence test: component flows or total flow only, optionally with temperature.
  • A residual plot shows how the last solve converged.

Design specs

Tasks ▸ Design specs (controllers)… adjusts one variable until a result reaches a target, for example a feed rate that gives a required product purity. Choose the variable to Vary, its Bounds, the result to watch (Until … Equals) and the method (Secant or Brent (bracket = bounds)).

Unit procedures and operations

A unit procedure is a processing step carried out in one equipment item (or a set of identical items in parallel). It holds a recipe: an ordered list of operations. A batch reactor procedure might charge solvent, charge reactants, heat, react, cool, transfer out and clean in place, all in the same vessel.

FlowState has 98 unit procedures in 15 categories. Each is either Batch or Continuous; the library shows the equipment type and the mode under each name, for example “Stirred Reactor · Batch”. Find them in the Unit Procedures library on the Flowsheet tab (with search), in the Unit Procedures menu, or by right-clicking the canvas.

The catalogue

Vessel Procedures (9)

In a Reactor · In a Blending Tank · In a Receiver · In a Crystallizer · In a Single-Use Mixer · In a Storage Bag (all batch) · Continuous Stirred Reactor (CSTR) · Plug-Flow Reactor (PFR) · Equilibrium Reactor (continuous)

Bioreactions (4, batch)

In a Fermentor · In a Seed Fermentor · In an Airlift Fermentor · In a Single-Use Bioreactor

Centrifugation (6)

Disk-Stack Centrifugation · Decanter Centrifugation · Hydrocyclone · Three-Phase Centrifugation (continuous) · Basket Centrifugation · Basket Centrifugation with Wash (batch)

Filtration (19)

Microfiltration · Ultrafiltration · Diafiltration · Depth Filtration · Nutsche Filtration · Plate & Frame Filtration · Dead-End Filtration (batch) · Rotary Vacuum Filtration · Reverse Osmosis · Nanofiltration · Electrodialysis · Bipolar-Membrane Electrodialysis · Electrolysis Cell · Clarification · Thickening · Screening · Belt Filter Press · Screw Pressing · Granular Media Filtration (continuous)

Chromatography / Adsorption (7)

Packed-Bed Chromatography · Ion Exchange · Mixed-Bed Ion Exchange · Carbon Adsorption (GAC) (batch) · PCC Chromatography · SMB Chromatography · Pressure Swing Adsorption (continuous)

Cell Disruption (1)

Homogenization

Heat Exchange (4, continuous)

Heating · Cooling · Continuous Heat Sterilization · Heat Exchanger (2 streams)

Mixing / Splitting (6, continuous)

Mixing · Bulk Flow Splitting · Component Splitting · Flow Distribution · Flow Adjustment · Spec-Driven Mixing

Drying (9)

Spray Drying · Rotary Drying · Drum Drying · Fluid-Bed Drying · Sludge Drying (continuous) · Tray Drying · Freeze Drying · Agitated Filter-Dryer · Rotary Vacuum Drying (batch)

Distillation / Evaporation (8)

Batch Distillation (batch) · Shortcut Distillation · Rigorous Distillation · Flash · Evaporation · Multi-Effect Evaporation · Liquid–Liquid Extraction · Liquid–Liquid Decanting (continuous)

Formulation & Packaging (2, batch)

Filling · Packaging

Storage & Transport (4)

Transport · Storage (batch) · Pumping · Generic Box (continuous)

Gas Handling (4, continuous)

Gas Compression · Fan / Blower · Vacuum Pumping · Air Filtration

Energy & Environment (8, continuous)

Steam Generator (Boiler) · Steam Turbine · Engine Generator (CHP) · Aeration Basin · Anaerobic Digester · Raceway Pond · Evaporation Pond · pH Adjustment

Crystallization & Solids Handling (7, continuous)

Continuous Crystallization · Grinding / Milling · Shredding · Belt Conveying · Screw Conveying · Silo Storage · Hopper / Bin

Procedure settings

Select a procedure to edit it in the Inspector.

  • Procedure: name, description, section, operating mode (batch or continuous), cycles per batch and start offset.
  • Scheduling & sharing: cycle With recipe or Independent (with its own period), and run in Own equipment or Share another procedure’s equipment.
  • Vent & emissions (vessels): emission model Off, EPA (displacement, heating, sweep) or Raoult headspace venting, vent policy and an optional vent condenser.
  • Equipment: tag and type; Design mode (FlowState sizes the equipment) or Rating mode (you set the size and FlowState checks it); units in parallel, staggered sets, maximum working volume and maximum size per unit. The Cost model sets purchase cost from base size, base cost and scaling exponent, or a cost override, plus material and installation factors. Flags include Use across batches, Omit from scheduling, and the CIP skid or SIP panel to use.
  • Consumables, labor & hybrid operation: single-use equipment and bag cost, consumables from the library, labour category, QC tests, and surge tanks for hybrid batch/continuous trains.

Operations

The Operations section lists the recipe. Click an operation to edit it; use ⏶/⏷ to reorder and ✕ to delete. + Add operation opens a menu grouped by purpose. The groups depend on the equipment type.

In vessels (reactors, tanks, fermentors, bags):

GroupOperations
Material transferCharge, Transfer In, Transfer Out, Pull Out, Pull In (to target)
Thermal & mixingHeat, Cool, Agitate, Hold
ReactionStoichiometric Reaction, Stoichiometric Fermentation, Kinetic Fermentation, Kinetic Reaction (general), Crystallize
SeparationEvaporate, Flash (VLE), Batch Distillation
CrystallizationCooling, evaporative and antisolvent crystallization, reactive precipitation
Reactions & reactorsFed-batch Fermentation (Monod), Continuous Culture (chemostat / perfusion), Cell Disruption (multi-product), Reactor Model on Contents (CSTR / PFR / equilibrium)
CleaningCIP, SIP, Purge
Energy & environmentpH Regulation

In other equipment:

GroupOperations
SeparationCentrifuge, Membrane Filtration, Cake Filtration, Cake Wash, Chromatography, Component Split, Distill (component split), Shortcut Distillation (FUG), Rigorous Distillation, Liquid–Liquid Extraction, Flash (VLE), Multi-Effect Evaporation, Dry, Freeze Dry
Membranes, sorption & electrochemicalDead-End (Cartridge) Filtration, Reverse Osmosis, Nanofiltration, Ion Exchange, Mixed-Bed Ion Exchange, Carbon Adsorption (GAC), SMB Chromatography, Pressure Swing Adsorption, Electrodialysis, Bipolar-Membrane Electrodialysis, Electrolysis
Flow handlingMix, Bulk Split, Heat Exchange, Homogenize, Pump, Fill, Store, Transport, Transfer Out (time only)
Gas & flow controlGas Compression, Fan / Blower, Vacuum Pumping, Gas Filtration, Flow Distribution, Flow Adjustment (make-up / purge), Spec-Driven Mixing
Crystallization & dryingContinuous crystallization; rotary, drum/Yankee, fluid-bed, filter-dryer, rotary vacuum and sludge dryers (to a target LOD)
Solids handlingMechanical separation, Size reduction (Bond), Conveying, Bulk solids storage, Packaging
Reactions & reactorsContinuous Reaction (CSTR), Plug-Flow Reaction (PFR), Equilibrium Reaction, Stoichiometric Reaction (conversion), Cell Disruption (multi-product)
CleaningCIP, SIP, Purge

New operations are named after their type, for example HEAT-2. Each operation editor has the operation’s own parameters, its Operating conditions, a Scheduling block (see Scheduling) and its Results.

Modelling notes

  • Reactions are written on a mass or molar basis with a mass-balance check. Extents can be set by conversion of the limiting reactant, final concentration, residual amount or equilibrium (van ’t Hoff K), and several reactions run in series or in parallel. Heat of reaction is per kg or mol of the reference component, or per kg O₂ for fermentations.
  • Kinetics cover power-law, saturation and inhibition terms with Arrhenius temperature dependence, integrated adaptively and stopped on time, concentration or conversion. Profiles are plotted in the operation editor.
  • Fermentation supports Monod kinetics, fed-batch, set-point and titrant feeds, chemostat and perfusion, oxygen uptake with a kLa check and air demand, and intracellular products released by cell disruption.
  • Distillation: rigorous MESH columns (bubble-point, sum-rates and Newton–Raphson methods, with automatic fallback), multiple feeds and side draws; FUG shortcut design or rating; multi-cut batch distillation.
  • Evaporation: multi-effect evaporators with MVR/TVR and IF97 steam tables.
  • Membranes and sorption: UF/DF to a target concentration with gel-polarisation flux, RO/NF with osmotic pressure and energy recovery, ion exchange to breakthrough with regeneration, GAC with Freundlich loading, and chromatography with cycles, gradients, collection windows, resin life and PCC multi-column capture.
  • Solids and drying: crystallisation from solubility curves, and dryers that dry to a target loss on drying (LOD) with an air balance, heater duty and fan power.
  • Energy: two-stream heat exchangers (U·LMTD·F or ε-NTU), pinch analysis, boilers, steam turbines and combined heat and power, configured under Tasks ▸ Energy, heat integration & wastewater….

If no procedure fits, the Generic Box with component splits and reactions can represent almost any step.

Scheduling

FlowState schedules the recipe of every procedure, works out the batch time, the minimum cycle time and the bottleneck, and from those the number of batches per year. Results appear on the Schedule tab and drive the annual material, utility and cost figures.

Key terms

TermMeaning
Batch timeTime from the start of the first operation to the end of the last one in one batch
Cycle timeTime between the starts of consecutive batches
Minimum cycle timeThe longest equipment occupancy in the recipe; that equipment is the bottleneck
Batches per yearBatches that fit in the annual operating time
OccupancyHow long one batch keeps an equipment item busy

Process settings

Open Tasks ▸ Process settings & scheduling…, the ⏱ Scheduling toolbar button, or ⚙ Process settings… in the Inspector. The Process Settings window contains:

  • Plant mode: Batch or Continuous.
  • Annual operating time in hours per year (default 7,920 h).
  • Batches per year: tick Set to fix the number; otherwise FlowState uses the Maximum.
  • Recipe cycle time: tick Set to fix it; otherwise it is the Minimum (bottleneck).
  • Campaigns per year: each campaign restarts the batch train, so the annual operating time becomes AOT = (NB − k)·CT + k·BT for k campaigns.
  • Notes and Sections. Sections group procedures by colour and can carry their own cost factors (Own cost factors) and a share of capital charged to the project.

Scheduling an operation

Every operation has a Scheduling block in its editor:

  • Setup time, Process time and Turnaround. Tick Calculated to let the operation compute its own duration from rates or the model (for example, filtration time from the filter area).
  • Start: Auto (after the previous operation), Relative to batch start, With start of another procedure’s operation, or After end of another operation, plus a Shift (positive or negative delay). These links let you model transfers in which the sending and receiving procedures run at the same time.
  • Labor: the number of operators needed, used for the labour profile and cost.

Procedure-level scheduling

In a procedure’s Inspector:

  • Cycles per batch: repeat the recipe several times per batch.
  • Start offset: delay the procedure’s first operation.
  • Scheduling & sharing ▸ Cycling: With recipe, or Independent with its own period (for utilities or continuous steps that cycle on their own).
  • Scheduling & sharing ▸ Host equipment: Own equipment or Share another procedure’s equipment. FlowState checks shared equipment for conflicts between batches.
  • Equipment ▸ Staggered sets: sets used alternately by consecutive batches, which divides the procedure’s contribution to the cycle time. Use it to break a bottleneck without a bigger vessel.
  • Use across batches and Omit from scheduling flags.

Reading the Schedule tab

  • Operations view: one row per procedure with a bar per operation, over the number of Batches you choose. Equipment occupancy view: one row per equipment item.
  • Colours follow the operation family: Transfer, Thermal, Reaction, Separation, Cleaning, Hold.
  • The bottleneck row is drawn in red.
  • Cycle-time feasibility lists the ranges of cycle time for which no equipment is used by two batches at once, and says whether the current cycle time is feasible or conflicting.
  • Equipment usage shows each item’s procedures, occupancy, busy fraction and mode (dedicated, shared, staggered or independent).
  • Click a bar to select its procedure and operation. From the flowsheet, right-click a procedure ▸ Show in schedule.

Shared services, storage and limits

  • Tasks ▸ Auxiliary equipment (CIP skids, SIP panels)… defines CIP skids and SIP panels that several procedures share; assign them in each procedure’s Equipment section.
  • Tasks ▸ Storage units & resource limits… defines supply and receiving storage units with refill policies, and Availability limits for operators, electrical power and each heat-transfer agent (instantaneous, time-averaged or cumulative). Limits can warn or constrain; the Resources tab shows peak demand, hours over the limit and inventory charts.

Hybrid and continuous plants

In a Continuous plant, flows are per hour and the annual operating time sets the production. In a batch plant you can still set individual procedures to continuous operation. Surge tanks (Inspector ▸ Consumables, labor & hybrid operation) buffer between the two modes, and the Continuous sections in a batch plant group in Tasks ▸ Economic parameters… controls how those sections are costed.

Economics

FlowState estimates capital investment, operating cost and profitability from the equipment sizes, material and utility consumption, labour and the schedule. The results update on every edit and appear on the Economics tab.

The “Evaluate economics” switch

Each process has its own switch. Open Tasks ▸ Economic parameters… (or $ Economics on the toolbar). The first checkbox is:

Evaluate economics (capital, operating cost, profitability)

Turn it off for models without cost data. Material and energy balances, scheduling and environmental results are unaffected. With evaluation off:

  • the Economics tab shows Cost evaluation is off for this process with a Turn on cost evaluation button;
  • the status bar and the process overview hide the unit cost and NPV;
  • reports leave out cost figures rather than printing meaningless ones.

Evaluation is on for new processes and off for files imported from .spf projects, whose cost data FlowState does not read (see Importing .spf project files). It is also off for the starch and sweetener examples, which were built from such files. To evaluate costs, enter equipment costs, prices and economic parameters, then turn evaluation on.

Economic parameters

The Economic Parameters window groups the inputs as follows.

GroupContents
Direct cost factors (× equipment PC)Unlisted equipment, installation, piping, instrumentation, insulation, electrical, buildings, yard improvement, auxiliary facilities
Indirect & otherEngineering, construction, contractor’s fee, contingency
Operating cost factorsMaintenance, insurance, local taxes, factory expense, lab/QC/QA, general and unlisted power
Investment & financingWorking capital, startup and validation, up-front R&D, construction and startup periods, project lifetime, income tax, depreciation period, salvage value, cost index ratio, discount rates
Financing (loans) and Additional loansLoans for DFC, working capital, R&D and royalties
Capital estimate & depreciationDFC method (Factored, Composite factor or User set); depreciation (Straight line, Declining balance, Sum of years’ digits); facility-dependent cost method
Production level by operating yearCapacity ramp-up profile
Miscellaneous operating costsExtra annual cost items
Labor categories; Laboratory / QC / QALabour rates by category; QC tests and costs
CreditsBy-products, avoided disposal and gate fees
Unit cost basis, escalation & minimum selling priceSee below
Continuous sections in a batch plantCosting of continuous sections
Main product & wasteMain product stream and basis component, wastewater and solid-waste costs, membrane cost and life

Restore defaults resets the factors. Sections can override plant-wide factors with Own cost factors in the Process Settings window.

The default factors are generic order-of-magnitude values. FlowState’s equipment cost models are its own power-law correlations, so for a serious estimate enter vendor quotes or your own base costs in each procedure’s Equipment ▸ Cost model, or set the DFC directly.

Reading the Economics tab

  • KPI cards: total capital investment, operating cost, revenues, unit production cost, gross margin, return on investment, payback time, and NPV at the first discount rate with the IRR.
  • Direct fixed capital breakdown, Annual operating cost (donut), and Cash flow (net, cumulative and discounted cumulative, by project year).
  • Capital investment and Profitability tables.
  • Sections: equipment purchase cost, DFC, and facility, labour, materials and utilities cost per section.
  • Cash-flow analysis: IRR before and after tax, and a year-by-year table of capacity, investment, debt, revenue, operating cost, depreciation, interest, loan payments, taxes and net cash flow.
  • Minimum selling price, Net operating cost and Net unit production cost (after credits).
  • Cards for Consumables, Credits, Labor by category & operation with QC, Hybrid operation & single-use, and Raw materials & revenues.

Consumables

Membranes, cartridges, resins, carbon, bags and catalysts are managed in Tasks ▸ Consumables library… (also a button on the Economics tab). The Consumables Library lists each item’s id, name, kind, price, price basis, replacement interval and initial charge (which can be capitalised). Procedures reference items by id with a quantity, set in the Inspector under Consumables, labor & hybrid operation. Annual cost = price × quantity × replacements per year; the Annual cost by use section shows where the money goes.

Single-use procedures (Single-use in the same Inspector section) skip CIP/SIP, carry hardware-only capital and add a bag cost per batch.

Minimum selling price (MSP)

In Economic parameters ▸ Unit cost basis, escalation & minimum selling price:

  • Minimum selling price: tick Solve, and choose the target: NPV = 0 at discount rate 1 (default) or Target IRR (default 15 %).
  • Also report per: kg only, dose, litre or a custom unit, for example to give the cost per dose of a vaccine.
  • Revenue escalation and Cost escalation over the project life.

The result appears as the Minimum selling price card on the Economics tab.

Tornado, scenarios and scale-up

Open Tasks ▸ Scenarios, tornado & scale-up… (or the button on the Economics tab).

Tornado (one-at-a-time sensitivity)

  1. Add variables with + variable (a variable path such as components/Glucose/price) or + common prices.
  2. Set the − % and + % change for each (10 % by default).
  3. Click ▶ Run tornado. Bars show the effect on NPV, or on the unit cost with Show unit cost instead of NPV.

Scenarios (named variable overrides)

  1. Click + scenario, give it a name, and add overrides with + override (a path and a value).
  2. Click ▶ Compare. A table compares the base case and each scenario: total capital investment, operating cost, revenues, credits, unit production cost, net unit production cost, NPV, IRR, minimum selling price and main-product output, with an NPV bar chart.

Variable paths are the same ones used by flowstate-cli get/set and the automation API; see Command line and automation API.

Throughput scale-up

Enter a target annual output of the main product and click Scale feeds to target. All feeds are scaled and equipment in Design mode re-sizes.

Sweeps and Monte Carlo

For parameter sweeps and Monte Carlo uncertainty studies, use flowstate-cli sweep and flowstate-cli monte-carlo; see Command line and automation API.

Environment and LCA

The Environment tab reports waste, emissions and wastewater for every batch, and a life-cycle assessment (LCA) per functional unit. Inventories can be exchanged with SimaPro as CSV files.

Waste and emissions

The top of the tab (Environmental Impact) shows, per batch:

  • Total waste and E-factor (kg waste per kg main product);
  • COD with BOD₅, Suspended solids, VOC emitted, CO₂ vented and Water intensity;
  • a table of every waste and emission stream with mass, volume, COD, BOD₅, TSS and VOC, and a waste chart.

What makes a stream count as waste or emission is its Classification (Raw material, Revenue, Waste, Emission, Intermediate or Credit), set in the stream’s Inspector or context menu.

Vent emissions

Vessel procedures have a Vent & emissions section in the Inspector. The emission model can be Off, EPA (displacement, heating, sweep) or Raoult headspace venting. Vent policies are open, relief or vacuum (with an air-leak correlation whose coefficients you can edit, or a set rate), and an optional vent condenser recovers condensables.

Wastewater and energy

Tasks ▸ Energy, heat integration & wastewater… has four tabs: Heat integration (pinch analysis and heat-exchanger pairing), Utilities, fuels & power (boilers, turbines, CHP, fuels and make-up water), Wastewater & discharge (discharge limits) and Component data (TKN, TP, TOC, heating values, acid/base data). The Water quality (mg/L) and energy section of the tab shows stream concentrations and pH against the discharge limits.

Life-cycle assessment

The Life-cycle assessment section of the Environment tab shows:

  • the basis: “Per functional unit · allocation allocation (x % to product)”;
  • cards for GWP100, PMI (process mass intensity), E-factor, Unmapped flows and Datasets without factors;
  • an Impact category selector with a contribution chart;
  • Impacts per functional unit for the ReCiPe 2016 midpoint (H) categories: global warming (GWP100), stratospheric ozone depletion, ionising radiation, ozone formation (human health and ecosystems), fine particulate matter, terrestrial acidification, freshwater and marine eutrophication, terrestrial, freshwater and marine ecotoxicity, human carcinogenic and non-carcinogenic toxicity, land use, mineral and fossil resource scarcity, and water consumption;
  • the Inventory per functional unit, by section, with each flow’s dataset, amount, unit and status (unmapped, factors unset or ✔).

The inventory is built from the simulation: raw materials, utilities and electricity, wastes and vents, all scaled to the functional unit.

LCA settings, datasets and mappings

Click Datasets & mappings… in the LCA section, or choose Tasks ▸ LCA datasets & mappings…. The window has four tabs.

Settings

  • Functional unit (kg of product), Product stream (by default the main product from the economics settings) and Counted component (whole stream or one component).
  • Allocation: None (all to main product), Mass or Economic.
  • Direct emissions: vents and emission streams as emissions to air.
  • Wastewater: discharged untreated, so COD/BOD₅ go to water instead of treatment.
  • Electricity: add the general and unlisted power load.
  • SimaPro project and Product category for the export.
  • Import SimaPro process CSV…, Add upstream FlowState project… and Restore default library (see below).

Mappings link each FlowState flow (component, utility, waste) to a dataset, with a basis, a factor and an optional expression for strength or density conversions.

Dataset library holds the background datasets. Names must match SimaPro exactly. Each dataset has a platform id, a source, and impact factors. Only enter factors you can cite. A dataset without factors is marked unset (no values provided); it contributes zero to the impacts, and the inventory lines that use it are flagged as factors unset. It is still exported to SimaPro by name.

Parameters are scenario parameters, exported as SimaPro input parameters.

SimaPro export

Click ⬇ Export SimaPro CSV… in the LCA section. FlowState writes a SimaPro 9 process CSV, named “title - SimaPro process.csv”, containing the process with its inventory per functional unit, ready to import into a SimaPro project where the background datasets supply the impacts. From the command line: flowstate-cli lca my.flow --simapro out.csv.

SimaPro import

Import SimaPro process CSV… (on the Settings tab) reads a SimaPro process CSV. It adds the datasets it references to the library (with factors unset), derives mappings, and keeps the imported inventory for comparison with FlowState’s. From the command line: flowstate-cli lca-import my.flow process.csv.

Chaining projects

Add upstream FlowState project… turns the main product of another .flow project into a dataset whose impacts per kg come from that project’s own LCA. Use it to chain, for example, a glucose syrup process into a fermentation process that consumes the syrup.

About the built-in library. Dataset names follow SimaPro, ecoinvent and Agri-footprint naming exactly, so an exported inventory links to the right background processes in SimaPro. The library only carries impact factors stated in a cited source (for example the SWEET study’s cradle-to-gate results for starch sweeteners, and IPCC AR6 GWP100 values for greenhouse gases). All other datasets start unset: enter factors from your own LCA database to complete the assessment.

Examples Library

The Examples Library holds 38 ready-to-run process models: four tutorials built into FlowState, and 34 models that reproduce published process and techno-economic studies. Each example shows the study it reproduces and that study’s headline figures, so you can compare the FlowState result with the published one directly.

Opening an example

  • File ▸ Examples Library…, or 📚 Browse the examples library… on the Welcome screen.
  • Search with Search examples, products, studies… (it matches titles, summaries and citations), or filter by category on the left: All examples, Tutorials, Biopharmaceuticals, Pharmaceuticals & Fine Chemicals, Food & Nutrition, Starch & Sweeteners, Bio-based & Commodity Chemicals, Materials & Minerals, Environmental.
  • Each card shows the title, category, summary, headline figures and citation. Click Open example.
  • From a terminal: FlowState --example <id>, using the ids below.

An example opens as a new process. Save it under your own name before changing it.

All 38 examples

Tutorials

In the app, Getting Started is in the Tutorials category, and the other three tutorials are filed under their industry (Biopharmaceuticals, Pharmaceuticals & Fine Chemicals, Bio-based & Commodity Chemicals). Likewise, the tables below group the studies by field, which does not always match the app’s category filter.

ExampleidWhat it shows
Getting Started (A + B → C)getting-startedBatch reaction in heptane, cake filtration and washing; scheduling and economics. See Your first flowsheet.
Recombinant Enzyme (Yeast)recombinant-enzymeAerobic yeast fermentation with Monod kinetics; centrifugation, UF, chromatography, freeze drying.
API Intermediate (Kinetics & Solvent Recovery)api-intermediateArrhenius kinetics, EPA venting, FUG solvent recovery, a storage tank, an operator limit, campaigns and debt financing.
Bioethanol Recovery (NRTL & MVR)bioethanol-recoveryA 30-stage NRTL column towards the ethanol–water azeotrope and a 3-effect MVR stillage evaporator.

Biopharmaceuticals and nutraceuticals

ExampleidProcess
Antibody-Drug Conjugate (ADC) Manufacturingadc-bioconjugationTHIOMAB-type IgG1 conjugated with MC-VC-PAB-MMAE (DAR 2) in single-use mixers; three TFF exchanges, CEX bind-and-elute
Continuous mAb Manufacturing (Perfusion + PCC)continuous-mab-perfusion30-day CHO perfusion in a 2,000 L single-use bioreactor; Protein A PCC, viral inactivation in a PFR, AEX, CEX PCC, virus filtration
Polysaccharide Vaccine (Pneumonia / Meningitis)polysaccharide-vaccineCapsular polysaccharide for a 23-valent vaccine: fermentation, ethanol precipitations, UF/DF, depth filtration, tray drying
Semaglutide API (Final Assembly, Line 4)semaglutide-apiFinal assembly from a recombinant GLP-1 precursor and SPPS fragments: couplings, deprotection, two RP-HPLC steps, freeze drying
Vitamin B12 via Fermentationvitamin-b12-fermentationFed-batch P. denitrificans, lysis and cyanidation, chromatography, acetone antisolvent crystallisation, filter-drying
Retinol (Retinyl Acetate) via Precision Fermentationretinol-precision-fermentationHybrid plant: Y. lipolytica fed-batch fermentation, continuous recovery, acetylation and short-path evaporation

Food and nutrition

ExampleidProcess
Cultured Meat (Cultivated Beef)food-cultured-meatBovine satellite cells on microcarriers: seed train, proliferation, differentiation in staggered fermentors, diafiltration, screw pressing
Mycoprotein (Fungal Meat Analogue)food-mycoproteinSix-week chemostat in a 200 m³ airlift fermentor, RNA reduction, rotary vacuum filtration, texturisation
Insect (Cricket) Protein Concentratefood-insect-proteinContinuous plant for 5 t/h of crickets: blanching, drying, grinding, ethanol defatting, NRTL ethanol recovery
Egg White Protein (Recombinant Ovalbumin)food-egg-white-proteinK. phaffii precision fermentation, MF, UF, ammonium-sulfate precipitation, spray drying
Bio-Collagen (Recombinant Collagen Peptide)food-bio-collagenMethanol-induced Pichia fed-batch fermentation, UF/DF, acetone precipitation, ion exchange, freeze drying
Cocoa Butter Equivalent (Microbial Oil)food-cocoa-butter-equivalentOleaginous yeast fermentation, hexane oil extraction, refining and fractionation into CBE and olein
Tequila (Agave to Bottles)food-tequilaAgave cooking, milling, fermentation, two NRTL batch distillations, barrel ageing, bottling
Pectin from Citrus Peelsfood-pectinContinuous plant for 35 t/h of orange peels: acidic extraction, carbon and ion-exchange polishing, IPA precipitation, drum drying

Chemicals

ExampleidProcess
Aspirin (Acetylsalicylic Acid)aspirinSalicylic acid acetylation, antisolvent recrystallisation, basket centrifuges, rotary drying, solvent recovery in two rigorous columns
Erythritol from Glycerol (Yarrowia Fermentation)erythritolGlycerol fermentation, ion exchange, SMB chromatography, cooling crystallisation, rotary drying
Isobutanol from Corn StoverisobutanolPretreatment and enzymatic hydrolysis, E. coli fermentation, Wilson columns with a decanter, lignin-fired boiler and turbine
Malonic Acid by Fermentation (Calcium-Salt Route)malonic-acidYeast fermentation with calcium-malonate precipitation, acidification, ion exchange, nanofiltration, crystallisation
Malonic Acid — Process Synthesis & TEA (Processes 2024)malonic-acid-processesThe calcium-salt plant of a peer-reviewed process-synthesis study (Processes, 2024)
Formic Acid from CO2 (Homogeneous Hydrogenation)formic-acid-co2CO₂ capture from steel-plant flue gas, Ru-catalysed hydrogenation in a PFR, distillation in rigorous columns
Formic Acid by CO2 Hydrogenation (Tzitzili et al., Case A)formic-acid-co2-hydrogenationCase A of a peer-reviewed study of the same route (Processes, 2025)
Vitamin C by Two-Step Fermentationvitamin-cSorbitol to 2-KGA by fermentation, bipolar-membrane electrodialysis, esterification and lactonisation, crystallisation

Starch and sweeteners

Seven continuous flowsheets of the SWEET project’s LCA study of bulking agents (Suckling et al., Journal of Cleaner Production, 2025), imported from its published process files.

Exampleid
Glucose Syrup 95 % from Wet Starchstarch-wet-glucose
Glucose Syrup 95 % from Dry Starchstarch-dry-glucose
High-Maltose Syrup from Wet Starchstarch-wet-maltose
High-Maltose Syrup from Dry Starchstarch-dry-maltose
HFCS 42 from Glucose Syrupstarch-hfcs42
Spray-Dried Sorbitol from Glucose Syrupstarch-sorbitol
Maltitol from High-Maltose Syrupstarch-maltitol

The processes cover jet cooking and α-amylase liquefaction, glucoamylase or maltogenic saccharification, rotary vacuum filtration, carbon and ion-exchange polishing, evaporation, fixed-bed isomerisation, catalytic hydrogenation with hydrogen compression, SMB chromatography, crystallisation, centrifugation and drying.

Materials and environmental

ExampleidProcess
Cellulose Nanocrystals from Kraft Pulpcellulose-nanocrystalsBatch sulfuric-acid hydrolysis, centrifugation, diafiltration, RO water recovery, spray drying
Kraft Pulp and Tissue Paper Millkraft-pulp-tissueIntegrated continuous mill: kraft digester, bleaching, tissue machine with Yankee dryer, chemical and energy recovery
Lithium Carbonate from Geothermal Brinelithium-carbonate-brineEvaporation ponds, boron solvent extraction, purification, carbonation and Li₂CO₃ crystallisation
Microalgal Biostimulant from Municipal Wastewatermicroalgal-biostimulantActivated-sludge treatment feeding raceway ponds, algae harvesting, enzymatic hydrolysis to a peptide biostimulant
PHA from Food Waste in a Photobiorefinerypha-photobiorefineryAcidogenic fermentation, photofermentation to PHA, solvent extraction, PSA biohydrogen, anaerobic digestion with CHP

How the models compare with the studies

Most examples come within about 10 % of the published annual production, capital investment, operating cost and unit cost.

How to read the tables.

  • TCI is usually calibrated. Many studies publish no capital factors or equipment list. In those cases one documented constant (an equipment-cost scale or a DFC factor) was fitted to the published total capital investment, so TCI agrees by construction. These are marked (cal).
  • The other columns are model results. Production, operating cost and unit cost were not fitted. Fitted shares, such as labour, are stated in the comparison notes.

Each table gives the study value, then the FlowState value, then the deviation.

Biopharmaceuticals

ExampleProductionTCIOperating costUnit cost
ADC101.7 → 105.9 kg/yr (+4.2 %)$29.7 M → $29.6 M (cal)$46.3 M → $46.1 M (−0.3 %)$454,913 → $435,145/kg (−4.3 %)
Continuous mAb1,865 → 1,833 kg/yr (−1.7 %)$134.6 M → $136.5 M (cal)$56.2 M → $55.8 M (−0.7 %)$30,141 → $30,449/kg (+1.0 %)
Polysaccharide vaccine31.6 → 33.7 kg/yr (+6.5 %)$85.9 M → $86.0 M (cal)$23.2 M → $25.6 M (+10.3 %)$732,680 → $758,788/kg (+3.6 %)
Semaglutide (line 4)500 → 498 kg/yr (−0.3 %)$58.0 M → $57.9 M (cal)$52.7 M → $56.5 M (+7.2 %)$105,500 → $113,335/kg (+7.4 %)
Vitamin B1218,852 → 19,066 kg/yr (+1.1 %)$94.7 M → $94.6 M (−0.1 %)$51.9 M → $47.8 M (−7.8 %)$2,750 → $2,509/kg (−8.8 %)
Retinol349,131 → 369,519 kg/yr (+5.8 %)$94.2 M → $94.0 M (cal)$39.4 M → $39.5 M (+0.3 %)$112.80 → $106.90/kg (−5.2 %)

Food and nutrition

ExampleProductionTCIOperating costUnit cost
Cultured meat3,054 → 3,085 t/yr (+1.0 %)$288.6 M → $291.8 M (cal)$109.4 M → $109.0 M (−0.4 %)$35.83 → $35.32/kg (−1.4 %)
Mycoprotein8,000 → 7,712 t/yr (−3.6 %)$119.5 M → $119.3 M (cal)$39.8 M → $39.8 M (+0.2 %)$4.97 → $5.17/kg (+3.9 %)
Insect protein10,346 → 10,348 t/yr (0.0 %)$33.7 M → $32.9 M (−2.2 %)$98.6 M → $99.0 M (+0.5 %)$9.53 → $9.57/kg (+0.4 %)
Egg white protein1,000 → 1,000 t/yr (0.0 %)$92.0 M → $92.0 M (cal)$39.0 M → $36.5 M (−6.4 %)$38.99 → $36.48/kg (−6.4 %)
Bio-collagen50.0 → 49.5 t/yr (−1.1 %)$142.9 M → $142.5 M (cal)$47.0 M → $46.5 M (−0.9 %)$938.96 → $940.32/kg (+0.1 %)
Cocoa butter equivalent4,394 → 4,335 t/yr (−1.3 %)$154.9 M → $154.5 M (−0.3 %)$52.6 M → $53.4 M (+1.5 %)$11.97 → $12.32/kg (+2.9 %)
Tequila1.178 M → 1.045 M bottles/yr (−11.3 %)$17.2 M → $17.5 M (+1.3 %)$12.9 M → $12.8 M (−1.1 %)$10.95 → $12.21/bottle (+11.5 %)
Pectin5,111 → 4,885 t/yr (−4.4 %)$115.8 M → $112.5 M (cal)$52.9 M → $50.1 M (−5.2 %)$10.35 → $10.26/kg (−0.8 %)

Chemicals

ExampleProductionTCIOperating costUnit cost
Aspirin2,421 → 2,415 t/yr (−0.2 %)$24.2 M → $24.1 M (−0.5 %)$17.7 M → $17.5 M (−1.0 %)$7.31 → $7.25/kg (−0.8 %)
Erythritol10,405 → 10,598 t/yr (+1.9 %)$94.8 M → $94.3 M (cal)$54.3 M → $49.6 M (−8.6 %)$5.20 → $4.68/kg (−10.0 %)
Isobutanol40,000 → 39,951 t/yr (−0.1 %)$98.0 M → $97.8 M (cal)$61.0 M → $60.3 M (−1.2 %)$1.53 → $1.51/kg (−1.0 %)
Malonic acid (fermentation)8,483 → 8,318 t/yr (−1.9 %)$106.1 M → $105.5 M (−0.6 %)$49.1 M → $44.5 M (−9.5 %)$5.79 → $5.35/kg (−7.7 %)
Malonic acid (Processes 2024)7,950 → 8,338 t/yr (+4.9 %)$155.9 M → $155.4 M (cal)$62.4 M → $61.0 M (−2.1 %)$7.92 → $7.32/kg (−7.6 %)
Formic acid from CO₂60,000 → 60,046 t/yr (+0.1 %)$149.6 M → $149.3 M (−0.2 %)$62.1 M → $66.2 M (+6.6 %)$1.03 → $1.10/kg (+7.0 %)
Formic acid (Tzitzili, case A)13,030 → 14,608 t/yr (+12.1 %)$26.7 M → $23.0 M (−14.1 %)$15.4 M → $10.9 M (−29.4 %)$1.18 → $0.74/kg (−37 %)
Vitamin C15,044 → 14,693 t/yr (−2.3 %)$299.7 M → $294.4 M (−1.8 %)$108.6 M → $106.6 M (−1.8 %)$7.22 → $7.26/kg (+0.5 %)

For aspirin, malonic acid (fermentation), formic acid from CO₂ and vitamin C, the studies publish an equipment list, and FlowState reproduces the equipment purchase cost and DFC within a few percent without fitting.

Materials and environmental

ExampleProductionTCIOperating costUnit cost
Cellulose nanocrystals100.0 → 100.4 t/yr (+0.4 %)$18.99 M → $18.94 M (−0.2 %)$8.48 M → $8.36 M (−1.4 %)$84.75 → $83.25/kg (−1.8 %)
Kraft pulp and tissue187,065 → 186,190 t/yr (−0.5 %)$657.4 M → $654.9 M (−0.4 %)$238.8 M → $243.1 M (+1.8 %)$1.28 → $1.31/kg (+2.0 %)
Lithium carbonate22,043 → 21,997 t/yr (−0.2 %)$510.7 M → $507.2 M (cal)$280.4 M → $255.9 M (−8.7 %)$12.72 → $11.63/kg (−8.5 %)
Microalgal biostimulant87,732 → 87,515 t/yr (−0.2 %)$301.0 M → $300.4 M (−0.2 %)$82.4 M → $83.6 M (+1.4 %)$0.94 → $0.96/kg (+1.7 %)
PHA photobiorefinery5,000 → 4,790 t/yr (−4.2 %)$75.9 M → $76.0 M (cal)$25.1 M → $25.4 M (+0.9 %)MSP $4.41 → $4.27/kg (−3.2 %)

Starch and sweeteners

The starch examples are compared on the mass balance, since they were built to reproduce the study’s process files. Cost evaluation is switched off for them (see Economics).

ExampleMain product, study model (kg/h)FlowState (kg/h)Deviation
Glucose syrup, wet starch12,229.2712,235.43+0.050 %
Glucose syrup, dry starch12,268.5412,274.72+0.050 %
High-maltose syrup, wet starch12,090.3312,096.16+0.048 %
High-maltose syrup, dry starch12,125.8312,131.67+0.048 %
HFCS 427,186.647,186.640.000 %
Sorbitol3,762.083,762.13+0.001 %
Maltitol2,135.662,135.89+0.011 %

The inventory ratios match the article as well:

RatioArticleFlowState
Starch per kg glucose syrup0.6510.6511
Starch per kg high-maltose syrup0.6590.6587
Glucose syrup per kg sorbitol1.331.3290
Maltose syrup per kg maltitol2.342.3409
By-product syrup per kg maltitol1.431.4307

Product specifications also match: syrups at 71 % dry matter, 95 % glucose on dry matter, and HFCS at 42 % fructose. The ion-exchange and carbon waste streams are 6–13 % larger than in the source model, because the source’s column balances do not close and FlowState conserves mass. The product streams are unaffected.

Known differences

Where an example misses by more than about 10 %, the cause is understood.

  • Tequila. Production is −11 % and cost per bottle +11.5 %. FlowState’s shortcut batch distillation puts more ethanol into the heads cut than the study’s rigorous dynamic model does.
  • Lithium carbonate. The study’s utilities, about $31 M/yr, are not broken down by consumer. FlowState charges only the evaporators, crystallisers and dryer. Operating cost is −8.7 %, but the IRR and NPV are not reproduced: both come out higher than the study’s.
  • Formic acid (Tzitzili, case A). The study’s supplement, with its stream tables, equipment list and prices, was not available. Prices are therefore borrowed from the companion formic-acid example, and the operating and unit costs come out much lower than published.
  • Polysaccharide vaccine. The study’s facility-dependent cost factors are not published, so operating cost is +10 %.
  • Erythritol, malonic acid, vitamin B12. Operating costs are 8–10 % low. These studies do not itemise their utilities or consumables.

Smaller differences in batch time come from steps that the studies run in parallel and FlowState runs in series. They do not affect cycle time or the annual figures.

Importing .spf project files

FlowState imports SuperPro Designer project files (.spf, version 9.5 format) and turns them into FlowState processes. The flowsheet, components, streams and reactions come across. Separation steps are calibrated so that the imported process reproduces the stored stream compositions. Cost data is not imported.

How to import

In the app: choose File ▸ Import SuperPro file (.spf)… and pick the file.

  • The process opens as a new, unsaved document named after the file.
  • A message summarises what was imported: “Imported …: N procedures, N streams, N components”.
  • If there were warnings, a second message gives the count and the first three. All warnings are written to the process Notes (Tasks ▸ Process settings & scheduling…) under “Import warnings:”.
  • Save the result as a .flow file.

From the command line:

flowstate-cli import plant.spf -o plant.flow --check

This prints the warnings and a coverage table: archive objects, components, unit procedures (mapped, generic and helpers), operations, equipment costs, streams and port connections. --check also simulates the imported process and compares its main product with the flow stored in the file.

What is imported

ItemDetails
HeaderDraftsman, designer, company, project, revision, plant, main product and its rate, description; written to the process notes
Pure componentsMolecular weight, Tb, Tc, Pc, acentric factor, liquid density and Cp at 25 °C, Antoine coefficients, heat of vaporisation, purchase price
Stock mixturesName and composition
Unit proceduresName, equipment tag, description, flowsheet position, purchase cost; the procedure type is mapped to the nearest FlowState unit procedure
StreamsNames, connections, feed composition, temperature and pressure, classification (raw material, revenue, waste, emission), purchase and selling prices
ReactionsStoichiometry and conversions, converted to FlowState’s sequential reactions
Separations and splitsPer-component split fractions, calibrated from the solved stream compositions stored in the file

Some structures are converted on the way in:

  • A unit with more than two outlets of different composition becomes the unit followed by helper splitters.
  • A two-stream heat exchanger becomes two single-stream heaters or coolers.
  • A procedure type with no FlowState equivalent becomes a Generic Box, with a warning.

What is not imported

  • Economics. Capital and operating cost settings are not read. Cost evaluation is switched off for an imported process (“Economics are not imported from the .spf: cost evaluation is off”). The Economics tab says so and offers Turn on cost evaluation. Before turning it on, check the equipment costs and the component and stream prices, then set the economic parameters (see Economics).
  • Operation parameters. Operating conditions and durations of the original operations are not decoded. Separations reproduce the stored results through calibrated splits instead.
  • Annual operating time. This is not read. FlowState uses the default of 7,920 h/yr and imports the process as a Continuous plant, with flows per hour of operation.
  • Heat-transfer agents. FlowState’s default steam and cooling water are used.

Typical warnings

WarningMeaning
“… has no FlowState equivalent; imported as a Generic Box”Check the step and replace it with a specific procedure if needed
“… mapped to the nearest FlowState unit (…)”The equipment type differs slightly; check its settings
“Stream ‘…’ is not connected to any procedure; skipped”A loose stream in the original file
“Input stream ‘…’ has no decoded composition”Enter the feed composition by hand
“Main product stream ‘…’ not found among the outputs”Set the main product under Economic parameters ▸ Main product & waste

How well it works

The seven starch and sweetener processes in the Examples Library were built this way. Their main-product flows agree with the original models within 0.05 %, and their inventory ratios match the published study.

Reports and exports

From the desktop app

CommandOutput
File ▸ Export HTML report… or 📄 ReportA self-contained HTML process report, saved as “title - report.html” and opened in your browser
File ▸ Export batch sheet (HTML)… or 📋 Batch SheetThe electronic batch record: step-by-step instructions for every operation, saved as “title - batch sheet.html”
File ▸ Export stream table (CSV)… or ⬇ Export CSV on the Streams tabThe stream table as CSV (“title - streams.csv”): temperature, total mass per batch, volume and component masses
⬇ Export SimaPro CSV… on the Environment tabA SimaPro 9 process CSV with the life-cycle inventory (see Environment and LCA)

The process report

The HTML report contains an executive summary, the unit procedures and schedule, the operations, the stream report (kg per batch), capital investment, annual operating cost, cash flow, the environmental summary and the simulation messages. It is a single file with no external dependencies, so you can e-mail or archive it as it is. When economics are switched off for a process, the cost sections are left out.

Batch sheets and templates

Batch sheets turn each operation into numbered instructions, with the quantities, temperatures and durations taken from the recipe, and with check lines for the operator. To change the wording, open Tools ▸ Batch-sheet templates…:

  1. Pick an Operation type.
  2. Edit the text. Placeholders such as {{amount}} are filled from the recipe, and each non-empty line becomes one instruction. The Placeholders list shows what is available for that operation type.
  3. Reset to default restores the built-in wording.

Templates are saved with the process.

Further formats from the command line

flowstate-cli writes the same reports in other formats, plus workbooks and charts:

CommandOutput
flowstate-cli report my.flow -o report.htmlHTML report; add --docx for Word or --rtf for RTF
flowstate-cli batch-sheet my.flow -o sheet.htmlBatch record; --markdown, --docx or --rtf for other formats
flowstate-cli export-xlsx my.flow -o results.xlsxExcel workbook with the sheets Summary, Streams, Equipment, Schedule, Economics, Cash Flow, Utilities, Resource Profiles and Environment
flowstate-cli chart my.flow --kind gantt -o gantt.svgSVG chart (gantt, occupancy, resources or cashflow) over --batches N; a .csv output name, or --csv, gives the chart data instead
flowstate-cli lca my.flow --simapro inventory.csvSimaPro process CSV

While the automation server is running, the same files are available over HTTP, for example /report.docx, /batch-sheet.md, /export.xlsx and /chart/gantt.svg. See Command line and automation API.

Command line and automation API

FlowState can be driven without the mouse in two ways:

  • flowstate-cli, a command-line tool installed with the app, which reads and writes .flow files;
  • a local HTTP JSON API, served either by flowstate-cli serve or by the desktop app itself, which Excel, Power Query, Python or any HTTP client can call.

Both use the same variable paths to address any input or result.

Variable paths

A path names an element by its name (or index) inside a list. A procedure can also be named by its equipment tag.

PathValue
procedures/P-1/operations/REACT-1/duration/processProcess time of an operation, h
procedures/P-1/operations/REACT-1/kind/reactions/0/extentAn operation parameter
procedures/R-101/equipment/sizeEquipment size
streams/S-102/spec/AFeed amount of component A, kg/batch
components/A/pricePurchase price, $/kg
resources/agents/Steam/cost_per_tUtility price
economics/tax_rate, cycle_time, batches_per_yearPlant and economic settings
results/schedule/batch_time, results/economics/npvResults (read-only)
results/streams/Cake/composition/CStream contents, kg/batch

List the available paths with flowstate-cli vars my.flow [prefix], for example flowstate-cli vars my.flow results/economics. Values are checked before they are saved: a value of the wrong type, or an unknown field, is rejected and the file is left unchanged. In URLs, percent-encode names with spaces (Cooling%20Water).

flowstate-cli

flowstate-cli <command> [options]
CommandPurpose
simulate FILE [--json PATH] [--summary]Simulate and print batch time, cycle time, batches/year, unit cost, NPV and messages. --summary prints the key results as JSON; --json writes the full results. Exit code 0 = OK, 2 = simulation errors, 1 = usage or I/O error
get FILE PATHRead a variable
set FILE PATH VALUE [-o OUT]Write a variable (value in JSON; bare words are strings) and save
vars FILE [PREFIX]List variable paths
sweep FILE --var PATH --from X --to Y [--steps 5] [--out CSV] [--metric a,b]One-variable sensitivity sweep to CSV
monte-carlo FILE --var SPEC … [--runs 100] [--seed 42] [--out CSV] [--summary-out CSV] [--metric …]Monte Carlo study; SPEC is path:uniform:min,max, path:normal:mean,sd or path:triangular:min,mode,max
report FILE -o OUT [--docx | --rtf]Process report (HTML, Word or RTF)
batch-sheet FILE -o OUT [--markdown | --docx | --rtf]Electronic batch record
export-xlsx FILE -o OUTResults workbook (9 sheets)
chart FILE --kind gantt|occupancy|resources|cashflow -o OUT [--batches N] [--csv]Chart as SVG, or its data as CSV
templates FILE [--kind LABEL]Show batch-sheet templates and placeholders (JSON)
import FILE.spf -o OUT.flow [--check]Import an .spf project (see Importing .spf project files)
lca FILE [--simapro CSV] [--json] [--per-fu]LCA inventory and impacts; optionally write the SimaPro CSV
lca-import FILE CSV [-o OUT]Import a SimaPro process CSV into the LCA settings
serve FILE [--port 8765] [--allow-origin ORIGIN]…Serve the HTTP API for a file
excel-link SOURCE -o OUT [--port 8765] [--table NAME]Write Excel web-query (.iqy) files and Power Query code
samples DIRWrite the four built-in sample processes as .flow files

Metrics for sweep and monte-carlo are batch_time, cycle_time, min_cycle_time, batches_per_year, unit_production_cost, unit_revenue, npv, irr, roi, payback_years, gross_margin, net_profit, total_investment, annual_operating_cost, revenues, main_product_kg_per_year, e_factor, total_waste_kg, gwp and pmi, or any results/… path.

Examples

flowstate-cli samples samples/
flowstate-cli simulate samples/getting-started.flow
flowstate-cli set samples/getting-started.flow procedures/P-1/operations/REACT-1/duration/process 8 -o react8.flow
flowstate-cli sweep samples/getting-started.flow --var streams/S-102/spec/A --from 40 --to 60 --steps 5 \
    --out sweep.csv --metric unit_production_cost,npv,batch_time
flowstate-cli monte-carlo samples/getting-started.flow \
    --var components/A/price:triangular:8,10,14 --var economics/tax_rate:uniform:0.3,0.5 \
    --runs 500 --seed 1 --out mc.csv --summary-out mc-summary.csv
flowstate-cli export-xlsx samples/getting-started.flow -o results.xlsx

The HTTP API

Start it in one of two ways:

  • From the desktop app: Tools ▸ Start automation server. The API serves the document open in the window. The menu then shows Stop automation server (…) and Copy server URL. Changes made through the API appear in the window at once, re-simulate as usual, and can be undone with Ctrl+Z.
  • Headless: flowstate-cli serve my.flow.

The server listens on http://127.0.0.1:8765 and nowhere else. It rejects requests whose Host is not a loopback address, and it refuses cross-origin browser requests unless you allow their exact origin (see Office Scripts).

RequestPurpose
GET /Endpoint index, with mode (file or desktop) and a revision counter
GET /vars?prefix=…List variable paths
GET /var/<path>Read a variable: {"path", "value"}
PUT /var/<path> (JSON body)Set a variable
POST /vars with {"path": value, …}Atomic batch update
POST /simulateSimulate and return {"summary", "results"}
GET /summary, GET /resultsKey results, or full results
GET /report.html, /report.docx, /report.rtfProcess report
GET /batch-sheet.html, .md, .docx, .rtfBatch record
GET /export.xlsxResults workbook
GET /table, GET /table/<name>?format=csv|htmlLive tables: summary, streams, equipment, schedule, economics, cashflow, utilities, profiles, environment
GET /chart/<kind>.svg or .csv (?batches=3)gantt, occupancy, resources, cashflow
GET /templatesBatch-sheet templates and placeholders
GET /lca, GET /lca.csvLCA results, or the SimaPro CSV
GET /project, PUT /projectThe whole .flow JSON
POST /saveSave to the open file
curl -s localhost:8765/var/economics/tax_rate
curl -s -X PUT localhost:8765/var/economics/tax_rate -d 0.35
curl -s -X POST localhost:8765/simulate

Excel and Power Query

The /table/… endpoints are plain web tables that spreadsheets can pull and refresh. Numbers use . as the decimal separator and have no thousands separators.

  1. Start the API (desktop app or flowstate-cli serve).
  2. Run flowstate-cli excel-link http://127.0.0.1:8765 -o FlowState.iqy. This writes one FlowState-<table>.iqy per table and FlowState.pq with Power Query (M) code. Add --table cashflow to write a single .iqy file.
  3. Then, in Excel, do one of the following:
    • Web query: go to Data ▸ Get Data ▸ Existing Connections ▸ Browse for More… and pick an .iqy file.
    • Power Query: go to Data ▸ Get Data ▸ From Other Sources ▸ From Web and enter http://127.0.0.1:8765/table/streams?format=csv. Alternatively, paste the queries from FlowState.pq into Blank Query ▸ Advanced Editor. Power BI Desktop uses the same code.
  4. In the query Properties, tick Refresh every N minutes or Refresh data when opening the file. With the desktop app’s server, every refresh shows what the window currently shows.

Writing values back from VBA:

Sub SetTaxRateAndRefresh()
    Dim http As Object, v As String
    v = Replace(CStr(Range("B2").Value), ",", ".")
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "PUT", "http://127.0.0.1:8765/var/economics/tax_rate", False
    http.setRequestHeader "Content-Type", "application/json"
    http.send v
    If http.Status <> 200 Then MsgBox http.responseText: Exit Sub
    ThisWorkbook.RefreshAll
End Sub

Office Scripts

Office Scripts run in a web page whose origin is not local. The API refuses such requests by default, so that no web page can drive your simulator. To allow them, add the exact origin:

  • with flowstate-cli serve my.flow --allow-origin https://…, or
  • in the app, under Tools ▸ Allowed web origins.

Wildcards are not accepted. When a request is refused, the app offers Allow …? in the Tools menu, and flowstate-cli prints the origin it refused. Allow an origin only while you need it.

Python

The API needs nothing beyond the Python standard library:

import json, urllib.request

BASE = "http://127.0.0.1:8765"

def call(method, path, body=None):
    data = None if body is None else json.dumps(body).encode()
    req = urllib.request.Request(BASE + path, data=data, method=method,
                                 headers={"Content-Type": "application/json"})
    with urllib.request.urlopen(req) as r:
        return json.loads(r.read())

path = "procedures/P-1/operations/REACT-1/duration/process"
original = call("GET", "/var/" + path)["value"]
for hours in (4, 6, 8):
    call("PUT", "/var/" + path, hours)
    s = call("POST", "/simulate")["summary"]
    print(hours, s)
call("PUT", "/var/" + path, original)       # restore

The example changes the reaction time of the Getting Started process, re-simulates and prints the key results. Against the desktop app’s server, you can watch the changes in the window as they happen.

Keyboard shortcuts

On macOS, use ⌘ Cmd wherever this page says Ctrl. Help ▸ Keyboard shortcuts shows the same list inside the app.

Files

ShortcutAction
Ctrl+NNew process
Ctrl+OOpen
Ctrl+SSave
Ctrl+Shift+SSave as

These work even while you are typing in a text field.

Editing

ShortcutAction
Ctrl+ZUndo
Ctrl+Y or Ctrl+Shift+ZRedo
Ctrl+DDuplicate the selected procedure
DeleteDelete the selection (Flowsheet tab)

The undo history holds 200 steps. One drag or one typing gesture counts as one step. Changes made through the automation API can be undone too.

ShortcutAction
Ctrl+1 … Ctrl+7Switch workspace tab: Flowsheet, Streams, Equipment, Schedule, Resources, Economics, Environment
FFit the flowsheet to the window (Flowsheet tab)
EscCancel placing a procedure or drawing a stream; close the About window

Mouse

GestureAction
Mouse wheelZoom the flowsheet
Drag the background (or middle- or right-drag)Pan the flowsheet
Drag from a port to a portConnect a stream
Drag from a port into empty spaceCreate a feed or product stream
Drag a library item onto the canvas, or click it and then the canvasPlace a unit procedure
Right-clickContext menu for a procedure, a stream or the background
Drop a .flow file on the windowOpen it

FAQ and support

General

How do I get FlowState? FlowState 1.0 is in a controlled release. Request an invitation with the early-access form. Invited users receive download instructions for their platform.

Does FlowState need an internet connection or an account? No. FlowState runs entirely on your computer, needs no account and sends no data anywhere. The optional automation API listens only on 127.0.0.1, and only once you start it. See the privacy policy.

Why is it called “FlowState Process Studio” in the Microsoft Store? The name “FlowState” alone was already taken in the Store. It is the same application.

What file format does FlowState use? Processes are saved as .flow files, which are readable JSON. Files saved by older versions with the .spdx extension still open.

Can I use FlowState commercially? The licence covers personal, academic and internal business use. See the licence, and contact support for anything else.

Modelling

Where is the “Run” button? There isn’t one. FlowState re-simulates automatically after every change. The status bar shows how long the solve took; the toolbar status shows ✔ Solved, ⚠ Warnings or ⛔ Errors.

The recycle loop does not converge. What can I do? Open Tasks ▸ Property methods & convergence…. Raise Max iterations, switch between Wegstein and Direct substitution, or give a custom initial tear guess. You can also mark a better tear stream with Preferred tear stream in the stream’s Inspector.

Which thermodynamic model should I choose? Use Ideal (Raoult) for similar, non-polar mixtures. Use NRTL or UNIQUAC for strongly non-ideal liquids, azeotropes or two liquid phases. Use Wilson for non-ideal, fully miscible liquids. Use Peng–Robinson or SRK for gases and high pressures. See Components, mixtures and property methods.

How accurate are the cost estimates? FlowState’s equipment cost correlations are its own order-of-magnitude models, and the default cost factors are generic. For a serious estimate, enter vendor quotes or your own cost models, and adjust the factors. All results are engineering estimates that you must check before relying on them.

Why does the Economics tab say “Cost evaluation is off”? The process has no cost data, usually because it was imported from an .spf file. Enter the equipment costs and prices, then click Turn on cost evaluation. See Economics.

Where are the units settings? FlowState works in fixed SI-based engineering units: kg, °C, bar, h, m³ and $. Labels and table headers state the unit of each value.

Troubleshooting

The window is blank, or the app does not start. FlowState draws with the GPU. Update your graphics driver. On Linux, check that the Vulkan or OpenGL drivers for your GPU are installed.

Excel cannot reach the automation API. Make sure the server is running (Tools ▸ Start automation server, or flowstate-cli serve). Use http://127.0.0.1:8765 in the URL rather than a host name. Browser-based tools such as Office Scripts also need their origin allowed. See Command line and automation API.

An imported .spf file gives warnings. The warnings are listed in the process notes. See Importing .spf project files.

Support

E-mail support@yaylali.uk. To help us answer quickly, include:

  • your FlowState version (shown in Help ▸ About FlowState) and operating system;
  • what you did, what you expected, and what happened;
  • if you can share it, the .flow file, or a cut-down version that shows the problem.

FlowState is developed by Kemal Yaylali (kemalyaylali.bio).