Your heart rate and breathing rate, read from a 15-second clip.

No wearable, no extra hardware. Remote photoplethysmography (rPPG) turns tiny, invisible-to-the-eye color changes in your skin into a heart rate reading - the same physical principle a pulse oximeter uses, picked up here by an ordinary camera instead of a dedicated sensor.

A synthetic pulse trace - the shape this app's filter looks for in a real one.

Two signals, one short clip

The camera never leaves your device - a clip is analyzed and, unless you're signed in, thrown away immediately after. Everything below is real: the same pipeline that produces your reading also produces the numbers underneath it.

01

Face & forehead tracking

An OpenCV detector finds your face every frame and tracks a forehead region - the most motion-stable, least occluded patch of skin.

02

Color reveals the pulse

Every heartbeat shifts how much green light your skin reflects, by an amount too small to see. Averaging that region per frame builds a signal a Butterworth filter and FFT can turn into a heart rate.

03

Motion reveals breathing

The region below your face is watched with optical flow instead of color - the small rise and fall of your chest and shoulders, band-passed to the breathing range, running the same instant the color signal does.

04

Confidence, shown honestly

A reading reports how concentrated its signal's energy actually was, plus a separate check for values outside a plausible resting range - so a confidently wrong number doesn't ship silently.

Dev mode shows exactly what the algorithm sees

Flip on Dev Mode before recording and a live overlay draws the same three regions the pipeline actually measures, updated live - not a mockup, the real detector output. Here's what those boxes mean:

  • Face - detected fresh every frame
  • Forehead ROI - the heart-rate signal source
  • Chest ROI - the breathing signal source

Processed on this device only - nothing is saved unless you sign in.

Sit still, face the camera, good even lighting works best. No account needed to try it.

Background monitoring

Records a short check-in clip every few minutes while this tab stays open (it can sit in the background or another window - it doesn't need to be the active tab) and sends a browser notification if a reading comes back unusually low. This needs the browser to keep running; it can't check anything while the tab is closed or the computer is asleep.

to enable background monitoring - it checks in repeatedly over time, so it needs an account to mean anything.

History

to save your results and build a trend history over time. Recording still works without an account - results just won't be kept after you leave the page.

What this actually is - and isn't

Vitals Tracker is a personal wellness demo, not a product - see how it works above for the actual mechanism (rPPG, the same principle a clip-on pulse oximeter uses). What's worth being upfront about is what it doesn't do.

It is not a medical device. Lighting, movement, and skin tone all affect accuracy, and that's inherent to the technique, not a bug being hidden - which is why every reading ships with a confidence score and a plausibility check instead of a bare number. Treat it as a genuinely interesting piece of applied signal processing, not a diagnostic tool, and don't make health decisions from it.

The whole pipeline - face detection, band-pass filtering, FFT peak-picking, optical flow - runs locally on the server that serves this page; a recorded clip is processed and, unless you're signed in and choose to keep it, discarded.