KitwareMedical / KitwareMedical/SlicerVirtualReality

Linux experiment openXR

Open
#190 0 comments 0 reactions 0 assignees View on GitHub
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)

Image

-> 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:

Image

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.