Add support for SpaceNavigator

.

This is covered by
https://community.vuo.org/t/-/4725
At least for the current USB version … not much point supporting the (really old) serial interface version, discontinued line.

I envision this feature request as being a thin wrapper around USB HID, making the USB SpaceNavigators easier to work with — similar to how the BCF2000 nodes make that specific MIDI device easier to work with.

Also, a camera node similar to Make Draggable Camera.

A few comments on this

  1. Contrary to earlier comments on this (by myself and others), the Space Navigator and the Space Mouse both work as a HID device, just don’t try to install their drivers on current versions of MacOS.

  2. I’ve found the best node by far is the Filter and Scale HID node.

  3. The biggest problem with the device is if you try to handle all degrees of freedom. This is because the composition can easily get swamped with events. For example if one pushes the puck forward one does not just get the corresponding translation messages, but also some rotation, probably some height changes, possibly some left and right rotation and translation messages. So I’ve found that trying to deal with all those simultaneously can give non-smooth operation as messages get queued up, the composition is swamped trying to deal with them within one refresh.
    So, yes, perhaps a higher level controller might assist with this?

1 Like

@pbourke, does a hold node between the “Receive HID controls” and the logic after, triggered from a “Fire on Display Refresh” help with problem 3?

1 Like

I’d have to try again, from memory I ended up getting the dominant axis events irregularly, so panning in particular wasn’t smooth. But perhaps I didn’t have the right time constant for momentum.

For the particular application I ended up just filtering events unless the control value was above some threshold. It worked fine for what I needed and people seems to find the SpaceMouse easier to use since they were adjusting one movement at a time. But a consequence was that one lost the ability to do create really fine movements by delicately touching the SpaceMouse.

Aha! I was just thinking about if the input from it got flooded that you could limit it somehow. It just struck me now that the “Receive HID Controls” also has options for event throttling on its output. Checking it, this is set to enqueue by default that could cause issues like the ones you describe. Then it also might work to change it to drop events.

1 Like