OpenXR streaming application
WiVRn lets you run OpenXR applications on a computer and display them on a standalone headset.
See building.
Download apk from Releases. Install with adb (headset connected to PC), developer mode must be enabled.
adb install WiVRn.apk
See building.
In order to set WiVRn as the default OpenXR runtime, you can run the collowing commands:
mkdir -p ~/.config/openxr/1/
ln --relative --symbolic --force build-server/openxr_wivrn-dev.json ~/.config/openxr/1/active_runtime.json
Alternatively, setting the environment XR_RUNTIME_JSON="${PWD}/build-server/openxr_wivrn-dev.json"
will set it for the current shell only.
Avahi must be running:
systemctl enable --now avahi-daemon
If a firewall is installed, open port 5353/UDP for avahi. Open ports 9757/UDP+TCP for WiVRn itself.
On the computer, run wivrn-server
, from checkout directory
build-server/server/wivrn-server
Then, on headset, launch WiVRn from the App Library, in "unknown sources" section.
You should now see your server in the list, click connect, screen will show "waiting for video stream". Now on your computer you can run an OpenXR application, and it will show on your headset, enjoy!
When headset is connected, wivrn-server will create a virtual output device named WiVRn. It is not selected as default and you should either assign the application to the device when it is running, or mark it as default. To do so you can use pavucontrol
or your desktop environment's configuration panel. Please note that in pavucontrol
it will appear as a virtual device.
For microphone, you first have to enable it on the settings tabs on the headset (and give permission when prompted). It will then appear as a virtual input device named WiVRn(microphone) and also needs to be assigned like for output device.
Configuration is done on server side, in $XDG_CONFIG_HOME/wivrn/config.json
or if $XDG_CONFIG_HOME
is not set, $HOME/.config/wivrn/config.json
.
All elements are optional and have default values.
See configuration for configurable items.
WiVRn uses the following software: