Controls

72
15
98
120
80

Sensor-readback validation (virtual device-under-test)

Validate plays a virtual monitor/sensor that reads physiosim's synthesized signals and recovers HR, SpO2, BP and RR; an accurate sensor lands within the tolerances shown. This is the same round-trip host/validate.py runs offline against the golden Python reference — a self-consistency check of the generator, not a calibrated-instrument comparison.

Parameter Commanded Recovered Tolerance Status

Models in brief

Five coupled signals are synthesized sample-by-sample from published parametric models — McSharry ECGSYN (ECG), a 3-element Windkessel (arterial BP), a two-Gaussian PPG, ratio-of-ratios SpO2, and a respiration-driven RSA + baroreflex — ported 1:1 from the validated host/physiosim.py reference. It is a software signal emulator, not a certified instrument. Full models, parameter ranges, ISO framing, Empa relevance and references are in How it works & methods above.

How it works & methods

physiosim is a software signal emulator, not a metrologically certified instrument. Its models are validated in software: the fidelity table is computed live in your browser by measuring parameters back out of the synthesized waveforms — R-peak HR, ratio-of-ratios SpO2, per-beat BP and respiration period — exactly as host/validate.py does against the Python reference. This is a synthesize-then-recover self-consistency check against that reference, not a comparison with a calibrated device (per-beat BP recovery, in particular, follows from the [0,1] → [dia, sys] scaling).

What it generates

Five coupled (patho-)physiological signals are synthesized sample-by-sample from published parametric models, ported 1:1 from the validated host/physiosim.py reference (same constants, lookup tables and coupling):

The channels share one cardiac and one respiratory phase, and two couplings are genuinely operative: respiration drives heart rate both through RSA and through the respiratory arterial-pressure swing the baroreflex senses (respiration → BP → baroreflex → HR), while SpO2 is recovered from the synthesized red/IR PPG by the ratio-of-ratios — so saturation is tied to the actual pulse, not printed from the config. Press Baroreflex challenge to inject a transient pressure bump and watch the heart reflexively slow.

Parameter ranges vs commercial simulators

As software, physiosim reproduces the operating envelopes of commercial vital-signs simulators — a $0, reproducible, scriptable reference source:

SpO2 accuracy framing — ISO 80601-2-61

Pulse-oximeter accuracy is reported as Arms ≤ 4.0% over 70–100% SaO2 in the 2011/2017 editions of ISO 80601-2-61 — the verified headline figure. A 2025 revision is reportedly tightening this further, but that edition is not verified here. This Arms framework is the honest metric physiosim's SpO2 channel is framed against — a target, not an achieved certified accuracy.

Relevance to Empa — Lab 401, Prof. Rossi

Empa's Laboratory 401 (Biomimetic Membranes and Textiles, St. Gallen) develops “physical and numerical skin/body models for validating wearable and textile sensors.” physiosim is exactly such a numerical body-signal model: a reproducible, coupled, multimodal ground-truth source of ECG, respiration, NIRS/SpO2 and pulse to exercise the lab's textile ECG belt, respiration-monitoring shirt and photonic NIRS/pressure textile — answering the “wearables must be as reliable as hospital tools” requirement with an honest, reproducible reference.

Honesty ledger

References