OBS plugin · camera only

Your body is part of the stream.

StreamEmote reads your heart rate, breathing and heart rate variability from the webcam you already own — and puts them on screen in real time. No chest strap, no smartwatch, no second device.

Frames never storedWindows · macOSSet up in a few minutes
Scene 1 — Gameplay
LiveMode_CLUTCH · filter on
Heart rate
126bpm
Breathing
21breath/min
Stress
Moderate
HRV 41 ms
Signal goodSimulated preview. The stress state, reactions and filters are coming soon.
Drops into
  • OBS Studio 31.1+
  • Windows 10+ · macOS 12+
  • Twitch
  • YouTube Live
  • Kick
  • Any webcam OBS can see
Signals

Three vitals, zero hardware.

Your camera already sees more than you think. Skin brightens and dims with every heartbeat — too faintly for you to notice, plenty for a 30 fps camera.

Heart rate

Every 1–3 s

Remote photoplethysmography (rPPG) tracks the tiny colour changes in your face as blood moves, frame by frame — using light your webcam already collects.

Output
Beats per minute
Accuracy
Best in steady light
Region
Your face

Breathing rate

About every 10 s

Estimated from the same camera picture. No strap, no mic, no calibration breath to hold.

Output
Breaths per minute
Updates
About every 10 s
Needs
Head in frame

Stress

Coming soon

Heart rate variability — the variation in the gap between beats, which shrinks when you're under load — is measured today and shown as RMSSD in milliseconds. A Low, Moderate or High stress state derived from it is coming soon.

Metric
HRV · RMSSD (ms)
Available
HRV now
States
Low / Mod / High · soon
Privacy

Your frames are never stored.

A plugin that reads your pulse off your face should have to explain itself. So: while the source is connected, frames travel from OBS over an encrypted connection to our inference service, which analyses them in memory and discards them. We keep the numbers, never the picture.

  • No video stored, everFrames are processed in memory and dropped. Nothing is written to disk.
  • Only numbers come backHeart rate, breathing, HRV and a signal-quality flag. That's what reaches your overlay, and what your history keeps.
  • Encrypted, and only while connectedFrames go over HTTPS (TLS) and only while the StreamEmote source is connected. Disconnect it in OBS and nothing is sent.
  • Your data, your callExport everything or delete your health data from Settings. The details are on the privacy page.
Signal path
  1. Webcam frameUp to 480 × 480 · 30 fps · in OBS
  2. Sent encryptedTLS to our gateway
  3. Analysed in memoryOur inference service
  4. Frame discardedNothing retained
  5. Overlay updatedbpm · br/min · HRV
Frames are never stored. Only the numbers from step 5 are kept — see the privacy page.
Setup

Four steps, one stream to spare.

No calibration routine, no warm-up window, no baseline session before you can go live.

  1. Step 01

    Install the plugin

    An installer for Windows 10+ or a package for macOS 12+. It adds a StreamEmote Vitals source to OBS — no manual folder surgery.

  2. Step 02

    Point your webcam

    Any camera OBS can already see. StreamEmote reads the same feed your viewers do, so there's no second device to frame.

  3. Step 03

    Sign in and connect

    In the source's properties, click Sign in with browser, confirm your free account, then click Connect.

  4. Step 04

    Go live

    Vitals appear on the overlay once the signal settles, and your live dashboard follows along.

ReactionsComing soon

When you snap, the stream feels it.

StreamEmote will watch your expression and your pulse together. An emote only fires when both agree — so the rage is real rage, not a well-timed eyebrow.

Mode_CALM

Calm

A cool aura settles in as your breathing slows. Useful when you're actually trying to show your audience what calm looks like.

68 BPM12 BR/MINLOW
Mode_CLUTCH

Clutch

Heart climbing, breath tightening, stress stepping to Moderate. Chat can see the 1v5 landing before you say a word.

126 BPM21 BR/MINMODERATE
Mode_RAGE

Rage

Peak heart rate plus a rage face triggers the tint and the emote burst together. Movement also drops signal quality — and the overlay says so.

151 BPM27 BR/MINHIGH
Pick your packFive characters per pack, one tap to swap the whole set.

Emote packs are coming soon. Picking one here previews it in the overlay at the top of the page. Back to the preview

Triggered by you, not clickedReactions will fade in from your live state. Bind any one to a hotkey if you'd rather cue it yourself.
Cooldowns built inSet a floor between fires so a tense hour doesn't turn into an emote strobe.
Two ways to renderA light overlay layer over your cam, or a full face warp through StreamEmote's virtual camera. Both are coming soon.
On stream

More than a number in the corner.

Once your vitals are a live signal, the rest of your scene can listen to them. These are next on the list.

  • Clutch alerts Coming soonCross a heart-rate threshold and fire a screen shake, a sound, or a lower-third banner. The moment announces itself.
  • Auto-highlight clips Coming soonEvery heart-rate spike gets timestamped and clipped. Your VOD editor opens to a list instead of six hours of footage.
  • Heart-rate donations Coming soonViewers tip to set a challenge — hit 150 bpm, or hold Low stress for five minutes — and watch your vitals answer.
  • Merged co-stream vitals Coming soonRun a duo or a squad and put everyone's heart rate in one panel. The spike that matters is usually someone else's.
Honest by default

When the signal is bad, we say so.

Dim lighting, a turned head, a lean out of frame — rPPG degrades, and a plugin that kept printing a confident 72 would be lying to your chat. StreamEmote shows its confidence instead, and drops the number rather than invent one.

  • Good · face centred126
  • Fair · low light124
  • Weak · out of frame— —
After the stream

Every session ends with a stat card.

Peak and average heart rate, average breathing, your calmest minute and the signal quality. Share a link and the card shows up as the preview on X or Discord, while chat is still in the mood to argue about it.

Session recap · 4h 12m
Peak HR
152BPM
Signal
Good
Calmest moment
14:32
Avg breathing
17BR/MIN
Founding streamers

3 months of Pro, free — for the waitlist.

Pricing opens at launch. Everyone who joins and confirms before then gets Pro free for their first 3 months, plus the Streamer Reaction Playbook today.

Claim your spot

Get it before everyone else.

StreamEmote opens to the waitlist first. Join now and get the free Streamer Reaction Playbook, plus 3 months of Pro free as a Founding Streamer.

One email to confirm, then launch news only. Unsubscribe in one click. See our privacy policy.