Configuring a space mouse was way harder than it should have been. Here is the way to reproduce a "working" version.
Ignore the proprietary driver at 3dconnexion and the open source ones from spacenav. They are useful for custom programs, but useless for paraview which currently uses VRPN to lower their maintenance.
Warning: VRPN does not work if you have one of the drivers running at the same time.
Install and configure VRPN
- Download a version. I just built the head of the git repository.
- Configure the build with
-DVRPN_USE_HID=True, build and install. - Copy the
vrpn_minimal.cfgto/usr/local/etc/vrpn.cfg. The one that comes with the source code has lots more options to enable/disable, but one line is sufficient. sudo /usr/local/bin/vrpn_server -f /usr/local/etc/vrpn.cfg
Profit!
- Download and build ParaView. This time the extra flags are
-DPARAVIEW_BUILD_PLUGIN_VRPlugin=Trueand-DPARAVIEW_USE_VRPN=True. Adding-DPARAVIEW_AUTOLOAD_PLUGIN_VRPlugin=Trueis probably a good idea too. - Startup paraview and follow these instructions. There is tiny bit of information missing:
- When you create the
VR Connectionyou need to specifyid=0andname=channels - When you add and
Interactionthe order of the drop-downs isRenderView1,OrientationAxesInteractivity, andSpace Navigator Grab. A configured version of the state for paraview v5.0 isspacenave_vr_state.pvvr. - Don't forget to press the
Startbutton. Also, paraview doesn't like to shutdown unless you pressStop.
There is also an abstraction called VRUI that ParaView can interact with. I have not tried that.
What 3DConnexion device did you use? I can't get a connection from vrpn_server to my SpaceMouse Pro Wireless (wired or wireless) or my SpaceMouse Compact
On Windows (3DX drivers deactivated, no reaction to SpaceMouse):
vrpn_HidInterface::reconnect(): Device not foundOn macOS (no drivers, SpaceMouse moves mouse pointer and zooms):
no message in vrpn_server, vrpn_print_devices says something like
VRPN endpoint bad listen socket(have to look up the exact message)Do you have any idea how I could get this working?