Idle
Camera is off
Click “Start” below. Your video never leaves this device.–
BPM
Signal quality
--
♥ waiting…
Pulse signal — green channel
raw filtered (0.7–4 Hz)
Power spectrum (FFT)
How it works
- Face detection — MediaPipe Face Detection locks onto your face and tracks a region of interest (forehead & cheeks).
- Green channel — each camera frame is reduced to the average green pixel value of that region. Green is most sensitive to blood-volume changes.
- Band-pass filter — a 0.7–4 Hz (42–240 BPM) filter removes slow lighting/motion drift and high-frequency noise.
- FFT — a 2048-point Fast Fourier Transform finds the dominant frequency in the band; BPM = frequency × 60 (with parabolic peak refinement).
Privacy: 100% client-side. Video frames are processed in your browser and never uploaded.
Tips for a good reading: steady lighting, keep your face still and fully visible, avoid direct flash/sunlight, and wait ~10–15 s for the estimate to settle.
Accuracy: this is an educational demo, not a medical device. Expect ±5–10 BPM vs. a real monitor.
Note: browsers only allow camera access from a secure context. Run bun install then bun dev (or bun build + bun start) and open http://localhost:3000.