SpaceMouse support seems broken for Joystick CHOP

I want to use my 3DConnexion SpaceMouse Compact as data source with the Joystick CHOP. According to posts in this forum this was working at some point. The 3D camera navigation in TD is working but the operator displays only a generic warning “Joystick error” as you can see on the screenshot. You can also see that the device is being detected.

I’m on MacOS 15.7.1 with the latest stable TD build 2023.12480 for Apple Silicon. I also tried the latest experimental build without success.

The SpaceMouse installation is brand new, the driver says

I figured out that the official driver must be installed but not be running in order to make the CHOP work. So the 3DconnexionHelper process must be manually killed. But make sure that the driver is installed, otherwise the device acts as a joystick and mouse at the same time which makes it barely usable.

1 Like

Unfortunately, I can’t fully reproduce my solution above anymore. After killing the helper process, the mouse control is enabled again which makes the whole thing not really usable.

I don’t know exactly what’s going on, I suppose the device was in some special mode which deactivated the mouse behaviour.

What I figured out is that if I consume the HID data with a custom client (I tried https://github.com/JakubAndrysek/PySpaceMouse), the mouse functionality stopped but TD also can’t access the joystick data anymore. I guess the official driver does the same which would explain the initial problem. I suppose that TD is consuming some non-blocking API by the OS.

Generally it would be nice to make the joystick data available to all applications which support that. But it looks like I have to reverse engineer the USB communication to figure out how to turn off the mouse functionality.

In case of TD, a custom (python/c++) OP could be a workaround. However, since TD seems to support the official driver integration in 3D OPs, it would be very useful if this API could be leveraged in the joystick CHOP as well.

Sorry you’re still having problems with this. As you’ve noticed, the 3d viewers in TouchDesigner do use the SpaceMouse driver directly, but the Joystick CHOP relies on the generic MacOS input system which is why they are operating differently.

I’m guessing that something has changed in either the driver or MacOS since we first implemented the Joystick CHOP that is causing it to no longer work. I don’t have access to a Mac machine at the moment to test on, but I’ll try to take a look this week and see if I can find anything.

Ideally we could implement native SpaceMouse support in the Joystick CHOP, but it’s not currently in our development plan.