Edit this page

NA-MIC Project Weeks

Back to Projects List

Collaborative Slicer session

Key Investigators

Project Description

Slicer module (packaged in an extension) for connecting two or more running Slicer sessions one being the server the other(s) the client(s). The module synchronizes properties and data via OpenIGTLink that have not been supported so far, but are needed for shared session, for example all markup types and display properties of any nodes. This is one of the main components needed for AR/VR collaboration.


  1. Objective A. Showcase current progress
  2. Objective B. Collect feedback, add select features
  3. Objective C. Fix remaining issues

Approach and Plan

  1. List all currently used node types in Slicer and decide which are supported, and those that are not how will be supported. Create plan. Special attention to:
    1. Segmentations
    2. Subject hierarchy (folders, reparenting etc.)
  2. Remote connections
    1. Try connecting computers on the same network
    2. Brainstorm about how to facilitate connection of instances without fixed IP
  3. Integrate necessary commit into SlicerOpenIGTLink

Progress and Next Steps

  1. Demo and discussion about the extension and features, talk about use cases :heavy_check_mark:
  2. SlicerOpenIGTLink contribution integrated, see commit :heavy_check_mark:
  3. List of currently used node types in Slicer.
    1. Supported by OpenIGTLink:
      • Models
      • Linear Transforms
      • Text
      • Volumes
      • Fiducial Markups
    2. Not supported by OpenIGTLink, but supported by SlicerCollaboration:
      • Display nodes
      • Remaining Markups
      • Parent transforms
    3. To be supported by SlicerCollaboration:
      • Segmentations
      • Subject hierarchy structure
  4. Discussion about how to solve remote connections through OpenIGTLink with Slicer running in a computer with no externally visible fixed IP. Suggested solutions:
    1. Setup port forwarding on your router. This way you can call this address from outside and the router automatically redirects traffic to the specified computer on the local network. Downsides: the setup needs to be redone every time your router allocates a new local ip to your computer. It is usually not possible to setup like that in the office unless you have control of the network node going out.
    2. See if there’s a way to make a SlicerSharing app for one of the services that already does real time sharing. Teams and Zoom both have hooks for apps.
    3. VNC connect, TeamViewer, etc. use a rendezvous server that allows clients and servers to find each other and connect directly. See here.
    4. Use a VPN server installed somewhere (Ebatinca or a University) that leases IP addresses that could be private but allow interconnection. This way, a possible collaborative-slicer user only needs to install the VPN client and connect.


Screenshot showing VR usage: SlicerCollaboration screenshot VR

Screenshot showing server/client: SlicerCollaboration screenshot server/client

Background and References