Toolbox · real tools, not GIFs

Drag a slider. Watch the math respond.

Three interactive widgets. Drag a slider, watch the math respond. No libraries — the FFT, the detector, and the BP model are all written from scratch.

Oscillometric BP reasoner

How a cuff turns oscillations into SBP/MAP/DBP. Try four estimator methods.

cuff pressure + arterial volume oscillations during deflation
extracted oscillogram envelope vs cuff pressure · truth (solid) vs estimate (dashed)
True SBP120mmHg
True MAP100mmHg
True DBP80mmHg
Est. SBP—mmHg
Est. MAP—mmHg
Est. DBP—mmHg
SBP error—mmHg
MAP error—mmHg
DBP error—mmHg
Peak amp—
Peak at—mmHg
Confidence—

FFT explorer

Pick a preset, add noise, change the window. The spectrum updates live with the top-three peaks labeled.

time domain · windowed (ghost = unwindowed)
magnitude spectrum (dB)
Peak 1—
Peak 2—
Peak 3—
THD—

Pan–Tompkins R-peak detector

Synthetic ECG, real Pan–Tompkins detector. Add noise, watch detection break.

synthetic ECG · truth (rings) vs detector (dots) · motion bursts shaded
integrated signal with adaptive thresholds (this is what the detector sees)
True HR—bpm
Detected HR—bpm
Sensitivity—%
PPV—%
Mean RR—ms
RMSSD—ms
pNN50—%
Latency—ms
SNR—dB
Try the research

The physics behind the cuff: arterial blood volume.

An arm cuff doesn't measure pressure directly — it reads volume oscillations from the artery underneath, mapped through a sigmoidal volume–transmural-pressure curve. Drag the cuff pressure: invasive arterial pressure rolls in along the X-axis, gets mapped through the curve, and rolls out as volume on the Y-axis. The output is loudest when the cuff sits exactly at MAP.

Cuff pressure 150 mmHg
Transmural P (mean) −57 mmHg
Volume DC 0 % Vmax
Pulse AC (pk-pk) 0 % Vmax
State artery collapsed
0 80 (DBP) 100 (MAP) 120 (SBP) 200
● SBP 120 ● MAP 100 ● DBP 80