Skip to content

galister/WiVRn

 
 

Repository files navigation

WiVRn

License: GPL v3 CI Format

WiVRn wirelessly connects a standalone VR headset to a Linux computer. You can then play PCVR games on the headset while processing is done on the computer.

It supports a wide range of headsets such as Quest 1 / 2 / Pro / 3, Pico Neo 3 / 4, HTC Vive Focus 3, HTC Vive XR elite and most other Android based headsets.

Getting started

Server and dashboard

We recommend using the flatpak package from Flathub:

Flathub

Alternatively, packages are available:

Headset app

Follow the wizard in the dashboard to install the client app on the headset: it will either lead you to the Meta Store or download the correct APK.

⚠️ You will need to have a compatible version: if the headset fails to connect to your computer, see troubleshooting.

Usage

Running

Prerequisites

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.

Running

  • On your computer, run "WiVRn server" application, or wivrn-dashboard from the command line, it will show the connection wizard the first time you launch it.
  • On your headset, run WiVRn from the App Library. If you are using a Quest and you have installed it from an APK instead of the Meta Store, it will be in the "unknown sources" section.
  • You should now see your computer in the list: click connect, the screen will show "Connection ready. Start a VR application on your computer's name".

You can now start an OpenXR application on your computer. For Steam games, you will also need to set the launch options to be able to use WiVRn:

  • Right-click on the game you want to play in VR in Steam and click "Properties".
  • In the "General" tab, set the launch options to the value given in the dashboard.

You can set an application to be started automatically when you connect your headset in the dashboard settings or manually

OpenVR and Steam games

The flatpak also includes OpenComposite, used to translate the OpenVR API used by SteamVR to OpenXR used by WiVRn, see SteamVR for details.

If using Wine/Proton, it will probe for OpenVR at startup, so even for OpenXR applications, OpenComposite is required.

When you start the server through flatpak, it will automatically configure the current OpenVR to use OpenComposite.

Audio

When the headset is connected, WiVRn 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.

Building

See building for building the dashboard, server (PC), and client (headset)

Configuration

Configuration can be done from the dashboard.

See configuration for editing the configuration manually.

Troubleshooting

My computer is not seen by the headset

If the server list is empty in the headset app:

  • Make sure your computer is connected on the same network as your headset
  • Check that avahi is running with systemctl status avahi-daemon, if it is not, enable it with systemctl enable --now avahi-daemon
  • If you have a firewall, check that port 5353 (UDP) is open

My headset does not connect to my computer

  • If you have a firewall, check that port 9757 (UDP and TCP) is open
  • The server and client must be compatible:

Credits

WiVRn uses the following software:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 93.2%
  • CMake 3.3%
  • JavaScript 1.0%
  • GLSL 0.9%
  • Roff 0.6%
  • Python 0.3%
  • Other 0.7%