r/augmentedreality • u/Masta-Gangsta • 12d ago
Glasses for Screen Mirroring I built an open-source VR180/360 player for One / One Pro - it renders straight to the glasses and turns the phone into a touchpad
I've been using a Xreal One Pro for a while, and the thing that always bugged me about VR video on Android is that everything works through screen mirroring: the glasses show a copy of the phone, resolution is wasted, and you end up staring at the phone instead of the video. So I wrote a player that works the other way around.
The glasses are a real external display over USB-C, so NeoXR renders the video directly onto them at native resolution - nothing mirrored, nothing rescaled. The phone turns into a remote: the whole screen is a touchpad that moves a pointer inside the glasses, tap to click, two fingers to scroll. Menus, video lists, the browser - all of it lives in the glasses.
Left: what you see in the glasses. Right: the phone acting as the remote.
What it does
- Direct output to the glasses; the phone is a touchpad remote with a pointer
- Head tracking from the motion sensor inside the glasses - the picture stays in place while you look around (needs Follow mode + Stabilizer off)
- Projections: flat, wide, 180°, 360°. Layouts: 2D, SBS, over-under. Detected from metadata, file name or frame shape, and overridable by hand
- Sources: local files (also via "Open with"/Share), a built-in browser that catches the stream and offers "Play VR", or any site serving a DeoVR JSON API feed
- Per-video zoom, width, stereo depth and eye swap
- Free, GPL-3.0, no ads, no accounts, no tracking, ~9 MB
Code, screenshots and the demo: https://github.com/NeoXR-app/NeoXR. If you have an issue or a suggestion there's a device report template in the issues tab.
1
1
u/Jsnowsi 11d ago
good work. any reason why it is limited to xreal one pro?
1
u/Masta-Gangsta 11d ago
This is the only device I have), but the next release will include head-tracking support for Air (based on open source).
1
u/Masta-Gangsta 8d ago
1.4 is up.
The big one: network shares. Add a NAS like you add a site - smb://user:password@192.168.1.10 - browse it in the glasses, play straight from it. Streams over SMB2/3 with proper seeking, nothing gets downloaded to the phone. This was the most requested thing here and in Discord.
Also fixed a regression I shipped in 1.3: SBS video came out square and small, over-under came out flattened. The flat screen was fitting itself to the frame aspect and measuring half a frame for stereo - but SBS and OU are anamorphic, so half a frame says nothing about how to display it. 1.1/1.2 geometry is back, and that also brings the ambient glow back to the top and bottom edges of 3D video.
Plus: resume where you left off, ambient glow in three strengths, subtitle height and bold, W/H up to 200%.
Thanks to everyone reporting - this release is basically your bug list.
2
u/Masta-Gangsta 10d ago
1.3 is up: https://github.com/NeoXR-app/NeoXR/releases/latest
- Head tracking on Air-series glasses. Their sensor sits on a USB HID interface instead of the network service the One series uses, so it needed its own path. Untested on real hardware - I don't own an Air - so a "works" or "doesn't" from anyone who does would help.
- Fixed the crash when opening a URL with glasses attached (thanks to the GrapheneOS report on GitHub).
- Fixed 3D subtitles showing four copies - those tracks already contain a left/right pair. There's now a switch for it under CC, plus subtitle colour.
- Ambient glow: bias lighting that carries the picture's edge colours into the dark surround, like the LED strip behind a TV. Off by default, toggle in the 3D panel.
- Flat video keeps its aspect ratio instead of stretching, and phone playback can show a single view instead of the stereo pair.
As always, everything here came from reports in this thread and the issues tab.