3D Connexion space mouse

I tried to search for a solution but without a success. How can I connect and use the Connexion 3D space mouse with the 3D Slicer?


The Plus toolkit supports Connexion:


There is a Slicer example at the bottom of that page.

Dear Isaiah,

I found this page but I didn’t understand where the PlusServer is. Sorry for being that dumb.


Isaiah Norton slicer@discoursemail.com ezt írta (időpont: 2018. szept. 12., Sze 19:45):

Dear Isaiah,

I’ve found the PlusServer and did the steps written in the link you provided. I removed the driver for the 3D connexion and started the PlusServer as written in the link but no movement was made using the 3D mouse.
Here is a log:
|INFO|000.205000| Software version: Plus- - Win64| in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(102)

|INFO|000.205000| Logging at level 3 to file: C:/Users/petnehazy ors/PlusApp-| in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(103)

|INFO|000.207000| Supported devices: - 3dConnexion (ver: Plus-2.6.0) - AuroraTracker (ver: NDICAPI-1.7) - BkProFocusOem (ver: Plus-2.6.0) - ChRobotics (ver: Plus-2.6.0) - Epiphan (ver: Plus-2.6.0) - FakeTracker (ver: Plus-2.6.0) - GenericSerialDevice (ver: Plus-2.6.0) - ICCapturing (ver: The Imaging Source UDSHL-3.4) - ImageProcessor (ver: Plus-2.6.0) - IntelRealSenseTracker (ver: ) - Microchip (ver: Plus-2.6.0) - MmfVideo (ver: Plus-2.6.0) - NDITracker (ver: NDICAPI-1.7) - NoiseVideo (ver: Plus-2.6.0) - OpenIGTLinkTracker (ver: OpenIGTLink v3.1.0) - OpenIGTLinkVideo (ver: OpenIGTLink v3.1.0) - OptiTrack (ver: Plus-2.6.0) - OpticalMarkerTracker (ver: Plus-2.6.0) - PhidgetSpatial (ver: Plus-2.6.0) - PolarisTracker (ver: NDICAPI-1.7) - SavedDataSource (ver: Plus-2.6.0) - UsSimulator (ver: Plus-2.6.0) - VFWVideo (ver: Plus-2.6.0) - VirtualBufferedCapture (ver: Plus-2.6.0) - VirtualCapture (ver: Plus-2.6.0) - VirtualDiscCapture (ver: Plus-2.6.0) - VirtualMixer (ver: Plus-2.6.0) - VirtualSwitcher (ver: Plus-2.6.0) - VirtualVolumeReconstructor (ver: Plus-2.6.0) | in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(107)

|INFO|000.210000| Server host name: DESKTOP-57CUE9I| in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(127)

|INFO|000.221000| Server IP addresses:,,,,| in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(147)

|INFO|000.221000| Start remote control server at port: 18904| in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(156)

|INFO|018.768000| Connect using configuration file: C:\Users\petnehazy ors\PlusApp-\config\PlusDeviceSet_Server_3dConnexion.xml| in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(314)

|INFO|018.769000| Server process command line: "C:/Users/petnehazy ors/PlusApp-" --config-file="C:\Users\petnehazy ors\PlusApp-\config\PlusDeviceSet_Server_3dConnexion.xml" --verbose=3| in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(205)

|INFO|018.959000|SERVER> System start timestamp: 1834

|INFO|018.959000|SERVER> Software version: Plus- - Win64

|INFO|018.959000|SERVER> Logging at level 3 (INFO) to file: C:/Users/petnehazy ors/PlusApp-

|INFO|018.959000|SERVER> Server status: Reading configuration.

|INFO|018.959000|SERVER> Server status: Connecting to devices.

|INFO|019.468000| Server process started successfully| in E:\D\PSNP64b\PlusApp\PlusServerLauncher\PlusServerLauncherMainWindow.cxx(213)

|INFO|019.963000|SERVER> Server status: Starting servers.

|INFO|019.979000|SERVER> Server status: Server(s) are running.

|INFO|019.980000|SERVER> Press Ctrl-C to quit.

|INFO|019.983000|SERVER> Plus OpenIGTLink server listening on IPs:,,,, – port 18944

|INFO|109.806000|SERVER> Received new client connection (client 1 at Number of connected clients: 1

|INFO|109.867000|SERVER> OpenIGTLink broadcasting started. No data was available between 0-89.872sec, therefore no data were broadcasted during this time period.

Plus just relays the coordinate transformation. It reads it from the mouse and sends to Slicer, where it is converted to a transform node by the OpenIGTLinkIF module. What you do with the transform is up to you. You may be able to move the 3D view camera or a surface model with the transform, or use it in a custom module to control other things as well.

1 Like