lvra.gitlab.io/content/docs/fossvr/wivrn/_index.md
2024-09-13 16:49:35 +00:00

64 lines
2.7 KiB
Markdown

---
weight: 50
title: WiVRn
---
# WiVRn
- [WiVRn GitHub repository](https://github.com/WiVRn/WiVRn)
![The WiVRn mascot](https://github.com/WiVRn/WiVRn/blob/master/images/wivrn.svg?raw=true)
> WiVRn lets you run OpenXR applications on a computer and display them on a standalone headset.
It's very similar in purpose to [Monado](/docs/fossvr/monado/), but for standalone VR headsets.
Should you utilize [Envision](/docs/fossvr/envision/) for WiVRn setup, please ensure your APK and WiVRn server match as closely as possible. Check the WiVRn github [actions](https://github.com/WiVRn/WiVRn/actions) for an APK matching your server build to install to your headset.
## Wired WiVRn
Use WiVRn with a cable instead of Wifi. Use a 5Gbps cable & port at the very least.
Steps:
- Enable TCP Only mode, either via Envision or the [JSON configuration](https://github.com/WiVRn/WiVRn?tab=readme-ov-file#configuration)!
- Connect the headset via USB
- If WiVRn is running on the headset, close it now.
- While in the system lobby of the headset, run the following `adb` commands on the PC:
```bash
adb reverse tcp:9757 tcp:9757
adb shell am start -a android.intent.action.VIEW -d "wivrn://127.0.0.1" org.meumeu.wivrn
```
## WiVRn + Lighthouse driver
This section covers using WiVRn with any lighthouse-tracked device: Index/Vive controllers, Vive/Tundra trackers, etc.
Have SteamVR installed (no need to run it).
In Envision, set WiVRn Profile as such:
- XR Service CMake Flags:
- `WIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON`
- Environment Variables:
- `WIVRN_USE_STEAMVR_LH=1`
- `LH_DISCOVER_WAIT_MS=6000`
Perform a **Clean Build** after changing the CMake flags!
If not using Envision, simply pass `-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON` to cmake and export the env variables before starting `wivrn-server`.
[Motoc](/docs/fossvr/motoc/) will be used to calibrate the two tracking technologies to work together.
Discovery happens only on first connection, so be sure to **have all lighthouse devices powered on and in line of sight of base stations before connecting the headset!**
Once a device is discovered, it may be powered off and then back on later.
Once video appears in the headset, check `motoc monitor` to make sure your devices all show up.
If one or more devices are missing, try:
- Spread the devices out more; lighthouse devices get discovered quicker if they're not piled up on each other. Simply strapping them on is good, too.
- Increase `LH_DISCOVER_WAIT_MS`, though this delays the client on first connection.
To re-discover devices, restart WiVRn server.
At this point, your lighthouse devices will be randomly floating about somewhere. To calibrate them, follow the guide in the [Motoc README](https://github.com/galister/motoc/blob/main/README.md).