Unsupported — We cannot guarantee that this software will work properly on Mac OS 10.8 and above. Please be careful.

Release: SpaceNavigator, v0.4

Release Type: Production
Version: 0.4
Release Notes

SpaceNavitagor Patch

This is the first public release of our "SpaceNavigator" patch, allowing input from the 3Dconnexion SpaceNavigator.

Note: This patch is deprecated. Use the built-in "HID Input" patch instead.

[ More info on this patch ]

smokris's picture
Demo Composition

SpaceNavigatorDemo.qtz25.12 KB
SpaceNavigatorDemo.png48.09 KB

psonice's picture
looks fun

that looks like fun. Good video too.. Now do something super cool with it :D

smokris's picture
Demo Video

toneburst's picture

Excellent!! Can't wait for mine to arrive now!

Cheers smokris, excellent work!!


Quartz Composer Blog: http://machinesdontcare.wordpress.com

Music Site: http://www.toneburst.net

toneburst's picture
Just got mine!

Looking forward to trying it in QC now.



Quartz Composer Blog: http://machinesdontcare.wordpress.com

Music Site: http://www.toneburst.net

franz's picture

i luv this fisheye style great video

yanomano's picture
Well done !

Very good demo :) This patch is a killer one also !

amsonx's picture
great job Steve:) i'll go

great job Steve:) i'll go for one of this nice controller

iboy's picture
Strange Behaviour...

Hi, nice work. My space navigator arrived the weekend. Took a look at the SDK - thought that could be turned into a QC plugin. And bam. There is was! Already up.

I had some luck using the HID object in QC.

However, can I report an issue with SpaceNavigator Patch, v0.4?

When installed and run once - it seems to take over any other applications right to use the USB device.

e.g. After running the kineme qtz demo, my QC patch using the HID wont poll any values. Even after QC restarts and removing the kineme patch. Second Life seems not to recognise the device any more. Google Earth seems to continue to work - but the device sends data to QC (the kineme patch demo) while it is in the background.

I notice the QC HID has an option to exclusively use the device. Any problems else where?

I expect Second LIfe to recognise the device after a system restart. I'll report again should the restart not work.

Kind regards, Ian

smokris's picture

Sorry to hear about the trouble, Ian.

Hmm. Yes, when this patch is instantiated it requests exclusive access to the SpaceNavigator (it was intended to be more resilient than the HID Input patch).

The SpaceNavigator drivers should return things to normal once QC quits.. However I just tested it on another machine and verified that 1. this patch does prevent HID from working after it is used and that 2. rebooting solves the problem.

I'll investigate further.

kubat's picture
VS. HID input patch?


This looks cool. Question: what are the advantages over using the built in "HID Input" patch?


smokris's picture
3Dconnexion drivers/SDK vs. HID Manager

This patch uses the 3Dconnexion drivers/SDK to interface with the SpaceNavigator, instead of OS X's HID Manager.

Practically, it breaks down like this:

HID Input PatchKineme SpaceNavigator Patch
DataNormalized FloatRaw 10bit Integer
Data Range0 <= x <= 1-512 < x <= 512
SpecificityOnly recognizes the specific SpaceNavigator serial number with which the patch was instantiated --- switching it to use a different SpaceNavigator breaks cables and requires some re-patching. (see discussion below)Works with any SpaceNavitagor --- compositions are portable.

(..and also my SpaceNavigator just didn't work with the HID Input patch on my laptop (the first machine on which I tried it).. but I just tried it on another machine and it works fine there.. strange.)

cwright's picture

Have you actually tested it with different SpaceNavigators? I think your last point ("Specificity") could be exaggerated -- I did some tests about a month ago with several mice, and mice of the same manufacturer and model all worked interchangeably. Mice of different manufacturers did not work though (which is expected).

Make a composition that uses HID, send it to another owner of the controller, and have them tell us if it works. If it does, it may mean this is superfluous (esp if we can't work around the weird HID-blocking bugs et. al.)

smokris's picture
Bogus test.

No, I haven't tested it with two SpaceNavigators.

I did a test with two identical Apple USB keyboards and found that a HID Input patch instantiated with one keyboard wouldn't work with the other keyboard, and extrapolated that since the keyboards were identical it must be selecting the device based on some other factor such as serial number... But upon closer inspection it turns out that the two keyboards have different USB Product IDs (which surprises me, but I really should have checked that first). Mea culpa. Sorry about the bogus test.

I've attached a minimal composition that uses HID Input and works with my SpaceNavigator on my Mac Mini (but doesn't work with the same SpaceNavigator on my MacBook Pro). Could someone who has a SpaceNavigator give this a try?

hid2.qtz3.55 KB

toneburst's picture

I've also found that using the Kineme plugin tends to stop it working with the HID input patch. Oddly, attempting to use the HID input patch with it after using the Kineme patch seems to screw things up even after a restart. Recalibrating the SN from the 3DConnexion system prefs pane seemed to fix it though.

MacBook Pro Core Duo (1st-gen) MacOS 10.5.2


Quartz Composer Blog: http://machinesdontcare.wordpress.com

Music Site: http://www.toneburst.net

cwright's picture

alx, thanks for your tests. Can you please give the HID qtz above (posted by smokris) a spin, and confirm whether or not the built-in HID patch properly recognizes the device (different physical device)?

toneburst's picture

Yes, it works. Only after a restart though (I'd been using the Kineme plugin previously).

Hope this helps,


Quartz Composer Blog: http://machinesdontcare.wordpress.com

Music Site: http://www.toneburst.net

smokris's picture

Thanks, alx. I think, then, the solution is to not use this Kineme patch and to simply use the built-in HID Input patch. I've marked this patch as deprecated and removed the downloads.

toneburst's picture
Seems a shame



Quartz Composer Blog: http://machinesdontcare.wordpress.com

Music Site: http://www.toneburst.net

schizdazzle's picture
HID Input

Why does the initial default position when using the HID Input is 0.5 i.e. x = 0.5, y = 0.5 and so forth?

I am struggling with using this... does anyone have a simple example that shows movement like the one using the spacenavigator patch?

smokris's picture
Re: HID Input

The HID Input patch wants to return values ranging from 0.0 to 1.0. The 'at rest' position of the SpaceNavigator is in the center: 0.5.

I've attached two files:

  • SpaceNavigator.qtz is a simple wrapper for the HID Input patch, which provides all of the relevant outputs with useful names.
  • SpaceNavigator Transform.qtz makes use of the above, scaling and integrating the outputs. You can then connect this to a 3D Transformation patch.

Drop both of these compositions into ~/Library/Graphics/Quartz Composer Patches/, and they'll be available in the Patch Creator after you restart QC.

SpaceNavigator.qtz2.25 KB
SpaceNavigator Transform.qtz4.97 KB

Installation Instructions

Place the plugin file in
/Users/[you]/Library/Graphics/Quartz Composer Patches/
(Create the folder if it doesn't already exist.)