untangle.bio is an AI-native platform for downstream process design in biotechnology. Generate optimal purification routes, run real-time simulations, and perform techno-economic analysis — all in one workspace.
Get up and running in under 5 minutes. Open the app — the canvas greets you with an empty state and a single call to action: Start here. Click it to launch the guided wizard, which walks you through feed definition, target selection, and route generation in one flow.
The canvas empty state shows a single button. Click it to open the guided wizard — no setup required.
Enter your feed components from 300+ molecules, set flow rate, and select the products you want to recover.
Browse ranked routes by yield, purity, and CAPEX. Apply one to the canvas, inspect it, then return to pick another.
Pro tip: Start with the Balanced optimization mode for your first project. It provides a good mix of yield and purity while keeping costs reasonable.
untangle.bio is a conceptual process design tool, intended for early-stage route screening and feasibility assessment — not for detailed engineering or final process validation. Understanding what the simulator does and does not model will help you interpret results correctly.
Engineering interpretation required. Results should be treated as indicative order-of-magnitude estimates. Promising routes identified by untangle.bio should be validated with detailed process modelling, pilot-scale experiments, and consultation with separation specialists before making engineering or investment decisions.
The recommended entry point for new sessions. Click Start here on the empty canvas (or Start here in the toolbar) to open the guided wizard. It bundles feed definition, target selection, and route generation into a single step-by-step dialog so you can go from a blank canvas to a ranked list of routes in minutes.
After applying a route: The canvas is populated with the full process flowsheet and you can inspect every stream and unit operation. The Back to Results button in the toolbar lets you return to the results list, remove the current route from the canvas, and pick a different one. See Back to Results for details.
untangle.bio follows a proven engineering workflow that mirrors how process engineers actually work — from initial feed characterization to final economic evaluation.
Define your input stream with volumetric flow rate and component specifications. The platform includes an extensive molecule database with physical properties for accurate modeling:
Select one or multiple target products from your feed components. untangle.bio optimizes routes for maximum recovery and purity of specified products, with support for complex multi-product separations.
The AI engine generates thousands of candidate routes using a diversity-preserving genetic algorithm. Set constraints and optimization goals:
Run rigorous mass balances with stream-level tracking of concentrations, pH, and flow rates. The simulation engine handles:
Results panel: When a unit operation node is selected, the Properties panel opens with the Results tab active by default — showing stream concentrations, yield, purity, and flow rate at a glance. Switch to Parameters to adjust operating conditions.
A picked route is where the engineering starts. Three tools work on the flowsheet as it stands on the canvas:
After applying a generated route to the canvas you may want to compare it visually with alternatives before committing. The Back to Results button in the toolbar makes this frictionless:
The results list is saved in memory for the current session. It is cleared when you start a new project or close the browser tab.
Unsaved changes: Clicking Back to Results removes the currently applied route from the canvas. Any manual edits made after applying (added nodes, changed parameters) will be lost. Use Ctrl + Z after returning if you change your mind.
Alongside the automated route generators, you can build and edit process flowsheets entirely by hand — drag nodes onto the canvas, wire them together, and run the simulation yourself. This is useful when you want to test a specific sequence, reproduce a literature process, or make targeted modifications to a generated route.
Drag a Feed Stream node from the left palette onto the canvas. Double-click it to open the feed configuration dialog. Set the volumetric flow rate, temperature, and pH, then add your components — either from the built-in molecule database or as custom entries with manually entered properties.
Drag one or more unit operation nodes from the palette. Available operations are grouped by category:
A separate Sources & Sinks section at the top of the palette holds the feed, product and waste nodes plus reagent feeds — wash water (💧), NaOH solution (🔵), and HCl solution (🔴). These are covered in steps 1, 4 and 5.
Double-click any unit operation to configure its parameters (MWCO, pH target, wash volume, etc.).
Press C to enter Connect Mode (the current mode is shown in the status bar at the bottom of the window). In this mode, hovering over a node reveals its connection handles. Click and drag from one handle to another to draw a stream edge.
| Handle | Position | Meaning |
|---|---|---|
output |
Right side of feed node | Feed stream outlet — connect to the first unit operation's input |
input |
Left side of unit operation | Main process inlet |
light |
Right side of unit operation | Light-phase outlet — permeate, filtrate, mother liquor, volatiles |
heavy |
Bottom of unit operation | Heavy-phase outlet — retentate, concentrate, solid, crystals |
dilution |
Top of filtration nodes | Auxiliary water inlet for diafiltration — connect a Wash Water node here |
Tip: Press V to return to Select Mode for moving nodes around. Use Ctrl + Z / Y for undo/redo.
Every outlet of every unit operation must terminate at either a Product node or a Waste node — the simulator validates this before running. Drag these from the palette (Sources & Sinks section) and connect them to the appropriate outlets.
To model diafiltration or pH adjustment, drag reagent feed nodes from the palette and connect them to the appropriate inlets:
dilution handle on any filtration nodePress F5 or click the Recalculate button in the toolbar. The simulator performs a steady-state mass balance through every node in sequence, propagating concentrations, flow rates, and pH along every stream. Results appear as labels on stream edges and as summary panels on each unit operation node.
Validation errors: If the simulator reports dangling outlets or unconnected streams, check that every outlet handle on every unit operation is connected to either a downstream node, a Product node, or a Waste node. Unconnected outlets prevent the simulation from running.
Accurate feed characterization is critical for reliable route optimization. untangle.bio provides comprehensive tools for defining complex biotechnology feeds.
The platform includes 300+ pre-characterized molecules across key categories:
Database integration: Clicking any molecule automatically populates all relevant properties for separation modeling, including molecular weight, charge, and transport properties.
untangle.bio uses advanced algorithms to explore the vast space of possible purification sequences and identify optimal routes based on your criteria. The evolutionary algorithm is the default and recommended mode — it returns only feasible routes (meeting both yield and purity thresholds) and streams results live to the UI as each simulation completes.
The platform employs a diversity-preserving genetic algorithm optimized for breadth rather than convergence:
Each candidate route is costed as it is generated, so the results list carries a screening-grade cost of goods in dollars per kg of pure product alongside yield, purity and CAPEX. The 3D scatter plot uses cost of goods as its third axis, switching to a log scale when the spread across routes is wide. These numbers are built on one shared set of default economics, which makes them comparable between routes rather than a quote for any one of them. Open the Economic Analysis dialog on the route you keep for the full picture.
Choose the optimization goal to guide the search:
All generated routes pass through 30+ expert rules that eliminate physically impossible or economically infeasible combinations:
The simulation engine performs rigorous mass and energy balances with real-time validation of process feasibility and stream compatibility.
untangle.bio uses a mass-flow-based approach for accurate modeling:
// Convert to mass flows
mass_flow = concentration × volumetric_flow
// Apply separation efficiency
retained_mass = mass_flow × rejection_coefficient
permeate_mass = mass_flow × (1 - rejection_coefficient)
// Enforce conservation
total_out = retained_mass + permeate_mass
assert(total_out == mass_flow_in)
pH is tracked throughout the entire process with buffer capacity weighting:
Calculate solves the flowsheet as a mass balance. Thorough, next to it in the toolbar, replays the same flowsheet with a heavier engine: streams carry temperature and pressure, thermal steps are costed from real duties, and recycle loops are converged rather than ignored. Nothing about your flowsheet changes, so the two runs are directly comparable.
The dialog opens with a convergence banner (iterations, method, residual), then plant totals: heating kW, cooling kW, electricity kW, steam kg/h, cooling water m³/h and utility cost per hour. Below that, one row per step shows inlet temperature, heating, cooling, electricity, steam and the mechanism that set the duty. Click a row to expand its design basis, every outlet stream with flow, temperature, pH, mass flow and composition, and any warnings raised for that step.
An unconverged run is not a solved flowsheet. If the banner says NOT CONVERGED, the numbers below it are a snapshot of an iteration that never settled. Reduce the recycle fractions or simplify the loop and run it again.
No baseline yet? Opening the dialog on a flowsheet that has not been calculated runs the baseline mass balance for you. If that fails, the dialog says what is blocking it (missing target product, unconnected outlet, unconfigured feed) instead of running on nothing.
Real plants send material backwards: mother liquor to the crystallizer, retentate to the feed tank, solvent to the extractor. Add a loop from the Thorough dialog with + Add recycle and give it four things:
The loop is drawn on the canvas: a recycle mixer node is spliced in ahead of the target step and the return stream is wired back into it. After a run, the loop edge is labelled with the converged flow, temperature and pH, so you can see what is actually circulating. Loops live on the canvas rather than in the dialog, which means they survive closing the dialog and reloading the page.
The overlay is display only. Calculate still sees the same acyclic chain it always did, so adding a loop never invalidates your baseline mass balance.
Loops change the economics. Recycled material is not effluent. Once a thorough run has converged, the Economic Analysis panel prices waste water on the net load leaving the plant and shows thorough flows + duties (recycle loops priced) in its header. With a loop drawn but no converged run it says loops not priced, run Thorough, and treats every outlet as if it left the process.
The bioreactor is a dynamic fermentation model, not a yield table. It integrates growth over time and reports the broth that purification will actually receive.
Product inhibition needs a Pmax, and where that number comes from is stated rather than buried. In order: the figure you type into Max Product Titer; for a colloidal product (a gum, a protein, a lipid) the top of its reported concentration range, because a gelling exopolysaccharide does not leave solution at a fraction of saturation; otherwise the lower of a fifth of aqueous solubility and the top of that range. That keeps butanol on its real ~15 g/L ABE ceiling while letting gellan gum reach the 10–20 g/L an industrial fermentation actually makes — the fifth-of-solubility rule alone pinned it at 2 g/L, from a listed solubility of 10 g/L. The ceiling drives growth continuously through the Levenspiel term, whose sharpness is also settable, so the batch slows towards it instead of being clipped at it, and the ceiling that bound a run is reported next to the titer.
The end of a batch is an economic decision, not only an exhaustion event, so the model makes it. It tracks cycle productivity as the batch runs — product in the vessel over the whole cycle it takes to get there, turnaround included — and harvests once that has passed its peak. The alternatives (run to substrate exhaustion, to maximum productivity, or to a fixed time) are selectable, and the reason the run ended is always named: substrate exhausted, oxygen starved, product inhibition, vessel full, productivity optimum, steady state, washout or time limit.
The jacket has to remove the agitator as well as the biology. Cooling duty is reported as metabolic heat plus shaft power, less the latent heat the exhaust gas carries away as it leaves saturated — and charged to the TEA on that basis, which it was not before: sizing the utility on metabolic heat alone understated it by the whole specific power, 2 to 5 kW/m³ on an aerobic microbial vessel. The two peaks coincide, because the DO controller ramps the agitator hardest exactly when oxygen demand is highest. A warning fires when the total exceeds the vessel’s installed cooling capacity, which is a design failure a jacket cannot argue with.
Impeller speed is solved from the specific power asked for, not typed in, and everything that follows from it is reported: tip speed, impeller Reynolds and Froude numbers, the Nienow mixing time, the gas flow number against the flooding transition, kLa, the hydrostatic split between oxygen saturation at the surface and at the sparger, and the dissolved CO2 a tall vessel accumulates. At constant P/V, tip speed rises with scale and mixing time rises faster; a scale translation names which quantity the chosen criterion cannot hold constant, because that is the one that will be blamed when the large-scale batch underperforms.
The generator dialogs show a live preview of the broth: a component table with concentrations and mass flows, product titer, cell density, batch time, cycle time, working volume and vessel count, and the mechanism that limited the batch (substrate, oxygen or inhibition). A fermentation profile chart plots biomass, substrate, product, growth rate and dissolved oxygen against time, so an oxygen floor is visible rather than inferred. Route generation searches downstream of exactly this stream.
Sizing is on the full cycle. Vessel volume is set by fill, sterilization, inoculation, fermentation, drain and CIP together, not by fermentation time alone. Turnaround is typically 20–40% of a microbial cycle, and ignoring it undersizes the plant.
The choice of host also propagates downstream. Clarification uses the organism’s own cell diameter and density in a Stokes and sigma-factor calculation, so a bacterial broth needs far more centrifuge capacity than a yeast or filamentous fungal broth to reach the same recovery. The difference shows up mostly in equipment count and cost rather than in yield, until the machine count is capped.
Built-in cost estimation provides immediate economic feedback on route alternatives using industry-standard methodologies.
Equipment costs are scaled using the power law, with an exponent that varies by operation type — generally following the "six-tenths rule" but calibrated individually to each technology class:
CAPEX = Base_Cost × (Flow_Rate / Reference_Rate)^n
Total_CAPEX = Σ(Equipment_Cost × Lang_Factor)
The exponent n is not a fixed 0.6 for all equipment — it is calibrated per technology class. Chromatography columns and membrane systems (area-limited equipment) scale more favourably than thermal or cryogenic systems. As a rough guide: membrane and column operations sit in the lower range (~0.55–0.65), mechanical separators in the middle, and drying operations — especially freeze drying — at the higher end (~0.70–0.75).
Lang factors (1.5–3.0×) account for installation, instrumentation, and auxiliary equipment based on operation complexity. All base costs are referenced at 100 L/hr feed rate (2026 USD).
Annual OPEX is built up from several itemized components:
Working capital is itemized rather than estimated as a flat fraction of FCI:
Open the Economic Analysis dialog from the toolbar. Inside it, the analysis is split across several tabs:
A generated route is a starting point, not a finished design. The Optimize button searches the operating parameters of the flowsheet on the canvas for a better way to run it. No step is added, removed or reordered, so the answer is always the same process you were looking at.
Pick what the search should optimize for:
Four of the objectives are minimised perfectly by making no product at all, and the quality objectives are maximised by spending unlimited capital. The dialog therefore offers three floors, all on by default where they apply:
Optionally the search may move the feed rate between 0.25× and 4× the canvas value. Composition is never touched: that is your measured fact, and it is edited on the feed node. Throughput matters because raw materials dominate annual running cost, and with the rate pinned a running-cost search is partly minimising a constant.
Single-product flowsheets only. Optimize and Tornado model a route as one linear list of steps with one outlet each. A multi-product flowsheet branches, so both buttons are disabled when more than one target product is selected.
Choose Reach a target cost in the Optimize dialog and name a cost per kg. The answer comes in two stages, and they answer different questions:
A goal seek is not bound by the economic guard, since cost is the thing being targeted.
The tornado tool answers “which input actually moves the number?” and it does so in two distinct modes, which can be run together against any of the eight objectives with a variation percentage you choose:
Bars are sorted by swing, with the low and high case shown either side of the baseline, so the dominant driver is the top bar. Keeping the two modes apart matters: a lever you can turn and an assumption you merely believe should never sit in the same ranking.
A separate cost-driver tornado (flow rate, yield, selling price) lives on the Sensitivity tab of the Economic Analysis dialog, for project-level economics rather than flowsheet parameters.
untangle.bio supports complex separations where multiple valuable products are simultaneously recovered from a single feed stream through branching routes. Each product is tracked individually for yield and purity and exits at a dedicated product node.
At every two-outlet unit operation, each product is assigned to whichever physical stream carries more of its mass — heavy (retentate/solid) or light (permeate/filtrate). Products that end up in different streams at the same step are considered separated at that step and branch into their own product nodes. Products that remain together continue downstream together.
Design constraint: For N selected products, the route must produce exactly N distinct product nodes — each product must exit through a unique (step, outlet) combination. Routes that fail to separate all products are automatically rejected.
Multi-product routes are generated by the same diversity-preserving genetic algorithm used for single-product runs — the generator simply switches to a multi-product fitness function when you select two or more targets. There is no separate constructive search; the wizard and generator both call the evolutionary streaming engine for any number of products.
When more than one target is selected, a route's reported yield and purity are the average across all target products. A route that recovers one product well but fails to separate a co-product therefore scores low rather than being hidden — it still appears in the results list and 3D plot, flagged as infeasible, so you can see why it fell short.
Every candidate genome is passed through the full mass-balance simulation engine and gated the same way as single-product routes:
Streaming results: Routes are yielded to the UI as soon as each simulation completes — you see results appear live without waiting for the full population to finish.
A multi-product flowsheet is not a straight line: a centrifuge sludge goes one way and its supernatant another, and each branch has its own downstream train. The canvas sends every step together with the stream it is actually fed, meaning the upstream step and which of its outlet handles the edge leaves from.
What follows from that:
Route generation and the parameter search still work on sequential routes. Wiring is honoured wherever a drawn flowsheet is simulated.
The platform incorporates decades of downstream processing knowledge through 30+ expert rules that prevent infeasible designs. Rules are evaluated against the actual stream composition at each step — not just the feed — so violations caused by upstream operations are also caught. The rules below are representative examples, not the full set.
Selectivity (α) measures how well each unit operation enriches the target product relative to impurities. It is calculated at every step and shown in the route results panel.
α = (product concentration factor) / (impurity concentration factor)
concentration factor = C_out / C_in
α > 1 → step enriches product over impurities (good)
α = 1 → no selective separation
α < 1 → step enriches impurities more than product
Use High Selectivity optimization mode to restrict results to routes where every single step achieves α > 1.0. The route list and 3D scatter plot include filter tabs to show only routes with fully monotone selectivity profiles.
All 38 operations have 3–5 configurable parameters (accessible by double-clicking the node) with validated scientific defaults used by the process generator.
| Category | Operations | Outlets |
|---|---|---|
| Clarification | Disc centrifuge, depth filtration, microfiltration, flocculation, Nutsche filter, basket centrifuge | 2 (light + heavy) |
| Purification | UF 10k, UF 30k, cation/anion exchange, affinity, size exclusion, HIC, reverse phase, precipitation, distillation, reverse osmosis, electrodialysis, liquid-liquid extraction | 2 (light + heavy) |
| Polishing | Nanofiltration, crystallization, activated carbon adsorption, viral inactivation | 2 for NF/crystallization; 1 for viral inactivation, activated carbon |
| Drying | Spray drying, freeze drying, vacuum tray drying, thin-film evaporator, fluid bed dryer | 2 (solid/heavy + volatiles/light) |
| Cell disruption | High-pressure homogenizer, bead mill | 1 (single outlet) |
| Upstream / reaction | Stirred tank, fed-batch, perfusion, continuous (chemostat), air-lift bioreactors; conversion reactor; continuous heat sterilizer; mixing vessel | 1 (single outlet) |
Two-outlet operations produce a heavy stream (retentate, concentrate, solid, crystals) and a light stream (permeate, filtrate, mother liquor, volatiles). Both outlets must be connected to a downstream node, product node, or waste node before the simulation will run.
The built-in molecule database currently covers a limited set of common biotech components — proteins, sugars, organic acids, amino acids, salts, alcohols, and cell types. It is actively being expanded over time based on user feedback and real-world process cases.
For testing purposes: If your molecule is not in the database yet, you can add it manually directly in the feed stream dialog. Enter the component name and as many physical properties as you know (MW, charge, solubility, pKa, log P, etc.). The simulator will use whatever properties you provide — missing values are handled gracefully, though accuracy improves with more complete data.
Note that molecules added this way are local to your simulation only — they are not automatically added to the central database. To request a molecule be added for all users, reach out via LinkedIn.
If a compound is not in the database, search it by name in the molecule picker and pull its properties straight from PubChem. Molecular weight, formula and the physical properties PubChem holds are filled in for you; anything it does not carry stays editable, and the app tells a rate-limited lookup apart from a compound that genuinely has no record.
The database is continuously expanding. If you work with a molecule that is missing, reach out on LinkedIn — feedback from practitioners directly shapes what gets added next.
Two export buttons sit at the right of the toolbar, both enabled once a simulation has results:
Pop-ups: the report opens in a new tab, so allow pop-ups for untangle.bio. If the browser blocks it, the output panel says so.
Calculate the TEA before exporting if you want economics included. Both exports take whatever the session holds at the moment you click.
Signing in gives you an Account button in the toolbar and a dedicated account page.
.json file, or opened with Open project. All three go through the same validation.untangle.bio ships a Model Context Protocol (MCP) server, so you can drive the engine — generate purification routes, simulate mass balances, and run techno-economic analysis — directly from your own AI assistant. Inference runs on your model and plan; the connector only answers tool calls, and never holds an API key on your behalf.
Endpoint: https://mcp.untangle.bio/mcp (Streamable HTTP). The connection is authorized once via OAuth, after which the tools appear in your assistant's tool menu.
If you use Anthropic's Claude, the button below opens the Add custom connector dialog with the name and endpoint already filled in — just review and confirm, then complete the one-time OAuth sign-in. No copy-pasting the URL into settings.
On a Team or Enterprise plan? Individual members can't add custom
connectors themselves — a workspace Owner must add it once for the
organization first. The Owner uses this link:
https://claude.ai/admin-settings/connectors?modal=add-custom-connector&connectorName=Untangle&connectorUrl=https%3A%2F%2Fmcp.untangle.bio%2Fmcp
After that, each teammate opens Settings → Connectors, finds
Untangle (labeled "Custom"), and clicks Connect to
authorize with their own account.
ChatGPT doesn't yet support a one-click install link, so you add the server manually
(a quick, one-time step). In ChatGPT, enable Settings → Connectors →
Advanced → Developer mode, then Connectors → Add, give it a name, paste
the endpoint https://mcp.untangle.bio/mcp, choose OAuth,
and create. Via the Responses API, pass the same URL in the request's
tools array as an mcp tool
({"type": "mcp", "server_url": "https://mcp.untangle.bio/mcp"}).
Because MCP is a shared, vendor-neutral standard, the same endpoint works from every MCP client — only the place you paste it differs. In Claude (claude.ai or the Claude Desktop app) you can also add it by hand: open Settings → Connectors → Add custom connector, give it a name, and paste the URL; Claude walks you through the OAuth sign-in on first use. For any other MCP client — Cursor, Cline, Zed, custom agents built on the MCP SDKs, or the reference MCP Inspector — register it wherever that client lists MCP servers, using the HTTP/SSE (Streamable HTTP) transport and the same URL. In every case no per-vendor build or API key is required on your side.
| Tool | What it does |
|---|---|
list_unit_operations |
List available downstream unit operations. |
get_molecules |
List the built-in molecule database with physical properties. |
generate_processes |
Evolutionary search for single-product purification routes. |
generate_processes_multiproduct |
Branching flowsheets that recover 2+ products in parallel. |
simulate_separation |
Step-by-step mass and energy balance for one route. |
simulate_fermentation |
The bioreactor alone: the broth it makes, why it ended there, and charts of the run. |
calculate_tea |
Detailed techno-economic analysis (CAPEX / OPEX / COGS / payback). |
tea_scale_analysis |
Sweep economics across a range of throughput scales. |
tea_sensitivity |
Which inputs move COGS most (tornado data). |
tea_investor_metrics |
NPV, IRR and payback framed for an investor conversation. |
get_bioreactor_parameters |
The settable parameters of one bioreactor, with units and ranges. |
flowsheet_link |
Deep link that opens a route on the canvas, plus an importable JSON file. |
plot_process_landscape, plot_tea_sensitivity, plot_tea_scale, plot_cost_breakdown, plot_fermentation_profile |
PNG charts of a prior result — route landscape, tornado, economics vs scale, cost breakdown, fermentation panels. |
report_issue |
Your assistant flags a result that looks physically or economically implausible, straight to our engineers. |
Building your own agent? The complete machine-readable reference — every tool
with its full JSON argument schema, the server instructions and the canonical
workflow — is at untangle.bio/llms-full.txt.
Integrating over plain HTTP instead of MCP? The curated OpenAPI spec of the
engine endpoints is at untangle.bio/openapi.json
(requests need a signed-in account's bearer token).
A typical flow: get_molecules → generate_processes →
simulate_separation on a promising route → calculate_tea
on the simulated result. With a fermentation upstream, start one step earlier:
simulate_fermentation settles the broth first, since that broth is
the feed every downstream route is conditioned on. It answers in charts — the
same concentration, oxygen, volume and heat panels the workspace draws.
The engine behind untangle.bio is documented as a knowledge graph: one node per topic — a separation model, a cost basis, a generator rule — cross-linked to the topics it depends on and to the code that implements it. The Untangle Universe renders that graph as an interactive 3D map: 116 knowledge nodes, 380 cross-links and 179 model files, clustered into constellations, with the most-connected nodes forming the visible backbone of the platform. A third view drops the topics for the molecule database itself: 5,501 stored property values across 335 molecules, one mote per value.
Explore the Untangle Universe →
Ready to start designing processes? Launch the workspace and begin optimizing your downstream operations.