Pulse

Webcam heart rate — remote photoplethysmography (rPPG), entirely in your browser.

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

  1. Face detection — MediaPipe Face Detection locks onto your face and tracks a region of interest (forehead & cheeks).
  2. Green channel — each camera frame is reduced to the average green pixel value of that region. Green is most sensitive to blood-volume changes.
  3. Band-pass filter — a 0.7–4 Hz (42–240 BPM) filter removes slow lighting/motion drift and high-frequency noise.
  4. 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.