Biomass X g/L-
Substrate S g/L-
Time h-
Generations-
Phase-

Culture Flask Lab: Monod Growth and Chemostat

Grow a culture in a flask, watch the lag, exponential and stationary phases, then switch to a chemostat and find the washout point.

Culture controls

Presets

Actions

Readouts

Lag adaptation α (0 → 1)-
Specific growth rate μ(S)·α-
Net rate d(ln X)/dt-
Doubling time now-
Optical density OD600 (illustrative 2.5 per g/L)-
Critical dilution rate D_c (washout)-
Chemostat S* (theory)-

Graph: growth curve (log scale)

Graph: substrate and biomass

Graph: Monod curve

Experiment: does the simulation agree with theory?

Exponential slope vs μ-
Chemostat steady state-
Washout threshold-
Batch mass balance-
The science

Monod growth. The specific growth rate depends on the limiting nutrient: μ(S) = μmax·S/(Ks + S). Ks is the concentration at which growth is half of maximal. Biomass and substrate are linked by the yield Y: dS/dt = −(1/Y)·dX/dt (growth part).

Growth phases. The lag phase is modelled with the Baranyi–Roberts adaptation factor α = q/(1+q), dq/dt = μmax·q, with q₀ set from the lag time λ (h₀ = μmax·λ). Exponential growth has ln X rising with slope μ (doubling time ln2/μ). When S falls, growth decelerates to a stationary phase; the loss term kd·X produces a decline or death phase.

Chemostat. With dilution rate D and feed concentration S₀ the steady state is S* = Ks (D + kd)/(μmax − D − kd) and X* = Y (S₀ − S*) (for kd = 0). The population is washed out when D exceeds D_c = μmax·S₀/(Ks + S₀).

Checks. The four checks integrate the ODEs with RK4 and compare with these closed forms (slope of ln X, steady state, bisection of the washout threshold, conservation of X + Y·S).

Honest limits. One limiting substrate and one species; no pH, oxygen, product inhibition or diauxie; deterministic (no cell-to-cell noise). Default constants are illustrative (real glucose Ks for E. coli is much smaller, μmax depends strongly on temperature and medium). The visible bacteria are a display scaled with the biomass, not a count.

Made with 🟠 Blender · Three.js