Each module is a well-mixed compartment. Crew respiration adds CO₂, an onboard scrubber removes it, and Inter-Module Ventilation (IMV) fans exchange air with the neighbouring compartments — the literal hardware that makes the partner segments need each other:
dP_i/dt = K·crew_i / V_i (crew respiration)
− k_s·(P_i − P_base)·[scrubber_i on] (CDRA / Vozdukh)
+ Σ_j (Q_fan / V_i)·(P_j − P_i) (IMV exchange with neighbour j)
- P_i — CO₂ partial pressure in module i (mmHg); V_i — module free volume (US Lab 106 m³, Node 60 m³, Zvezda 90 m³).
- Scrubber term — CDRA (US Lab) and Vozdukh (Zvezda) each pull their own module's CO₂ toward the 0.30 mmHg cabin baseline. The Node has no scrubber of its own — it only breathes through the ducts.
- Exchange term — the IMV fan flow rate sets how fast the ducts equalise concentration between adjacent modules. Turn either scrubber off: raise the fan flow and the healthy segment's hardware pulls the whole station down; leave it low and the failing segment's CO₂ climbs on its own toward the 5.30 mmHg alarm limit.
- Schematic view — drag to pan, scroll to zoom; particle colour tracks each module's live CO₂ level and duct-particle drift direction/speed tracks net flow between modules.
This is the real engineering reason ISS partner segments share one atmosphere loop instead of running independently: cross-module ventilation gives every agency's life-support hardware redundancy for its neighbours, at the cost of also sharing a fault if nobody reacts. The equations and constants here are unchanged from the 3D version of this simulator; a standalone numeric check of the ODE (US scrubber off, flow = 4 m³/min) converges to US ≈ 7.6, Node ≈ 5.5, Zvezda ≈ 2.5 mmHg — the failing module stays hottest even though ventilation shares load with its neighbours, exactly as the exchange term predicts.