Turn your head. The video follows.
A focused macOS player that gives XREAL One glasses head-tracked 360° video, stereoscopic playback, and direct hardware controls.
Most desktop video players treat XREAL glasses like an ordinary external monitor. This one does not.
XREAL YouTube VR reads the glasses' live IMU stream and uses it to steer the camera inside YouTube 360° and local equirectangular video. Start a video, put on the glasses, and look around naturally—no mouse dragging during playback.
It also reaches beyond playback: switch display modes, enter native Full SBS, recenter the view, adjust brightness and tint, and control XREAL's spatial modes from one Mac app.
Important
This is an independent community project. It is not affiliated with, endorsed by, or supported by XREAL.
| Experience | What the app handles |
|---|---|
| YouTube 360° | Paste a watch, share, Shorts, Live, or embed URL and steer supported 360° video using head movement. |
| Local 360° | Open a 2:1 equirectangular video and explore it with low-latency IMU head tracking. |
| Stereo 3D | Render top/bottom or side-by-side sources as two native 1920×1080 eye views in XREAL Full SBS mode. |
| Cinema presentation | Find the XREAL display, move the player to it, and enter a clean video-only fullscreen view automatically. |
| Glasses control | Change brightness, tint, stabilizer, wear detection, frame-button behavior, screen size, and screen distance. |
| Spatial modes | Select Follow, Anchor, Side View, or UltraWide and recenter without reaching for another utility. |
The glasses expose a live orientation stream. The app turns that data into camera movement while keeping display-mode changes coordinated with the video:
XREAL IMU ──▶ calibrated head pose ──▶ 360° camera
│
video type ──▶ mono / stereo detection ──▶ 2D or Full SBS
For 360° playback, the app snapshots the current spatial mode, screen size, and stabilizer settings. It applies a reversible viewing preset, presents the video on the XREAL display, then restores the original setup when you leave.
Press Esc to exit presentation mode and return the window to its previous position.
- macOS on Apple silicon
- XREAL One glasses connected to the Mac
- Node.js and npm
git clone https://github.com/GarfDev/xreal-one-control-panel.git
cd xreal-one-control-panel
npm install
npm startThen choose a path:
- YouTube: paste a supported URL and start playback.
- Local 360°: choose a local equirectangular video.
- Stereo check: click Run Google 3D test to load Google's known-good top/bottom calibration video.
You can look around, but both eyes receive the same image. The app selects Normal 2D at 1920×1080.
Each eye receives a different view, creating depth. Top/bottom and side-by-side local sources are mapped to native XREAL Full SBS output at 3840×1080—two unsqueezed 1920×1080 eye views.
The app uses YouTube's official IFrame Player API to set yaw and pitch on recognized 360° videos. A video must be public or unlisted, embeddable, and uploaded with valid 360° metadata.
Ordinary flat videos ignore spherical camera commands. A monoscopic video also remains monoscopic; the app does not manufacture fake depth. For stereo playback, the YouTube video must visibly provide a full-width left/right presentation before entering Full SBS.
npm test
npm run distThe test suite covers device packets, live-control parsing, stereo layout, presentation flow, and YouTube orientation. Packaged builds target Apple silicon and are not notarized; signing depends on the local packaging environment.
This repository also documents the XREAL One interfaces uncovered while building the app:
- Firmware capability map — safe controls, hidden features, hardware limits, and high-risk changes
- Industry feature feasibility — which modern AI/XR ideas this hardware can realistically support
- Pilot repacking and recovery — byte-identical repacking, recovery hashes, and mandatory safety checks
- Reverse-engineering notes — protocol IDs, firmware structure, and unpacking findings
Firmware work can make hardware unusable. Read the recovery documentation and verify the exact device and firmware before experimenting. The video player and normal glasses controls do not require flashing modified firmware.
An XREAL update left the physical buttons on my glasses unusable. Support did not provide a workable resolution, and otherwise-functional hardware had lost essential controls.
So I started pulling on the thread: first restoring access to the controls, then decoding the IMU stream, then turning the result into the 360° player I wanted the glasses to have. This project is the outcome—and a way to keep useful hardware useful.
- Local videos stay on the Mac.
- The renderer is sandboxed with Node integration disabled.
- Device commands are validated in the main process.
- YouTube playback uses
youtube-nocookie.com, though normal YouTube network requests still occur during playback.
Released under the MIT License.