The heart as two coupled pumps. Everything here is computed live from equations in your browser.
Educational model, not medical advice. It is not a diagnostic tool and does not represent any real person.
The science
Time-varying elastance. Each ventricle is a chamber whose stiffness changes with time: P = E(t)(V − V0) with E(t) = Ed + (Emax − Ed)·e(t). The activation e(t) = sin²(πt/Ts) during systole (length about 0.32√T), zero otherwise. This is a standard textbook idealisation (Suga–Sagawa style).
Valves are diodes. Flow through a valve is (P_up − P_down)/R_valve when positive, zero otherwise. Stenosis raises R_valve; regurgitation adds a leak back through the closed valve.
Vessels. Arteries are a windkessel (compliance C with resistance R_s to the veins); veins and the lungs are compliant compartments. C dP/dt = Q_in − Q_out. Six volumes are integrated with RK4 at 0.5 ms.
Emergent behaviour. Frank–Starling (more filling, bigger stroke volume), mean pressure MAP ≈ CO·SVR + CVP and the pressure gradient across a narrowed valve are not programmed in; they come out of the equations.
Simplifications. Atria are passive chambers (no atrial kick), blood has no inertia, no baroreflex, no coronary flow, one fixed body size. Parameter values are model values in the physiological range, not patient data [check against a physiology textbook before quoting].
Sources of this kind: cardiovascular physiology textbooks and reviews on time-varying elastance and lumped-parameter circulation models.
Made with Blender (heart, valves, vessels) and rendered with Three.js. Educational use only.