At launch a few of you (rightly) asked how accurate reading heart rate from a webcam actually is. So I stopped hand-waving and measured it. Setup GlowPulse and a Polar H10 (chest-strap ECG, the practical gold standard) recording at the same time, second by second, across 9 sessions and ~3.5 hours total, in good light, dim light, movement, and dark.
What I found
Good light, sitting still: off by about 1 BPM from the strap on average (0.6 to 1.3 across sessions), within 5 BPM 95% of the time. Shows a value the whole time.
Dim light / movement: error grows to roughly 2.5 to 2.9 BPM. It follows the trend and only lags the fastest spikes.
Dark: it mostly goes quiet, showing a number about 1 time in 10. I'd rather show nothing than something wrong.
To be clear GlowPulse gives wellness estimates, not medical measurements. Polar H10 is named only as a neutral reference, no endorsement implied.
GlowPulse measures your heart rate from your Mac's built-in camera using rPPG – no watch, no chest strap, no wearable. Lives in the menu bar with live BPM, sparkline, and color-coded zones.
100% on-device. Camera frames are processed in memory and discarded. No cloud, no account, no telemetry.
Pomodoro focus with live HR chart. Breathing sessions with real-time HRV. 30-second stress check. $2.99 once. macOS 13+.
I'm launching GlowPulse on June 2nd a menu-bar app for mac that reads your heart rate from the built-in camera (rPPG, no wearable). Started as a python prototype, rewrote in swift, took a detour through CoreML.
Some things i didn't expect:
- vision face detection every 10 frames creates a ~90 bpm ghost peak right inside the heart-rate band fixed by running every frame with ema-smoothed bounding box (=0.35);