Hot takes and help request

Post questions, comments and feedback to our 3Dconnexion Windows Development Team.

Moderator: Moderators

Post Reply
Posts: 1
Joined: Thu Sep 15, 2022 11:40 am

Hot takes and help request

Post by ke009501 » Thu Sep 15, 2022 12:17 pm

Back story: a friend desires to use a spacemouse-enabled application in a remote desktop setting. For whatever reason, they are resistant to using the keyboard and mouse interfaces provided by the software and only want to use the spacemouse. I don't need to be told that won't work or why... I get it.

As a workaround, I thought I could write an application that would sit in the windows tray, poll the device, and synthesize pulse modulated keyboard and mouse commands that would go through the network connection automatically in response to spacemouse state. Push left half-way and an 'a' keypress is synthesized every other poll interval... push all the way and it would be on every one... only a little and it would be less frequent. Rotate forward and the program fakes an up arrow. Hopefully my goal is clear.

After downloading the SDK, it seems like the model that is forced on you is a little more involved and domain-specific -- hence the post... if I'm wrong, please correct me. Given the API, it seems like I could extrapolate "raw" motion from pivot offsets (puck pushes) and maybe use the selection affine transformation, transforming a facing vector and computing dot products with arbitrary axes (puck pivots).

What I'd really like is just a [-1..1] status for the 6 degrees of freedom. Is that easily possible? Is my assessment correct? I'm prepared to go there, but if there's a direct way, I would prefer it.

Thanks for the assistance!

Posts: 3123
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA

Re: Hot takes and help request

Post by jwick » Thu Sep 15, 2022 11:12 pm

JMO, it is doubtful it will ever be usable. At the very least, you will need to do a lot of filtering.

I wouldn't try to use the current SDK for this. You'd have to fight to undo everything it is trying to do with 3D transforms.

You can tell the driver to do a lot of this by telling it to generate keystrokes on axes via an XML file.
You can also send an email request for an older SDK that delivers more or less raw data.
There are Microsoft APIs that do the same (will be device-specific).

If none of those are sufficient, you can use the driver's extension mechanism to have it call a DLL of your own creation to do all the fine control. In that DLL you can do whatever you want. That would actually be my first choice because you have a clear place to experiment with all the filtering you will need to do. Send an email to sdk support to get some samples.

Post Reply