Software
Integrations
VRChat OSC

VRChat OSC

Stream EEG band powers to VRChat via UDP OSC. Enable with --osc or from the dashboard.

pieeg-server --osc                                          # defaults
pieeg-server --osc --osc-mode chatbox --osc-interval 0.5    # chatbox only, 2 Hz

Modes

ModeOutput
chatboxBand powers as text in VRChat chatbox
parametersAvatar parameter floats (normalized 0–1)
bothChatbox + avatar parameters (default)

Configuration

FlagDefaultDescription
--osc-host127.0.0.1VRChat receiver address
--osc-port9000VRChat OSC port
--osc-modebothchatbox, parameters, or both
--osc-interval0.25Update rate in seconds
--osc-regions-setupInteractive wizard to define channel regions

Channel Regions

By default, OSC sends band powers averaged across all channels. Use --osc-regions-setup to define custom channel groups (e.g., EEG vs EOG, frontal vs parietal):

pieeg-server --osc-regions-setup

This creates ~/.pieeg/lsl_groups.json with your region definitions. Both OSC and LSL integrations use this file for region-specific streaming.

WebSocket Control

{"cmd": "osc_start"}
{"cmd": "osc_stop"}
{"cmd": "osc_status"}
{"cmd": "osc_config", "config": {
  "host": "127.0.0.1",
  "port": 9000,
  "mode": "both",
  "interval": 0.25,
  "channel": "avg"
}}

The osc_config command allows hot-reloading configuration while the bridge is running.

Avatar Parameters

When in parameters or both mode, band powers are sent as normalized floats (0–1) with rolling normalization:

ParameterBand
EEG_DeltaDelta (0.5–4 Hz)
EEG_ThetaTheta (4–8 Hz)
EEG_AlphaAlpha (8–13 Hz)
EEG_BetaBeta (13–30 Hz)
EEG_GammaGamma (30–100 Hz)

The VRChat OSC experience in the dashboard provides a visual configuration UI with live parameter preview.