How to Stream Your Real Heart Rate Into VRChat โ HypeRate OSC HR Bridge Complete Guide

Your actual heartbeat. Inside your avatar. In real time. ๐
If you've ever wanted your VRChat avatar to react to your real pulse โ showing your live BPM to other players, triggering animations when your heart races on a horror map, or simply proving to the lobby that yes, you are in fact alive โ the HypeRate OSC HR Bridge is exactly what you've been looking for.
This guide covers everything: what it is, how it works, how to install it on Windows, macOS, and Linux, how to configure VRChat, and how to get the most out of your setup.
* * *
What Is the HypeRate OSC HR Bridge? ๐ค
The HypeRate OSC HR Bridge is a free, browser-based tool that connects your heart rate monitor to VRChat โ and other VR platforms โ through the Open Sound Control protocol (OSC). OSC is the same system VRChat already uses for avatar parameters. The bridge simply feeds your live BPM data into it.
The result: your avatar's parameters update in real time with your actual heart rate. Streamers use this to display a live BPM overlay on their avatar. Dancers and fitness enthusiasts use it to visualize effort. Horror game players use it to freak out their friends when the numbers spike. ๐
Key facts at a glance:
- โ Completely free to use
- โ Runs in your browser โ no web software to install
- โ Works with VRChat, Resonite, ChilloutVR, and any OSC-capable app
- โ End-to-end latency under 200 ms
- โ Supports any heart rate device compatible with HypeRate (Apple Watch, Garmin, Polar, Wahoo, Fitbit, and hundreds more)
- โ No account required
๐ Try it now: osc.hyperate.io
* * *
How It Works โ๏ธ
The flow is straightforward:
- Your heart rate monitor sends BPM data to the HypeRate app on your smartphone
- HypeRate relays that data over its WebSocket API to the browser-based control panel
- The control panel forwards the data to a small local Python bridge script running on your PC
- The script sends two OSC UDP packets to VRChat: your current BPM as an integer, and a boolean heartbeat pulse on every beat
- Your avatar reacts ๐
The only thing you need to install locally is the small Python bridge script โ and even that sets itself up automatically on first launch.
* * *
What You Need Before You Start ๐
1. The HypeRate App
HypeRate is the streaming service that acts as the relay between your wearable and the bridge. Download the HypeRate app for iOS or Android and connect your heart rate device โ no account required. Inside the app you will find your personal Session ID, a short identifier you will enter into the bridge control panel. Keep it handy.
2. A Compatible Heart Rate Device ๐ช
You need a heart rate monitor that pairs with the HypeRate app. HypeRate supports a huge range of devices:
- Chest straps (most accurate, lowest latency): Polar H10, Wahoo TICKR, Garmin HRM-Pro โ see all compatible chest straps โ
- Smartwatches and fitness bands: Apple Watch, Garmin Forerunner, Fitbit, Samsung Galaxy Watch โ see all compatible wearables โ
- Any Bluetooth Low Energy (BLE) heart rate monitor following the standard HR profile
๐ก Tip for streamers and accuracy-focused users: Chest straps have noticeably lower latency and more stable readings than wrist-based optical sensors โ especially during exercise or intense VR gameplay. The Polar H10 and Wahoo TICKR are the community favorites. Browse the full HypeRate supported device list to find the right one for your budget and use case.
3. Python 3.8 or Newer ๐
The local bridge script requires Python. Download it for free at python.org if you don't have it installed. Python 3.8 through 3.12 are all tested and supported. You don't need to install any libraries manually โ the script handles that automatically on first run.
4. VRChat with OSC Enabled ๐ฎ
You need to enable OSC in VRChat once before connecting. The steps are covered later in this guide.
* * *
Step-by-Step Installation Guide ๐
Step 1 โ Open the Control Panel
Navigate to osc.hyperate.io in any modern browser (Chrome, Edge, Firefox, or Safari). You will see the main dashboard with the heart rate display, connection panel, and OSC configuration. No login, no account needed.
Step 2 โ Download the Python Bridge Script
In the browser panel, find the Setup Guide section and click the download button for your operating system:
- ๐ช Windows โ downloads
HypeRate_OSC_Bridge_Windows.zip - ๐ macOS โ downloads
HypeRate_OSC_Bridge_macOS.zip - ๐ง Linux โ downloads
HypeRate_OSC_Bridge_Linux.zip
Extract the ZIP to any folder you like. Inside you will find:
osc_bridge.pyโ the main bridge scriptstart_bridge.bat(Windows) /start_bridge.command(macOS) /start_bridge.sh(Linux) โ one-click launcherrun_bridge.vbs(Windows only) โ silent background launcher with no terminal windowREADME.txtโ platform-specific quick-start notes
Step 3 โ Run the Bridge for the First Time
๐ช Windows
Double-click start_bridge.bat โ or run_bridge.vbs for a cleaner background launch with no terminal window.
First launch only: A terminal window opens and automatically creates a Python virtual environment and installs the required libraries (python-osc, websockets, pystray, pillow). This takes around 30 seconds. Every subsequent launch is instant.
Once setup is complete, a small system tray icon appears in the bottom-right corner of your taskbar. The bridge is running. โ
๐ macOS
Double-click start_bridge.command.
If macOS shows a security warning ("cannot be opened because it is from an unidentified developer"): right-click the file โ Open โ confirm. You only need to do this once.
First launch only: A terminal window briefly flashes while the virtual environment is being set up (including pyobjc-framework-Cocoa). The window closes automatically when done โ this is completely normal behavior. A menu bar icon appears in the top-right of your screen. โ
๐ง Linux
Open a terminal, navigate to the extracted folder, and run:
chmod +x start_bridge.sh && ./start_bridge.sh
First launch only: The script automatically creates a virtual environment and installs dependencies. After setup completes, the bridge runs in the background with a tray icon (requires a system tray such as GNOME with AppIndicator, KDE Plasma, or XFCE). โ
Step 4 โ Optional: Enable Autostart
If you want the bridge to start automatically when you log into your computer, right-click the tray or menu bar icon and select "Enable Autostart".
- ๐ช Windows: Creates a startup entry in
AppData\Microsoft\Windows\Start Menu\Programs\Startup - ๐ macOS: Registers a LaunchAgent at
~/Library/LaunchAgents/io.oschrbridge.plist - ๐ง Linux: Creates an XDG autostart entry at
~/.config/autostart/oschrbridge.desktop
To remove autostart later, right-click the tray icon and select "Disable Autostart".
Step 5 โ Enable OSC in VRChat ๐ฎ
- Launch VRChat and load into any world
- Open the radial action menu (hold right trigger /
Ron keyboard) - Navigate to Options โ OSC
- Toggle OSC On
VRChat will now listen for incoming OSC messages on UDP port 9000 (the default). You only need to do this once โ VRChat remembers the setting.
โ ๏ธ Important: If you have previously used other OSC tools, make sure no other application is occupying port 9000.
Step 6 โ Connect Everything in the Browser Panel ๐
With the Python bridge running and VRChat open, go back to the browser panel at osc.hyperate.io.
Connect to the OSC Bridge:
- In the OSC Configuration section, verify the Bridge Port shows
8765(default) - Click "Connect to Bridge" โ the status indicator turns green with "Connected" โ
Connect to HypeRate:
- Open the HypeRate app on your phone and start a session
- Copy your Session ID from the app
- In the HypeRate Connection section of the browser panel, enter your Session ID
- Click "Connect to HypeRate"
- The status indicator turns green and your live BPM appears on screen โค๏ธ
You should now see your real heart rate displayed on the dashboard, with the EKG chart updating in real time.
* * *
Understanding Your Avatar Parameters ๐งฌ
The bridge writes two OSC parameters to your VRChat avatar by default:
/avatar/parameters/HRโ integer with your current BPM (e.g. 86)/avatar/parameters/isHRBeatโ boolean that istruefor 800 ms on each heartbeat, thenfalse
To use these in VRChat, your avatar's FX Animator needs to reference these exact parameter names. You can create:
- A display element that reads the
HRinteger and shows a number - A pulse animation triggered by
isHRBeatgoing true/false - Blend trees or state machine transitions based on heart rate zones
If you're using a community avatar that already has heart rate support built in, just make sure the parameter names match โ or update the paths in the configuration panel to match what your avatar expects.
* * *
Advanced Configuration ๐ง
All OSC settings can be adjusted in the OSC Configuration Panel:
- OSC Target IP (default:
127.0.0.1) โ IP of the machine running VRChat. For cross-device setups, enter the local network IP of the VRChat PC. - OSC Port (default:
9000) โ VRChat default; must match VRChat's OSC input port. - Heart Rate Parameter (default:
/avatar/parameters/HR) โ OSC address for the BPM integer value. - Beat Parameter (default:
/avatar/parameters/isHRBeat) โ OSC address for the boolean pulse per beat. - Bridge Port (default:
8765) โ WebSocket port the Python script listens on.
Changes apply immediately without restarting the bridge.
The tool also works with Resonite, ChilloutVR, and any other application that accepts standard OSC UDP packets โ simply adjust the IP, port, and parameter paths to match what those platforms expect.
* * *
Heart Rate Zones ๐
The dashboard automatically detects and displays your current heart rate zone with a color-coded badge:
- ๐ต Resting โ under 60 BPM
- ๐ข Normal โ 60โ99 BPM
- ๐ Elevated โ 100โ139 BPM
- ๐ด High โ 140+ BPM
Useful for monitoring workout intensity โ and some avatar creators build zone-responsive animations that change color or behavior based on these thresholds.
* * *
Choosing the Right Heart Rate Device โ
The experience is only as good as the data coming in. Here are the three main categories:
๐ Chest Straps (Recommended for Lowest Latency)
Chest straps measure electrical cardiac signals rather than light-based pulse detection, making them faster and more accurate โ especially during exercise or intense VR gameplay.
Top picks fully supported by HypeRate:
- Polar H10 โ the gold standard for accuracy, with internal memory and Bluetooth 5.0
- Wahoo TICKR โ great value, reliable connection, loved by the streaming community
- Garmin HRM-Pro โ dual ANT+/Bluetooth, excellent during high-movement sessions
๐ View all compatible chest straps on HypeRate โ
โ Smartwatches
If you already own a compatible smartwatch, it may work out of the box:
- Apple Watch โ excellent HR tracking, simple HypeRate integration
- Garmin Forerunner / Vivoactive / Venu series โ reliable, long battery life
- Samsung Galaxy Watch โ works well in most conditions
- Fitbit (select models) โ supported with HypeRate companion setup
๐ Full list of compatible smartwatches and fitness bands โ
๐ฐ Fitness Bands
A budget-friendly option if you just want to get started. Many BLE-standard fitness bands work if they broadcast a standard GATT heart rate profile. Check the HypeRate supported device list for confirmed compatibility before purchasing.
* * *
Troubleshooting ๐ ๏ธ
The bridge status shows "Error" or won't connect
- Make sure the Python bridge is actually running โ look for the tray icon
- Confirm nothing else is using port 8765 on your PC
- Click "Connect to Bridge" again โ it retries automatically up to 10 times with exponential backoff
- On macOS: verify Python has permission to accept network connections (System Settings โ Privacy & Security โ Local Network)
My BPM shows in the browser but doesn't reach VRChat
- Confirm OSC is enabled in VRChat (Options โ OSC in the radial menu)
- Check that OSC Target IP is
127.0.0.1if VRChat runs on the same machine - Make sure your firewall isn't blocking UDP port 9000
- Reload your avatar in VRChat โ OSC parameters sometimes need a fresh avatar load to initialize
Python says "command not found" or the script won't run
- Download and install Python 3.8+ from python.org
- On Windows, during installation check the box "Add Python to PATH"
- On macOS, run
python3 --versionin Terminal to confirm your installation
The HypeRate connection drops frequently
- Check your phone's battery saver mode โ Android in particular can kill background apps aggressively
- Keep the HypeRate app in the foreground during longer sessions
- The bridge automatically attempts to reconnect up to 8 times with increasing delays โ most brief drops recover on their own
* * *
Frequently Asked Questions โ
Is the HypeRate OSC HR Bridge free?
Yes, completely. You only need the HypeRate app to get a Session ID โ which is also free and requires no account.
Does it work without VRChat?
Yes. Any application that accepts standard OSC UDP packets can receive the data. This includes Resonite, ChilloutVR, and custom software you write yourself.
Does the bridge store or transmit my heart rate data anywhere?
No. Your BPM data flows from HypeRate directly to your local Python bridge script and then to your local VRChat process. Nothing is stored on any server. The browser control panel saves only your Session ID and OSC settings in your own browser's localStorage.
What Python version do I need?
Python 3.8 or newer. Tested with 3.8, 3.10, and 3.12.
Can I change the avatar parameter paths?
Yes. The OSC Configuration panel lets you set any valid OSC address for both the HR integer and the beat boolean. This is useful when your avatar uses custom parameter names.
Will it work while I stream on Twitch or YouTube?
Absolutely. Many streamers use it specifically to add a live BPM overlay to their VRChat avatar for their audience to see. Pair it with a chest strap for the most accurate and responsive readings during gameplay. ๐ฅ
* * *
Get Started Today ๐
The HypeRate OSC HR Bridge takes about five minutes to set up from scratch. Once it's running, it runs silently in the background and your avatar stays connected to your pulse for the entire session.
What you need:
- The HypeRate app (free, no account required)
- A compatible heart rate monitor
- Python 3.8+ from python.org
- One browser tab open at osc.hyperate.io
Whether you're a VRChat streamer wanting to entertain your audience with live biometrics, a fitness-focused VR user tracking workout intensity, or just someone who thinks it's genuinely cool to have a real heartbeat synced to their avatar โ this bridge gives you everything you need. Free. In real time. โค๏ธ


