Edit this page

NA-MIC Project Weeks

Back to Projects List

SlicerVR infrastructure maintenance

Key Investigators

Project Description

SlicerVR has many great features that allow an efficient visualization of medical 3D data. However, recent updates in the infrastructure (mainly that of VTK) broke certain key features, which make SlicerVR basically unusable in its current form.

Recently there was also progress with the in-VR widget and its usage with the laser pointer that forms an integral part of the final SlicerVR infrastructure. The basic pieces are there, but need to be finalized and also see if the reimplemented widget in VTK works in VR (which before it did not).

At the same time, a new project (Kitware/Robarts) has started to upgrade the rendering backend of SlicerVR from OpenVR to OpenXR and making the XR features available via the SlicerVR extensions.

Since this project needs a fully functioning SlicerVR including the widgets, this Slicer week project we can unite forces and make a push towards this goal.


The goal of the project is, with coordination with Kitware/Robarts, to reach the previous usability state of the SlicerVR extension, as well as make progress with the in-VR widget.

Approach and Plan

  1. The OpenXR integration into SlicerVR seems to advance well, so
    1. Test SlicerVR with the OpenXR branch
    2. Fix controller events with HP controller that seem to happen with XR as well, and the errors that bog down the application while rendering
  2. Fix volume rendering display in the virtual reality view. This may not be OpenVR-related, because the same thing happens using the Looking Glass extension, so would be a first candidate.
  3. Try out the latest branch for the in-VR widget
    1. Try the reimplemented vtkQWidgetWidget class that now does not use the unstable shared context
    2. Make progress with the laser pointer
    3. Fix the texture update in the VR view (the update happens in regular 3D view, i.e. the checkbox is checked visibly, but not in the VR view)

Progress and Next Steps

  1. OpenXR has been added to the SlicerVR superbuild, see branch (Adam, Jc)
  2. Flag has been added to SlicerVR to use either OpenVR or OpenXR, and if statements added in the code to use the selected one. The OpenXR control paths currently log not implemented messages. See branch (Csaba)


In-VR widget example

Background and References



Past project week pages