Inspiration
A rising signal is not always a meaningful anomaly, and a reassuring score is not always trustworthy.
Physical activity can explain changes in heart rate and breathing. An unreliable sensor can create misleading readings. Missing data can hide the very event a monitoring system is supposed to detect.
VitalGuard grew from a question inspired by autonomous-system safety: can we separate sensing, evidence quality, escalation, and human authority in a physiological monitoring prototype?
Our goal was to make that decision process inspectable, including the conditions under which it fails.
What it does
A rising signal is not always a meaningful anomaly, and a reassuring score is not always trustworthy.
Physical activity can explain changes in heart rate and breathing. An unreliable sensor can create misleading readings. Missing data can hide the very event a monitoring system is supposed to detect.
VitalGuard grew from a question inspired by autonomous-system safety: can we separate sensing, evidence quality, escalation, and human authority in a physiological monitoring prototype?
Our goal was to make that decision process inspectable, including the conditions under which it fails.
What it does
VitalGuard is an interactive browser-based research prototype using synthetic heart rate, oxygen saturation, respiratory rate, and activity signals.
It checks input quality, fits a resting baseline for each session, and combines directional changes through explicit scoring rules. A human review request requires sustained, corroborated evidence. Only human confirmation enables the demo’s HIGH PRIORITY state.
The interface includes:
-Four deterministic scenarios: Activity & recovery, Quiet deterioration, Sensor disconnect, and Converging signals. -Shortcuts that replay samples to representative moments or the first human review request. -An explanation panel showing signal contributions, evidence sufficiency, and review gates. -Separate observation and review states, so an unresolved decision does not hide a subsequent loss of data. -A timeline with trigger-time evidence and recorded human decisions. -Downloadable session reports with SHA-256 integrity digests. -An on-page evaluation summary, documented failure modes, and a one-page project brief.
All signals are simulated. The prototype does not diagnose conditions, recommend treatment, connect to medical devices, or send external alerts.
How we built it
We built VitalGuard with HTML, CSS, and browser-native JavaScript modules. The same deterministic monitoring engine runs in the dashboard, Node.js tests, and reproducible evaluation scripts.
The engine fits a resting baseline using the median and median absolute deviation. Signal-quality checks and explicit fusion rules determine how accepted measurements contribute to the observed anomaly score. Activity provides context for heart rate and respiratory rate, while corroborating oxygen evidence can prevent that contextual discount from suppressing a concern.
Review gates check score, evidence sufficiency, corroboration, and persistence. Human decisions require a note and append events rather than rewriting previous event records.
Session exports use a versioned JSON envelope and a SHA-256 digest. The digest supports integrity checking; it is not a digital signature, authenticated audit trail, or protection against replacing both the report and its digest.
The dashboard is hosted on Sites. The application does not require an external model API to run.
Challenges we ran into
One challenge was separating what the system currently observes from what a person has already reviewed. A pending or confirmed concern must not make a later data outage disappear from the interface.
Another was preserving historical evidence. Event records must retain the values that triggered a decision, rather than changing as live state advances.
Temporal logic also required care. New clock ticks or rejected samples must not satisfy a gate intended to measure sustained, accepted evidence.
Finally, synthetic fault evaluation exposed weaknesses in activity-based context. We revised the activity discount so accepted oxygen evidence can veto it. However, jointly misleading oxygen and activity remains an unresolved failure mode. We kept that result visible instead of presenting the successful scenarios alone.
Accomplishments that we're proud of
We completed an end-to-end workflow from simulated signals to explained assessment, human review, and exportable evidence.
The current implementation passes 22 automated tests covering scenario behavior, review transitions, data loss, invalid and duplicate actions, historical evidence integrity, timing behavior, and export verification.
Our reproducible evaluation includes 644 synthetic development traces. In the 200-trace noise and baseline-offset cohort, all 100 positive scenarios requested review and none of the 100 negative scenarios did. Median detection delay from synthetic onset was 40 seconds.
We also documented the important failures. Continuous stream loss missed all 40 positive cases while exposing a NO DATA state. Jointly misleading oxygen and activity missed all 40 positive cases while remaining in MONITORING with a high evidence index.
These results describe synthetic development cohorts, not clinical sensitivity, specificity, or held-out generalization.
What we learned
Detection, evidence quality, and human authority are different concerns and should remain visible as separate parts of the system.
An evidence sufficiency index is not the probability that a person is safe. Exposing a data outage is useful, but it is not successful detection of the underlying anomaly.
Human confirmation provides control over escalation only after an anomaly reaches review. It does not repair a silent detection failure.
We also learned that reproducible failure cases are essential engineering outputs. They help define the next experiment and prevent the interface from implying more reliability than the implementation supports.
What's next for VitalGuard
Our next research step is evaluation on appropriately labeled physiological recordings, with explicit separation between development and held-out data.
Engineering directions include stronger signal-quality validation, a versioned baseline recalibration workflow, and authenticated transactional persistence for sessions and review events.
The current prototype holds session state in browser memory and does not implement real-device integration, authenticated reviewers, durable audit storage, or clinical validation. Those remain future work.
Built With
- css3
- html5
- javascript
- node.js
- sites
- webcryptoapi

Log in or sign up for Devpost to join the conversation.