Overview
The About page has a small synthetic reference preview: sinus rhythm at 75 bpm with arterial pressure and pleth waveforms sampled from the same engine. One quiet-respiratory cardiac cycle is repeated smoothly; this visual accent does not use or change a sandbox or classroom session. Its pressure readout comes from the sampled peripheral waveform. A single animation clock draws all three signals together. Playback pauses offscreen or in a hidden tab and resumes without jumping when the page returns, including restoration from the mobile browser page cache. Reduced-motion preference starts the preview paused; Play explicitly starts it. A manual Pause remains paused after scrolling, resizing or returning to the page.
One simulation clock supplies time to live signals. Pausing stops that clock; changing sweep, gain or panel visibility changes the view rather than the physiological state. Specialized studies can hold a representative respiratory phase or use a constructed provocation timeline.
The UI draws on canvas/SVG with stable samples and bounded caches. It does not generate a new random waveform every frame. Deterministic signal generation is essential for pause, replay, measurements and precise mouse/touch inspection.
Sample lattice and cache
Pressure/pleth drawing uses a 250 Hz absolute time lattice; ECG uses 500 Hz with additional stimulus samples. A moving viewport translates existing time points instead of moving the sampling grid through narrow peaks. Drawing clips points at the viewport edge. Live ECG rendering streams those same sample times directly into the canvas, avoiding a full timestamp-array allocation on each display frame.
Caches hold recent pressure/voltage samples and beat-level volume results; model changes invalidate them. Device-pixel-ratio and graphic-quality helpers adjust rendering detail, not pressure or flow. Measurement completion follows simulation time independently of whether its graph is visible.
Scale and comparison
Time windows and gain change how much history and amplitude fit on screen. Clinical values retain their units. The hemodynamic overlay defaults to a common pressure scale, with ECG in a separate timing lane; optional normalization permits shape comparison but removes direct amplitude comparison.
PV axes reserve appropriate headroom and expand only as necessary within a clinical state. Display-only smoothing does not alter calculated measurements. Narrow MCS/low-flow pulses remain narrow rather than being individually normalized into misleading healthy contours.
Overlay pressure differences
The overlay supports all available signals simultaneously, with stable, distinct channel colours. All traces selects the currently available set (12 normally, 14 with IABP); Clear All deselects it. Common Pressure Scale appears first and is the default. ECG and cardiophonogram retain separate lanes and units.
Selected Valve Disease adds the required pressure traces and shades every selected native valve lesion together. AS/PS shade positive ventricular-to-arterial pressure during ejection; MS/TS shade positive atrial-to-ventricular pressure during filling. MR/TR use systolic backward-flow pressure; AR/PR use diastolic arterial-to-ventricular pressure. MVP starts in late systole using its existing loading-dependent timing. Mixed stenosis/regurgitation retains both directions and phases. Broad shared mechanical windows exclude opposite-phase normal separations, while actual pressure crossings bound the bands. These windows are synthetic timing assumptions, not measured valve events. Unorganized beats and ventricular standstill produce no valve bands. AS with HOCM uses the total LV–Ao outflow difference and cannot isolate the valve from subvalvular obstruction.
Each band uses the same 250 Hz samples as the visible traces, split at inactive intervals and pressure crossings. Hiding a required trace hides its band. Independent Scale clears shading. Optional full-cycle comparisons retain signed pressure reversals and are labeled separately. Larger instantaneous separations shade more brightly against a fixed reference sampled over 16 nominal cycles for the current state. This display-only contrast never rescales with the scrolling window. A fine bracket spans the largest instantaneous gap in each complete valve-flow band when there is room; narrow bands and clipped fragments omit the marker. This makes beat-to-beat variation easier to compare without amplifying pressures, changing waveform timing or adding diagnostic thresholds. Band size and brightness are not a regurgitant volume or a severity grade; no phase-averaged, peak-to-peak or Doppler measurement is inferred.
MR shading uses the original delayed PAWP trace as the LA surrogate and is bounded by LV and PAWP during systole where LV exceeds PAWP; no separate aligned LA signal is substituted and the reverse diastolic filling gap is excluded. PAWP remains the delayed wedge recording, not direct LA pressure; PAWP–LV shading is therefore a displayed difference, not a diagnostic transmitral measurement. Wiggers provides a time-aligned LA teaching proxy. Ao–ART retains peripheral transit, amplification and recording effects. PA–PAWP at the cursor is not the mean-pressure transpulmonary gradient used for PVR. The chosen band leaves numerical physiology and all individual traces unchanged.
Inspection logic
Paused pointer/touch position is converted to simulation time and the appropriate signal sample or nearest curve segment. The explanation combines channel identity, phase and active morphology. An arrow/cursor marks location; tooltips are placed to preserve access to the trace and controls. Trace explanations take space only while a segment is being inspected; the shared timing information icon explains how to change the window.
ECG highlights use curated finding metadata. PV/Wiggers share a cardiac cursor; overlay uses a common time marker; case/circuit traces expose teaching explanations at the appropriate stage. These are deterministic explanations of generated data, not machine interpretation of arbitrary external recordings.
Interface and saved state
Panel pinning, visibility, active navigation, help search, tutorial progression and local progress storage belong to the presentation layer. The application’s learning-access gate is separate from physiology. No help query runs a new diagnostic or generative model: it searches the written index.
Reset actions intentionally rebuild selected state; they are not physiological treatments. If a saved preference or progress record is unavailable, the interface must fall back without changing the numerical meaning of a disease.
References & further reading