Oxygen is carried in three real compartments, and the dive response decides which one pays for muscular work:
O2_total = O2_lung + O2_blood + O2_muscle(myoglobin)
VO2_total(t) ≈ k · HR(t) (Fick principle, simplified)
Dive response ON:
core draw = (1 − muscleFrac) · VO2_total ← lung, then blood
muscle draw = muscleFrac · VO2_total ← myoglobin only (vasoconstricted)
Dive response OFF:
full VO2_total draws straight from lung → blood
(muscle stays perfused, myoglobin barely touched)
Blackout is a brain/heart event, so it is triggered only when the core pool (lung + blood) hits zero — not when muscle myoglobin runs out. Running out of muscle O2 instead forces local anaerobic metabolism (fatigue, lactate), which is uncomfortable but not lethal on its own. That is exactly why peripheral vasoconstriction is adaptive: it sacrifices muscle's oxygen supply to protect the core.
- Species buttons — swap body mass, resting/diving heart rate, compartment sizes and Aerobic Dive Limit (ADL) between a Weddell seal, a sperm whale and a Cuvier's beaked whale.
- Target depth / Planned time at depth — your dive plan; the sim also auto-ascends early if the core O₂ reserve gets critical, or force-ascends if the dive runs far past the ADL.
- Dive response toggle — with it off, the core pool alone must fund the whole body's consumption, so it runs out far faster.
- Predicted outcome — before or during a dive, the sim numerically fast-forwards a copy of the same physiology with your current plan to report whether the core pool would still hold O₂ at the moment of surfacing. This is a live computation, not a canned message.
Simulated clock: 1 real second ≈ 1 minute of dive time.