Microalgae (e.g. Chlorella vulgaris) in a sealed, LED-lit photobioreactor photosynthesize, fixing CO₂ into biomass and releasing O₂ — the same bioregenerative life-support principle studied by ESA MELiSSA and NASA. Growth follows Monod light-limited kinetics with Beer–Lambert self-shading through the culture depth, then the reactor's net O₂/CO₂ flow is mass-balanced against crew respiration and integrated over time into the cabin's own O₂ and CO₂ concentration:
I(depth) = I₀ · e^(−k·X·depth) (Beer–Lambert self-shading)
μ(I) = μ_max · I / (I + K_I) (Monod light-limited growth)
μ_eff = μ(I_avg) · [CO2]/([CO2]+K_C) (CO2-limited secondary Monod term)
dX/dt = (μ_eff − D) · X (biomass mass balance)
d[O2]/dt = (reactorO2 − crewO2) / V_cabin (cabin O2 mass balance)
d[CO2]/dt = (crewCO2 − reactorCO2) / V_cabin (cabin CO2 mass balance)
μ_eff is μ(I) averaged over reactor depth and de-rated by CO₂ availability, so raising I₀ helps less once X is high (the culture shades itself) and less still if the CO₂ sparge is starved. The two cabin ODEs above are integrated every frame from the reactor's live O₂/CO₂ output and the crew's respiration load, so the O₂%/CO₂% chart is a genuine running simulation, not a scripted animation — it can settle into a steady state, or drift toward hypoxia (O₂ below ~19.5%) or hypercapnia (CO₂ above ~0.5%) depending on the parameters you choose.
- Light intensity I₀ — LED panel output reaching the reactor wall.
- Reactor volume — scales the reactor's absolute O₂/CO₂ throughput (L/hr) for a given biomass density.
- Dilution rate D — continuous harvest/replenishment; too high washes the culture out (μ < D ⇒ decline), too low lets it self-shade into stagnation.
- CO₂ sparge rate — how much CO₂ (from crew respiration + injection) is available to fix; below ~100% it becomes the limiting substrate instead of light.
- Crew size — sets O₂ demand (≈0.55 L O₂/hr per astronaut) and CO₂ production (≈0.46 L CO₂/hr per astronaut, respiratory quotient ≈0.83) that the reactor's output is balanced against.