The culture's specific growth rate follows the Monod equation, saturating toward μmax as substrate becomes plentiful and additionally throttled by how much oxygen is dissolved in the broth:
μ = μmax · S/(Ks+S) · DO/(Ko+DO)
dX/dt = μX − D·X
dS/dt = −μX/Yxs + D·(Sf−S)
dP/dt = (α·μ + β)·X − D·P
dDO/dt = k_La·(DOsat−DO) − qO2·X − D·DO
Biomass X, substrate S and product P are integrated forward every frame with a fixed-step RK4 solver — nothing here is a scripted animation. D (the feed dilution rate) is zero in batch mode; switching to fed-batch continuously bleeds fresh concentrated substrate (Sf) into the vessel while simultaneously diluting X, S and P, exactly as a real fed-batch fermenter mass balance requires.
- Initial substrate S₀ — starting sugar/nutrient concentration; more substrate supports a longer exponential phase before it runs out (batch mode).
- Aeration (k_La) — the oxygen mass-transfer coefficient. Too low and dissolved oxygen collapses under respiration demand, which throttles μ through the DO/(Ko+DO) term even while substrate is abundant — a real oxygen-limited fermentation.
- Feed rate (D) — only active in fed-batch mode; higher D delivers substrate faster but also washes out biomass and product faster through dilution, so there is a real trade-off, not a free lunch.
- Product P — follows Luedeking-Piret kinetics: partly growth-associated (α·dX/dt, e.g. a primary metabolite made only while cells divide) and partly non-growth-associated (β·X, made continuously by resting cells too).
Real-world relevance: this is the same coupled-ODE model (Monod + Luedeking-Piret + oxygen-transfer balance) process engineers use to design and control industrial fermenters for antibiotics, enzymes, biofuels and single-cell protein.