Real-time OSC proxy for VRCFaceTracking — visualize and tune eye gaze offsets and gain with live polar plots.
Sits between VRCFaceTracking (VRCFT) and VRChat, intercepting OSC face tracking data. For eye tracking parameters it lets you apply per-eye gain and offset corrections, and shows you the raw vs. transformed gaze position in real time on polar plots.
All other face tracking data (mouth, brows, etc.) passes through untouched.
Download VRCGazeTuner.exe from the releases — no Python required. Just run it.
pip install python-osc matplotlib numpy
python VRCGazeTuner.py
- In VRCFT settings, set Send Port to
9100and IP to127.0.0.1 - Run
VRCGazeTuner.exe(orVRCGazeTuner.pyfrom source)
- Polar plots — left and right eye gaze direction and magnitude. Gray dot = raw tracker value, blue dot = after your transforms. The history trail shows recent movement.
- Eyelid bars — live readout of eyelid openness (0 = closed, 0.75 = normally open, 1.0 = wide).
- Sliders — tune gain and offset independently for left eye X, right eye X, and the shared vertical Y.
- Save Config — writes current slider values to
proxy_config.jsonnext to the exe, loaded automatically on next launch. - Reset All — returns all sliders to defaults (gain 1.0, offset 0.0).
- Passthrough — disables all transforms instantly for A/B comparison. Turns red when active.
- Your avatar must have eye tracking parameters in its OSC config. If the plots show no movement, reset the OSC config in VRChat (Action Menu → OSC → Reset Config) and reload your avatar.
- Some avatars send a single shared
EyeYfor both eyes rather than separate per-eye Y values — in that case the Both Eyes Y slider row controls vertical movement for both eyes simultaneously. - Config is saved to
proxy_config.jsonnext to the executable. Delete it to reset to defaults.
| Flag | Description |
|---|---|
--no-gui |
Run headless (proxy only, no window) |
--passthrough |
Forward all data without any transforms |
--listen-port N |
Change the proxy listen port (default 9100) |
--debug |
Write all received OSC addresses to debug_addrs.txt |
For other VR-related information and help:
- 💬 Discord: https://discord.gg/fnZjDyUFWs
▶️ YouTube: https://youtube.com/@UbootVRC