Skip to main content

What it does

@elata-biosciences/ppg-web estimates heart rate and heart-rate variability from a headband’s PPG (optical) sensor, in the browser. It runs on the same normalized headband stream as the EEG packages, so it works alongside EEG from the same device.
  • Reads Muse classic ppgRaw and Muse S Athena optics frames
  • Picks the best channel automatically, or lets you pin one
  • Reports bpm, rmssdMs, sdnnMs, and meanNnMs, plus confidence and signal quality

Install

Or scaffold the starter: npm create @elata-biosciences/elata-demo my-app -- --template ppg.

Connect a Muse and read metrics


Use any headband transport

If you already have a HeadbandTransport (for example a BleTransport you created yourself), wrap it:

Session API

Callbacks: onMetrics, onDiagnostics, onStatus.

Notes

On classic Muse devices (ppgRaw), frame timing comes from the browser, so treat HRV values as a preview. Muse S Athena optics keeps device timestamps and is the preferred source when available.
  • Requires Web Bluetooth: Chrome or Edge on desktop or Android, over https:// or localhost.
  • For camera-based heart rate without a headband, use rppg-web.