LV pressure-volume loop
The right edge follows end-diastolic volume. The upper-left corner follows end-systolic elastance and arterial load. Loop width is stroke volume, currently 72 mL.
Three-dimensional cardiovascular physiology
A Guyton venous-return curve, ventricular-arterial coupling, and a first-order baroreflex are integrated at 50 Hz. The 3D heart and vessels read the same state as the pressure trace and PV loop.
Mechanical inputs change first. Reflex responses emerge over time.
illustrativeWaveform shape only. The circulation is solved beat-averaged, so the upstroke, incisura and diastolic runoff are a drawn contour scaled between the simulated systolic and diastolic pressures.
The operating point is at the resting intersection of venous return and cardiac function.
The plots and 3D scene are different views of one state vector.
The right edge follows end-diastolic volume. The upper-left corner follows end-systolic elastance and arterial load. Loop width is stroke volume, currently 72 mL.
The white dot is the only steady point where the heart ejects exactly what the veins return. Its current flow is 4.99 L/min at RAP 1.7 mmHg.
The equations the state vector is built from, and which mark on which chart each one is.
One beat, solved the way Sunagawa solved it: the ventricle and the arterial tree are two elastances meeting at a common pressure, and stroke volume is where they balance. Every line on the pressure–volume loop is one of these.
| Symbol | Quantity | How it is computed | Where to find it |
|---|---|---|---|
Ees | End-systolic elastancemmHg/mLmeasuredSuga & Sagawa | Ees₀ · (1 + gEes · scaled), clamped 1.3–4.2Contractility. How much pressure the ventricle generates per millilitre above its unstressed volume. Set by the baroreflex, not fixed.
| PV loop: the SLOPE of the straight violet line (the ESPVR). Steeper is more contractile. Also the third lever in the console. |
V₀ | ESPVR volume interceptmLestimatedChosen inside the reported 0–20 mL range for the unstressed volume | constantThe volume at which the fully contracted ventricle generates no pressure.
| PV loop: where the violet ESPVR line meets the volume axis at zero pressure. |
Ea | Effective arterial elastancemmHg/mLfittedSunagawa ventricular–arterial coupling | Ea = R · HR / 1000Afterload expressed as an elastance, so it can be compared directly with Ees. It is not a property of the artery alone — it carries heart rate, which is why tachycardia raises afterload. R here is TOTAL resistance, arteriolar plus venous return. | PV loop: the magnitude of the slope of the RED DASHED line, drawn from (EDV, 0) to (ESV, Pes). Its negative slope is Ea. Also the second lever in the console. |
SV | Stroke volumemLfitted | SV = Ees · (EDV − V₀) / (Ees + Ea), floored at 2The coupling solution. Two elastances in series: the ventricle pushes with Ees, the arterial tree resists with Ea, and the volume ejected is the balance. Raise afterload and the same ventricle ejects less.
| PV loop: the WIDTH of the loop, EDV minus ESV. Also a vital sign, and the height of the pulse pressure it produces on the arterial trace. |
EDV | End-diastolic volumemLfitted | EDV = edvFromPtm(Ptm) · fillingCompleteness(HR)How full the ventricle is when it starts to contract. Two things set it: the filling pressure, and whether diastole lasted long enough to reach it. | PV loop: the RIGHT edge of the loop, and the blue dot sitting on the EDPVR curve. Also a vital sign. |
ESV | End-systolic volumemLfitted | ESV = EDV − SVWhat is left after ejection. | PV loop: the LEFT edge of the loop, and the red dot on the ESPVR line. |
EF | Ejection fractionfractionfitted | EF = SV / EDVThe fraction of the filled ventricle ejected. Robust against preload — the loop widens and its right edge moves with it — so in five of the six manoeuvres it swings less than cardiac output does. Handgrip is the exception, and shows why: a pure afterload load is the one thing ejection fraction is not defended against. | Not among the vital signs — read it off the PV loop, as the loop's width divided by its right edge. |
Pes | End-systolic pressuremmHgfitted | Pes = Ea · SVThe pressure at which ejection stops — where the ventricle's elastance and the arterial tree's meet. | PV loop: the HEIGHT of the red dot at the top-left corner of the loop. |
EDPVR | End-diastolic pressure–volume relationmmHgfitted | Ptm = α · (exp(β · (V − V₀d)) − 1)Passive ventricular stiffness. Exponential, so the last few millilitres of filling cost far more pressure than the first — which is why a stiff ventricle has high filling pressure at normal volume.
| PV loop: the curved BLUE line rising from the volume axis. The loop's bottom edge follows it. |
The heart-rate axis is self-limiting, and this is why. Systole shortens far less than diastole does, so at high rates the time available to fill runs out before the pressure gradient does.
| Symbol | Quantity | How it is computed | Where to find it |
|---|---|---|---|
ET | Ejection timemsmeasuredWeissler's regression | ET = max(413 − 1.7 · HR, 180)How long ejection lasts — not the whole of systole, which also contains isovolumic contraction. Shortens with rate, but only weakly, and never below 180 ms. | Not displayed, and not measurable off the trace: each beat is drawn from a fixed cycle-fraction template, so the waveform's shape does not carry ET. It reaches you through DT, below. |
DT | Diastolic filling timemsfitted | DT = max(60000 / HR − ET, 60)Whatever is left of the cardiac cycle after ejection has taken its share. This is the quantity that collapses at high rates. | Not displayed as a number. It reaches the screen in one place only: the aortic-regurgitation murmur index in the analysis panel scales with it, because a longer diastole is a longer time to regurgitate. |
— | Filling completenessfractionestimated | 1 − exp(−DT / τfill)The fraction of the pressure-determined end-diastolic volume actually reached. Effectively 1 at rest. It cannot fall far: at the 175 bpm ceiling of the rate clamp diastole still lasts 163 ms, which is 1.8 time constants, so the floor is about 0.84.
| Not displayed directly — it acts on EDV, so you see it as the PV loop failing to reach as far right at high heart rates. |
Three compliant compartments holding one conserved volume of blood. Every pressure in the model is a volume divided by a compliance — which is why blood displaced from one compartment has to show up as a pressure change in another.
| Symbol | Quantity | How it is computed | Where to find it |
|---|---|---|---|
MAP | Mean arterial pressuremmHgfitted | MAP = Va / Cart + itpArterial · (ITP − ITP₀)Arterial volume over arterial compliance, plus whatever intrathoracic pressure the thoracic aorta is exposed to. That second term is the Valsalva phase I rise — a mechanical transmission, not a haemodynamic one.
| The centre line of the arterial pressure trace, and a vital sign. Run a Valsalva and the second term is visible on its own: pressure jumps about 33 mmHg the instant the strain begins, before stroke volume has had time to fall. |
PP | Pulse pressuremmHgfitted | PP = SV / CartStroke volume delivered into arterial compliance. A stiff aorta — a small Cart — turns the same stroke volume into a wider pulse.
| SBP minus DBP as a number. On the trace, read it as the height of each beat — the drawn waveform is a fixed template scaled by PP, so beat height tracks it but is not equal to it. |
SBP / DBP | Systolic and diastolic pressuremmHgestimated | SBP = MAP + 2·PP/3 · DBP = MAP − PP/3The pulse distributed around the mean in the conventional one-third / two-thirds split. | The peaks and troughs of the arterial trace. The drawn peak reaches MAP + PP/3 rather than the full systolic value, so read SBP from the vital sign, not off the chart. |
Ptm | Transmural filling pressuremmHgfitted | Ptm = Vc / CcpCardiopulmonary volume over its compliance — the pressure distending the ventricle from inside, measured across its wall. This is preload proper.
| PV loop: the height of the blue dot on the EDPVR. Also the first lever in the console. |
Pra | Right atrial pressuremmHgfitted | Pra = Ptm + ITPWhat a catheter in the right atrium measures: the transmural pressure plus the intrathoracic pressure surrounding it. During a Valsalva strain these separate dramatically. | Guyton plot: the HORIZONTAL POSITION of the white operating point, and the x-axis itself. Also a vital sign. |
Pms | Mean systemic filling pressuremmHgfitted | Pms = max(0, (Vv − pool + veno) / Cven + abdominal)The pressure the systemic veins would equilibrate at with the heart stopped. It is the head of pressure driving venous return, and it is set by how much blood is in the venous compartment — including what the reflex has recruited and what a manoeuvre has trapped. The last term is separate from all of that: a Valsalva raises abdominal pressure as well as thoracic, and the splanchnic veins feel it directly, which is what keeps venous return alive during a strain.
| Guyton plot: the X-INTERCEPT of the blue venous return line, where flow reaches zero. Venous drive, the fourth lever, is Pms minus Pra. |
Va, Vv, Vc | Compartment volumesmLfitted | dVa/dt = CO − Qsys · dVv/dt = Qsys − VR · dVc/dt = VR − CO
each flow first limited to what its source compartment holdsThe conservation law the whole model rests on. Every millilitre leaving one compartment enters another, which is what makes the Valsalva phase IV overshoot appear without being asserted: blood held back during the strain has to go somewhere when it is released. The limiter is not bookkeeping — a compartment cannot supply blood it does not hold, and cardiac output falling during a strain because there is nothing left to eject is exactly what phase II is. | Not displayed as numbers. You see them as everything else moving — a rise in Vv is a rise in Pms, and so a shift of the blue line on the Guyton plot. |
Two flows that must balance at equilibrium and generally do not during a manoeuvre. The gap between them is what moves blood between compartments.
| Symbol | Quantity | How it is computed | Where to find it |
|---|---|---|---|
CO | Cardiac outputL/minfitted | CO = HR · SV / 1000What the ventricle delivers. | Guyton plot: the VERTICAL POSITION of the operating point, and the teal cardiac function curve it sits on. Also a vital sign. |
VR | Venous returnL/minfitted | VR = max(0, (Pms − max(Pra, 0)) / Rvr)Guyton's pressure-gradient law. Right atrial pressure is clamped at zero because below atmospheric the great veins collapse and flow plateaus rather than increasing.
| Guyton plot: the BLUE line. Its x-intercept is Pms and the magnitude of its slope is 1/Rvr. The plateau at negative Pra is the vein collapse. |
Qsys | Systemic runoffmL/sfitted | Pa = Va / Cart · Qsys = max(Pa − Pms, 0) / Ra × 1000/60Flow out of the arterial compartment across the arterioles, driven by the arterial-to-venous pressure gradient. Two things to note: it divides by Ra alone, the arteriolar resistance, not by total R; and the 1000/60 converts the L/min that Wood units give into the mL/s the integrator steps in. | Not displayed. It is the difference between CO and Qsys that fills or drains the arteries. |
R | Total systemic resistanceWood unitsfitted | R = Ra + RvrArteriolar plus venous-return resistance. Ra is the live reflex-controlled value below, not its resting constant, so this sum moves every step. This is the R that enters Ea, which is how a change in arteriolar tone reaches the ventricle as a change in afterload.
| Not plotted directly; with heart rate it sets the slope of the Ea line on the PV loop. |
A first-order proportional controller with four effectors, each with its own time constant. Three are here; the fourth is contractility, listed with the ventricle above because that is where you see it. The differing speeds are why the Valsalva phases arrive in the order they do — rate responds in seconds, venous tone takes far longer.
| Symbol | Quantity | How it is computed | Where to find it |
|---|---|---|---|
error | Pressure errormmHgestimated | error = clamp(MAPset − MAP, −40, 40) · scaled = error / MAPsetWhat the sensor sees. The sensor is arterial, so it also sees transmitted intrathoracic pressure — the reflex is fooled by a Valsalva exactly as a real one is.
| Not displayed. You see its consequences, but not one-to-one: the reflex drives four effectors (rate, arteriolar tone, venous tone, contractility) and the console shows four levers (preload, afterload, contractility, venous drive). Preload is not an effector at all — it moves because the others did. |
HR | Heart ratebpmestimated | target = clamp(HR₀ + hrAdd + gHR · error, 42, 175); τ = tauHRThe fastest effector, and the first thing to move in any manoeuvre.
| A vital sign, and the spacing of beats on the arterial trace. |
Ra | Arteriolar resistanceWood unitsestimated | target = clamp(Ra₀ · raMult · (1 + gR · scaled), 5, 44); τ = tauRVasoconstriction. Slower than rate, and it reaches the ventricle as afterload. raMult is the manoeuvre's own multiplier — how handgrip and amyl nitrite act.
| The afterload lever. It also steepens the Ea line on the PV loop, though not on its own: Ea carries Ra + Rvr and heart rate together. |
veno | Venous volume recruitedmLestimated | target = gVeno · scaled; τ = tauVenoVenoconstriction, squeezing blood out of the venous reservoir into the circulation. The slowest effector, which is why the pressure recovery it drives arrives last.
| It raises Pms — so you see it as the blue venous return line shifting RIGHT on the Guyton plot. |
Each visual encoding has a defined physiologic variable.
LV and RV volumes fall during ejection and refill during diastole. Preload shifts the maximum size.
Particle speed rises and falls with output. Direction preserves the two circulations in series.
The terminal resistance gate narrows as SVR rises and opens during vasodilation.
Arterial and LV glow strengthens as pressure rises, especially during systolic ejection.
Clinical translation
illustrativeRelative intensity is a heuristic index over the simulated state, not an acoustic recording. The center mark is the resting state.
Smaller, more forceful LV increases systolic anterior motion and obstruction.
Murmur intensity follows transvalvular flow, with gradient proportional to flow squared.
Regurgitant flow rises as the LV-to-LA systolic pressure gradient increases.
Diastolic regurgitation tracks the aorta-to-LV gradient and diastolic filling time.
This is a conceptual, closed-loop, lumped-parameter model for learning directional relationships. It is not a patient-specific digital twin and does not model pulmonary vascular resistance, septal interaction, valve inertia, regional flow, or fluid-structure interaction. Constants are physiologic-order values tuned for legibility.
Drag to rotate · scroll or pinch to zoom · zoom out for the whole circuit