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
| Chapter | Read it to… |
|---|---|
| Installing FlowState | install on Windows, macOS or Linux |
| Your first flowsheet | build the “Getting Started” process step by step |
| The workspace tabs | understand the Flowsheet, Streams, Equipment, Schedule, Resources, Economics and Environment tabs |
| Components, mixtures and property methods | register components, define media and buffers, choose a thermodynamic model |
| Unit procedures and operations | find the right one of the 98 unit procedures and build recipes |
| Scheduling | set batches per year, cycle time, campaigns and equipment sharing |
| Economics | estimate capital and operating cost, profitability, minimum selling price and sensitivity |
| Environment and LCA | report waste and emissions and run a life-cycle assessment with SimaPro exchange |
| Examples Library | open one of the 38 ready-to-run models and see how they compare with the published studies |
| Importing .spf project files | bring existing project files into FlowState |
| Reports and exports | produce HTML, Word, Excel, CSV and SVG output and batch sheets |
| Command line and automation API | script FlowState with flowstate-cli, Excel or Python |
| Keyboard shortcuts | work faster |
| FAQ and support | get 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
.flowfiles (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.
| Platform | Package | Requirements |
|---|---|---|
| Windows | Microsoft Store (“FlowState Process Studio”), installer, or portable .zip | Windows 10 or 11, x64 |
| macOS | Universal disk image (.dmg) | macOS 11 Big Sur or later, Apple silicon or Intel |
| Linux | .deb package | Debian 12+ or Ubuntu 22.04+, amd64 |
| Linux | Flatpak bundle | Any 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. Sign in to the Microsoft Store with the Microsoft account you were invited with, open apps.microsoft.com/detail/restricted/9PDFRSV87JVP and click Get or Install. The link only works for invited accounts; if it says the app is unavailable, check which account the Store app is signed in with (Store ▸ profile picture).
The Store package:
- appears in the Start menu and registers
.flowfiles; - 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
- Open
FlowState-1.0.0-macos-universal.dmg. - Drag FlowState to the Applications folder.
- 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:
| Option | Effect |
|---|---|
FlowState my.flow | Open 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) |
--library | Open the Examples Library window |
--tab <n> | Start on workspace tab n (0 = Flowsheet … 6 = Environment) |
--select <name> | Select a procedure or stream by name |
--light | Use the light theme for this session |
--about | Show 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:
| Tag | Procedure | Equipment | Recipe |
|---|---|---|---|
| P-1 | In a Reactor | R-101, stirred reactor | CHARGE-SOLVENT, CHARGE-A, CHARGE-B, REACT-1, TRANSFER-TO-PFF |
| P-2 | Plate & Frame Filtration | PFF-101 | FILTER-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).
- Click + New custom four times and rename the new rows Heptane, A, B and C.
- Enter molecular weights: Heptane 100.2, A 150, B 25, C 175.
- 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.
- Type
reactorin 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. - Search for
plateand 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:
- Charge heptane, then A, then B. Select each charge operation and pick its feed stream.
- 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.
- 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
- Learn what each tab shows in The workspace tabs.
- Browse the 98 procedures in Unit procedures and operations.
- Open a larger model, such as Recombinant Enzyme (Yeast) or one of the published case studies, from the Examples Library.
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.
| # | Tab | Shortcut | Shows |
|---|---|---|---|
| 1 | ⛶ Flowsheet | Ctrl+1 | The process diagram |
| 2 | ☰ Streams | Ctrl+2 | Stream table (material balance) |
| 3 | ⚙ Equipment | Ctrl+3 | Sizing, utilisation, purchase cost |
| 4 | ▤ Schedule | Ctrl+4 | Gantt chart, cycle time, bottleneck |
| 5 | 📈 Resources | Ctrl+5 | Utility, power and labour profiles |
| 6 | $ Economics | Ctrl+6 | Capital, operating cost, profitability |
| 7 | ♻ Environment | Ctrl+7 | Waste, 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
| Group | Columns |
|---|---|
| Identity | Name, Formula, Phase (liquid, solid or gas) |
| Physical | MW, density ρ (kg/m³), Cp (kJ/kg·K), normal boiling point Tb (°C), heat of vaporisation ΔHv (kJ/kg) |
| Vapour pressure | Antoine A, B, C; vapour Cp; Henry constant (bar) |
| Equation of state | Tc (K), Pc (bar), acentric factor ω, molar volume, dρ/dT |
| Activity models | UNIQUAC r and q |
| Economic | Price $/kg (purchase), Sell $/kg (revenue), Waste $/kg (disposal) |
| Environmental | ThOD, BOD/COD ratio, VOC flag, Biomass flag |
| Solids | Solubility (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.
- Click + New mixture (it starts as 100 % Water).
- 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
| Model | Use it for |
|---|---|
| Ideal (Raoult) (default) | Raoult’s law with Antoine vapour pressures; similar, non-polar mixtures |
| NRTL | Strongly non-ideal liquids, azeotropes and partially miscible liquids |
| Wilson | Strongly non-ideal but fully miscible liquids |
| UNIQUAC | VLE and LLE (needs r and q for each component) |
| Peng–Robinson | Cubic equation of state (needs Tc, Pc, ω): gases, hydrocarbons, high pressure |
| Soave–Redlich–Kwong | As Peng–Robinson |
Options
| Option | Effect |
|---|---|
| Second liquid phase (VLLE): Allow liquid–liquid split | Three-phase flash; NRTL and UNIQUAC only |
| Liquid density: Temperature dependent | Liquid density varies with temperature (off by default) |
| Vapor phase (γ–φ): Ideal gas, Peng–Robinson or SRK | Vapour fugacities for activity models |
| Liquid corrections: Poynting factor, Excess enthalpy | Corrections for activity models |
| Carboxylic acids: Vapor dimerization | Chemical-theory association of acetic and formic acid in the vapour |
| EOS enthalpy: Residual (departure) enthalpy | Departure 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):
| Group | Operations |
|---|---|
| Material transfer | Charge, Transfer In, Transfer Out, Pull Out, Pull In (to target) |
| Thermal & mixing | Heat, Cool, Agitate, Hold |
| Reaction | Stoichiometric Reaction, Stoichiometric Fermentation, Kinetic Fermentation, Kinetic Reaction (general), Crystallize |
| Separation | Evaporate, Flash (VLE), Batch Distillation |
| Crystallization | Cooling, evaporative and antisolvent crystallization, reactive precipitation |
| Reactions & reactors | Fed-batch Fermentation (Monod), Continuous Culture (chemostat / perfusion), Cell Disruption (multi-product), Reactor Model on Contents (CSTR / PFR / equilibrium) |
| Cleaning | CIP, SIP, Purge |
| Energy & environment | pH Regulation |
In other equipment:
| Group | Operations |
|---|---|
| Separation | Centrifuge, 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 & electrochemical | Dead-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 handling | Mix, Bulk Split, Heat Exchange, Homogenize, Pump, Fill, Store, Transport, Transfer Out (time only) |
| Gas & flow control | Gas Compression, Fan / Blower, Vacuum Pumping, Gas Filtration, Flow Distribution, Flow Adjustment (make-up / purge), Spec-Driven Mixing |
| Crystallization & drying | Continuous crystallization; rotary, drum/Yankee, fluid-bed, filter-dryer, rotary vacuum and sludge dryers (to a target LOD) |
| Solids handling | Mechanical separation, Size reduction (Bond), Conveying, Bulk solids storage, Packaging |
| Reactions & reactors | Continuous Reaction (CSTR), Plug-Flow Reaction (PFR), Equilibrium Reaction, Stoichiometric Reaction (conversion), Cell Disruption (multi-product) |
| Cleaning | CIP, 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
| Term | Meaning |
|---|---|
| Batch time | Time from the start of the first operation to the end of the last one in one batch |
| Cycle time | Time between the starts of consecutive batches |
| Minimum cycle time | The longest equipment occupancy in the recipe; that equipment is the bottleneck |
| Batches per year | Batches that fit in the annual operating time |
| Occupancy | How 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.
| Group | Contents |
|---|---|
| Direct cost factors (× equipment PC) | Unlisted equipment, installation, piping, instrumentation, insulation, electrical, buildings, yard improvement, auxiliary facilities |
| Indirect & other | Engineering, construction, contractor’s fee, contingency |
| Operating cost factors | Maintenance, insurance, local taxes, factory expense, lab/QC/QA, general and unlisted power |
| Investment & financing | Working 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 loans | Loans for DFC, working capital, R&D and royalties |
| Capital estimate & depreciation | DFC method (Factored, Composite factor or User set); depreciation (Straight line, Declining balance, Sum of years’ digits); facility-dependent cost method |
| Production level by operating year | Capacity ramp-up profile |
| Miscellaneous operating costs | Extra annual cost items |
| Labor categories; Laboratory / QC / QA | Labour rates by category; QC tests and costs |
| Credits | By-products, avoided disposal and gate fees |
| Unit cost basis, escalation & minimum selling price | See below |
| Continuous sections in a batch plant | Costing of continuous sections |
| Main product & waste | Main 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)
- Add variables with + variable (a variable path such as
components/Glucose/price) or + common prices. - Set the − % and + % change for each (10 % by default).
- 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)
- Click + scenario, give it a name, and add overrides with + override (a path and a value).
- 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.
| Example | id | What it shows |
|---|---|---|
| Getting Started (A + B → C) | getting-started | Batch reaction in heptane, cake filtration and washing; scheduling and economics. See Your first flowsheet. |
| Recombinant Enzyme (Yeast) | recombinant-enzyme | Aerobic yeast fermentation with Monod kinetics; centrifugation, UF, chromatography, freeze drying. |
| API Intermediate (Kinetics & Solvent Recovery) | api-intermediate | Arrhenius kinetics, EPA venting, FUG solvent recovery, a storage tank, an operator limit, campaigns and debt financing. |
| Bioethanol Recovery (NRTL & MVR) | bioethanol-recovery | A 30-stage NRTL column towards the ethanol–water azeotrope and a 3-effect MVR stillage evaporator. |
Biopharmaceuticals and nutraceuticals
| Example | id | Process |
|---|---|---|
| Antibody-Drug Conjugate (ADC) Manufacturing | adc-bioconjugation | THIOMAB-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-perfusion | 30-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-vaccine | Capsular polysaccharide for a 23-valent vaccine: fermentation, ethanol precipitations, UF/DF, depth filtration, tray drying |
| Semaglutide API (Final Assembly, Line 4) | semaglutide-api | Final assembly from a recombinant GLP-1 precursor and SPPS fragments: couplings, deprotection, two RP-HPLC steps, freeze drying |
| Vitamin B12 via Fermentation | vitamin-b12-fermentation | Fed-batch P. denitrificans, lysis and cyanidation, chromatography, acetone antisolvent crystallisation, filter-drying |
| Retinol (Retinyl Acetate) via Precision Fermentation | retinol-precision-fermentation | Hybrid plant: Y. lipolytica fed-batch fermentation, continuous recovery, acetylation and short-path evaporation |
Food and nutrition
| Example | id | Process |
|---|---|---|
| Cultured Meat (Cultivated Beef) | food-cultured-meat | Bovine satellite cells on microcarriers: seed train, proliferation, differentiation in staggered fermentors, diafiltration, screw pressing |
| Mycoprotein (Fungal Meat Analogue) | food-mycoprotein | Six-week chemostat in a 200 m³ airlift fermentor, RNA reduction, rotary vacuum filtration, texturisation |
| Insect (Cricket) Protein Concentrate | food-insect-protein | Continuous plant for 5 t/h of crickets: blanching, drying, grinding, ethanol defatting, NRTL ethanol recovery |
| Egg White Protein (Recombinant Ovalbumin) | food-egg-white-protein | K. phaffii precision fermentation, MF, UF, ammonium-sulfate precipitation, spray drying |
| Bio-Collagen (Recombinant Collagen Peptide) | food-bio-collagen | Methanol-induced Pichia fed-batch fermentation, UF/DF, acetone precipitation, ion exchange, freeze drying |
| Cocoa Butter Equivalent (Microbial Oil) | food-cocoa-butter-equivalent | Oleaginous yeast fermentation, hexane oil extraction, refining and fractionation into CBE and olein |
| Tequila (Agave to Bottles) | food-tequila | Agave cooking, milling, fermentation, two NRTL batch distillations, barrel ageing, bottling |
| Pectin from Citrus Peels | food-pectin | Continuous plant for 35 t/h of orange peels: acidic extraction, carbon and ion-exchange polishing, IPA precipitation, drum drying |
Chemicals
| Example | id | Process |
|---|---|---|
| Aspirin (Acetylsalicylic Acid) | aspirin | Salicylic acid acetylation, antisolvent recrystallisation, basket centrifuges, rotary drying, solvent recovery in two rigorous columns |
| Erythritol from Glycerol (Yarrowia Fermentation) | erythritol | Glycerol fermentation, ion exchange, SMB chromatography, cooling crystallisation, rotary drying |
| Isobutanol from Corn Stover | isobutanol | Pretreatment and enzymatic hydrolysis, E. coli fermentation, Wilson columns with a decanter, lignin-fired boiler and turbine |
| Malonic Acid by Fermentation (Calcium-Salt Route) | malonic-acid | Yeast fermentation with calcium-malonate precipitation, acidification, ion exchange, nanofiltration, crystallisation |
| Malonic Acid — Process Synthesis & TEA (Processes 2024) | malonic-acid-processes | The calcium-salt plant of a peer-reviewed process-synthesis study (Processes, 2024) |
| Formic Acid from CO2 (Homogeneous Hydrogenation) | formic-acid-co2 | CO₂ 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-hydrogenation | Case A of a peer-reviewed study of the same route (Processes, 2025) |
| Vitamin C by Two-Step Fermentation | vitamin-c | Sorbitol 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.
| Example | id |
|---|---|
| Glucose Syrup 95 % from Wet Starch | starch-wet-glucose |
| Glucose Syrup 95 % from Dry Starch | starch-dry-glucose |
| High-Maltose Syrup from Wet Starch | starch-wet-maltose |
| High-Maltose Syrup from Dry Starch | starch-dry-maltose |
| HFCS 42 from Glucose Syrup | starch-hfcs42 |
| Spray-Dried Sorbitol from Glucose Syrup | starch-sorbitol |
| Maltitol from High-Maltose Syrup | starch-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
| Example | id | Process |
|---|---|---|
| Cellulose Nanocrystals from Kraft Pulp | cellulose-nanocrystals | Batch sulfuric-acid hydrolysis, centrifugation, diafiltration, RO water recovery, spray drying |
| Kraft Pulp and Tissue Paper Mill | kraft-pulp-tissue | Integrated continuous mill: kraft digester, bleaching, tissue machine with Yankee dryer, chemical and energy recovery |
| Lithium Carbonate from Geothermal Brine | lithium-carbonate-brine | Evaporation ponds, boron solvent extraction, purification, carbonation and Li₂CO₃ crystallisation |
| Microalgal Biostimulant from Municipal Wastewater | microalgal-biostimulant | Activated-sludge treatment feeding raceway ponds, algae harvesting, enzymatic hydrolysis to a peptide biostimulant |
| PHA from Food Waste in a Photobiorefinery | pha-photobiorefinery | Acidogenic 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
| Example | Production | TCI | Operating cost | Unit cost |
|---|---|---|---|---|
| ADC | 101.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 mAb | 1,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 vaccine | 31.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 B12 | 18,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 %) |
| Retinol | 349,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
| Example | Production | TCI | Operating cost | Unit cost |
|---|---|---|---|---|
| Cultured meat | 3,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 %) |
| Mycoprotein | 8,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 protein | 10,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 protein | 1,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-collagen | 50.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 equivalent | 4,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 %) |
| Tequila | 1.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 %) |
| Pectin | 5,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
| Example | Production | TCI | Operating cost | Unit cost |
|---|---|---|---|---|
| Aspirin | 2,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 %) |
| Erythritol | 10,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 %) |
| Isobutanol | 40,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 C | 15,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
| Example | Production | TCI | Operating cost | Unit cost |
|---|---|---|---|---|
| Cellulose nanocrystals | 100.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 tissue | 187,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 carbonate | 22,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 biostimulant | 87,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 photobiorefinery | 5,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).
| Example | Main product, study model (kg/h) | FlowState (kg/h) | Deviation |
|---|---|---|---|
| Glucose syrup, wet starch | 12,229.27 | 12,235.43 | +0.050 % |
| Glucose syrup, dry starch | 12,268.54 | 12,274.72 | +0.050 % |
| High-maltose syrup, wet starch | 12,090.33 | 12,096.16 | +0.048 % |
| High-maltose syrup, dry starch | 12,125.83 | 12,131.67 | +0.048 % |
| HFCS 42 | 7,186.64 | 7,186.64 | 0.000 % |
| Sorbitol | 3,762.08 | 3,762.13 | +0.001 % |
| Maltitol | 2,135.66 | 2,135.89 | +0.011 % |
The inventory ratios match the article as well:
| Ratio | Article | FlowState |
|---|---|---|
| Starch per kg glucose syrup | 0.651 | 0.6511 |
| Starch per kg high-maltose syrup | 0.659 | 0.6587 |
| Glucose syrup per kg sorbitol | 1.33 | 1.3290 |
| Maltose syrup per kg maltitol | 2.34 | 2.3409 |
| By-product syrup per kg maltitol | 1.43 | 1.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
.flowfile.
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
| Item | Details |
|---|---|
| Header | Draftsman, designer, company, project, revision, plant, main product and its rate, description; written to the process notes |
| Pure components | Molecular weight, Tb, Tc, Pc, acentric factor, liquid density and Cp at 25 °C, Antoine coefficients, heat of vaporisation, purchase price |
| Stock mixtures | Name and composition |
| Unit procedures | Name, equipment tag, description, flowsheet position, purchase cost; the procedure type is mapped to the nearest FlowState unit procedure |
| Streams | Names, connections, feed composition, temperature and pressure, classification (raw material, revenue, waste, emission), purchase and selling prices |
| Reactions | Stoichiometry and conversions, converted to FlowState’s sequential reactions |
| Separations and splits | Per-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
| Warning | Meaning |
|---|---|
| “… 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
| Command | Output |
|---|---|
| File ▸ Export HTML report… or 📄 Report | A self-contained HTML process report, saved as “title - report.html” and opened in your browser |
| File ▸ Export batch sheet (HTML)… or 📋 Batch Sheet | The 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 tab | The stream table as CSV (“title - streams.csv”): temperature, total mass per batch, volume and component masses |
| ⬇ Export SimaPro CSV… on the Environment tab | A 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…:
- Pick an Operation type.
- 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. - 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:
| Command | Output |
|---|---|
flowstate-cli report my.flow -o report.html | HTML report; add --docx for Word or --rtf for RTF |
flowstate-cli batch-sheet my.flow -o sheet.html | Batch record; --markdown, --docx or --rtf for other formats |
flowstate-cli export-xlsx my.flow -o results.xlsx | Excel 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.svg | SVG 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.csv | SimaPro 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.flowfiles;- a local HTTP JSON API, served either by
flowstate-cli serveor 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.
| Path | Value |
|---|---|
procedures/P-1/operations/REACT-1/duration/process | Process time of an operation, h |
procedures/P-1/operations/REACT-1/kind/reactions/0/extent | An operation parameter |
procedures/R-101/equipment/size | Equipment size |
streams/S-102/spec/A | Feed amount of component A, kg/batch |
components/A/price | Purchase price, $/kg |
resources/agents/Steam/cost_per_t | Utility price |
economics/tax_rate, cycle_time, batches_per_year | Plant and economic settings |
results/schedule/batch_time, results/economics/npv | Results (read-only) |
results/streams/Cake/composition/C | Stream 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]
| Command | Purpose |
|---|---|
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 PATH | Read 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 OUT | Results 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 DIR | Write 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).
| Request | Purpose |
|---|---|
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 /simulate | Simulate and return {"summary", "results"} |
GET /summary, GET /results | Key results, or full results |
GET /report.html, /report.docx, /report.rtf | Process report |
GET /batch-sheet.html, .md, .docx, .rtf | Batch record |
GET /export.xlsx | Results workbook |
GET /table, GET /table/<name>?format=csv|html | Live tables: summary, streams, equipment, schedule, economics, cashflow, utilities, profiles, environment |
GET /chart/<kind>.svg or .csv (?batches=3) | gantt, occupancy, resources, cashflow |
GET /templates | Batch-sheet templates and placeholders |
GET /lca, GET /lca.csv | LCA results, or the SimaPro CSV |
GET /project, PUT /project | The whole .flow JSON |
POST /save | Save 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.
- Start the API (desktop app or
flowstate-cli serve). - Run
flowstate-cli excel-link http://127.0.0.1:8765 -o FlowState.iqy. This writes oneFlowState-<table>.iqyper table andFlowState.pqwith Power Query (M) code. Add--table cashflowto write a single.iqyfile. - Then, in Excel, do one of the following:
- Web query: go to Data ▸ Get Data ▸ Existing Connections ▸ Browse for More… and pick an
.iqyfile. - 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 fromFlowState.pqinto Blank Query ▸ Advanced Editor. Power BI Desktop uses the same code.
- Web query: go to Data ▸ Get Data ▸ Existing Connections ▸ Browse for More… and pick an
- 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
| Shortcut | Action |
|---|---|
| Ctrl+N | New process |
| Ctrl+O | Open |
| Ctrl+S | Save |
| Ctrl+Shift+S | Save as |
These work even while you are typing in a text field.
Editing
| Shortcut | Action |
|---|---|
| Ctrl+Z | Undo |
| Ctrl+Y or Ctrl+Shift+Z | Redo |
| Ctrl+D | Duplicate the selected procedure |
| Delete | Delete 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.
Navigation
| Shortcut | Action |
|---|---|
| Ctrl+1 … Ctrl+7 | Switch workspace tab: Flowsheet, Streams, Equipment, Schedule, Resources, Economics, Environment |
| F | Fit the flowsheet to the window (Flowsheet tab) |
| Esc | Cancel placing a procedure or drawing a stream; close the About window |
Mouse
| Gesture | Action |
|---|---|
| Mouse wheel | Zoom the flowsheet |
| Drag the background (or middle- or right-drag) | Pan the flowsheet |
| Drag from a port to a port | Connect a stream |
| Drag from a port into empty space | Create a feed or product stream |
| Drag a library item onto the canvas, or click it and then the canvas | Place a unit procedure |
| Right-click | Context menu for a procedure, a stream or the background |
Drop a .flow file on the window | Open 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
.flowfile, or a cut-down version that shows the problem.
FlowState is developed by Kemal Yaylali (kemalyaylali.bio).