KitwareMedical / KitwareMedical/SlicerVirtualReality
Linux experiment openXR
- Dominant language
- C++
- Stars
- 137
- Forks
- 62
- Avg merge
- 8h 8m
- Merged PRs (30d)
- 8
Description
Headset: Meta Quest 3
OS: Ubuntu 26.04
1) Setup wivrn server on linux:
```
flatpak install flathub io.github.wivrn.wivrn
sudo systemctl enable --now avahi-daemon
flatpak run io.github.wivrn.wivrn
```
2) Install wivrn client on meta store on Meta Quest 3
3) Pair client and server following instructions on wivrn UI.
4) Verify OpenXR
cat ~/.config/openxr/1/active_runtime.json
hello_xr -G Vulkan
this works!
On the other hand, I did not managed to use SlicerVirtualReality @lassoan
A) binaries from Slicer-5.13.0-2026-06-29-linux-amd64 have this library link error:
```
Error(s):
Cannot load library /home/davide/Downloads/Slicer-5.13.0-2026-06-29-linux-amd64/slicer.org/Extensions-34829/SlicerVirtualReality/lib/Slicer-5.13/qt-loadable-modules/libqSlicerVirtualRealityModule.so: (/work/Preview/S-0-E-b/SlicerVirtualReality-build/OpenVR/bin/linux64/libopenvr_api.so: cannot open shared object file: No such file or directory)
```
workaround:
```
sudo mkdir -p /work/Preview/S-0-E-b/SlicerVirtualReality-build/OpenVR/bin/linux64
sudo ln -sf \
/home/davide/Downloads/Slicer-5.13.0-2026-06-29-linux-amd64/slicer.org/Extensions-34829/SlicerVirtualReality/lib/Slicer-5.13/libopenvr_api.so \
/work/Preview/S-0-E-b/SlicerVirtualReality-build/OpenVR/bin/linux64/libopenvr_api.so
```
B) once (A) is fixed, I clicked the virtual reality button (top left in the image below)
-> Slicer crash:
```
Switch to module: "Markups"
Switch to module: "VirtualReality"
Initializing "OpenXR" XR backend (1/1)
Optional extensions UnboundedRefSpace is supported
Optional extensions HandTracking is supported
LOG in xrCreateInstance: Instance created
createInfo->applicationInfo.applicationName: OpenXR with VTK
Runtime Name: WiVRn 'v26.6.1'Runtime Version: 26.6.1
createInfo->applicationInfo.applicationVersion: 1
createInfo->applicationInfo.engineName:
createInfo->applicationInfo.engineVersion: 1
createInfo->applicationInfo.apiVersion: 1.0.60
appinfo.detected.engine.name: (null)
appinfo.detected.engine.version: 0.0.0
quirks.disable_vulkan_format_depth: false
quirks.disable_vulkan_format_depth_stencil: false
quirks.no_validation_error_in_create_ref_space: true
quirks.skip_end_session: false
quirks.parallel_views: false
quirks.no_texture_source_alpha: false
quirks.ignore_invalid_swapchain_usage_bits: false
LOG in xrGetSystem: Selected devices
Head: 'WiVRn HMD'
Eyes: ''
Left: 'WiVRn left hand interaction'
Right: 'WiVRn right hand interaction'
Gamepad: ''
Hand-Tracking Left (unobstructed): 'WiVRn left controller'
Hand-Tracking Right (unobstructed): 'WiVRn right controller'
Hand-Tracking Left (conforming): ''
Hand-Tracking Right (conforming): ''
System Properties for system id:1, with name "Meta Quest 3 on WiVRn", vendorID=0
Max Layers : 128
Max Swapchain Height: 16384
Max Swapchain Width : 16384
Orientation Tracking: True
Position Tracking : True
Hand Tracking : 1
Runtime supports 1 view configurations
Type XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO: FOV mutable: True
Runtime supports 3 reference spaces:
XR_REFERENCE_SPACE_TYPE_VIEW
XR_REFERENCE_SPACE_TYPE_LOCAL
XR_REFERENCE_SPACE_TYPE_STAGE
View Configuration View 0
Resolution : Recommended: 2064x2162, Max: 4128x4324
Swapchain Samples: Recommended: 1, Max: 1
View Configuration View 1
Resolution : Recommended: 2064x2162, Max: 4128x4324
Swapchain Samples: Recommended: 1, Max: 1
error: [/home/davide/Downloads/Slicer-5.13.0-2026-06-29-linux-amd64/bin/SlicerApp-real] exit abnormally - Report the problem.
```
C) I tried to compile on linux the slicervirtualreality extension (master branch) against the latest Slicer https://github.com/Slicer/Slicer/commit/d401fce44b2af8e9373b92b9b99a509ee709d84e and I got the same crash.
Unfortunately I don't have currently enough time to investigate the crash, here it is the stack trace if it can help:
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the SlicerVirtualReality extension build on Linux and checking the reported libqSlicerVirtualRealityModule.so dependency error, then run the OpenXR verification command and review the provided crash stack trace. Done means the extension loads without the missing-library workaround and clicking the VirtualReality button no longer crashes Slicer with the WiVRn runtime.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp, linux
- Domain
- ar-vr-xr
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100