Oxygen entering the construct from its surface diffuses inward while cells consume it. At steady state this is a reaction–diffusion balance — Fick's second law with a sink term, solved here on a spherical shell in one radial dimension:
D · (d²C/dr² + (2/r)·dC/dr) = Q(C)
Q(C) = Q_max · C / (K_m + C) (Michaelis–Menten uptake)
D is the O₂ diffusivity in tissue, and Q(C) is oxygen consumption rate — it saturates at Q_max as C rises and drops toward zero as C→0, so cells can starve locally even while the bulk medium is well oxygenated. Solved numerically on a 1-D radial grid every frame with an explicit finite-difference step (dt clamped for stability), a fixed boundary condition C=C_ext at the surface, and a zero-flux (symmetry) condition at the centre — or a fixed C=C_ext at any vascular channel you add, which acts as an internal oxygen source.
- Construct radius — the classic diffusion-limit problem: passive O₂ diffusion only reaches ≈150–200 µm into avascular tissue before consumption outpaces supply. Past that, a hypoxic/necrotic core forms — the central obstacle in engineering any tissue thicker than a thin sheet.
- Cell density — scales Q_max; denser, more metabolically active tissue consumes O₂ faster and shrinks the diffusion depth.
- External O₂ — the boundary concentration C_ext (culture medium or blood oxygenation); lowering it starves the whole construct faster.
- Add Vascular Channel — places an internal cylindrical O₂ source through the construct core, modelling a perfused microchannel or a nascent capillary — exactly the strategy (vascularisation / bioprinted channel networks) real tissue engineers use to beat the diffusion limit and grow constructs thicker than a few hundred microns.
Cell colour maps directly to local O₂: green (well-oxygenated) → amber (hypoxic, below the survival threshold) → dark red/removed (necrotic, O₂ below the death threshold for a sustained period).