This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

Feature

SpaceNavigator: An affordable 3-D controller for Linux

By Nathan Willis on March 28, 2007 (8:00:00 AM)

Share    Print    Comments   

3Dconnexion's SpaceNavigator is a compact, programmable USB input device designed for 3-D applications. It's a six-axis controller that senses tilt and rotation as well as x, y, and z linear motion. The product was released in November, and this month 3Dconnexion (a subsidiary of peripheral specialist Logitech) announced initial Linux support, including preliminary application functionality and a software development kit.
SpaceNavigator
The third dimension in all its glowing blue glory. Click to enlarge.

The SpaceNavigator comes in two editions: a personal edition priced at $60, and the standard edition priced at $100. The personal edition is supposed to be used for non-commercial purposes only, although the application support appears to be identical. But the standard edition does come with one concrete advantage: two years of free telephone support.

Thanks to no-cost apps like Google Earth, Google SketchUp, and Second Life, consumers are regularly exploring three-space these days. The SpaceNavigator is a good fit for them, since its price point is less than half that of 3Dconnexion's next cheapest 3-D controller, the similarly equipped SpaceTraveler. More expensive offerings range well above $300, making them popular with 3-D artists and CAD designers, but outside the reach of home users.

Getting started

To get the SpaceNavigator running in Linux, download the 3DxWare for Linux package from 3Dconnexion's Driver Downloads page. If you use the Maya 3-D editor, you can download configuration plugins for versions 8 and 8.5 from the same page. The 3DxWare package contains an installation script, text instructions, drivers, and two demo programs. During installation, you can choose whether to start the SpaceNavigator driver at boot time or manually start it as needed.

After I ran the installation script and it exited successfully, I found that the driver failed to launch, complaining of the absence of libXm.so.3. It was not listed in any of the instructions or online help, but a little digging taught me that this is a dependency on OpenMotif; to save yourself the trouble make sure that libmotif3 is installed through your distro's package manager. You can then connect the SpaceNavigator and manually start the driver with sudo /etc/3DxWare/daemon/3dxsrv -d usb.

Up pops the beautiful OpenMotif-based configuration dialog box. 3Dconnexion's devices are not configured like typical I/O devices such as keyboards or trackballs; take a moment to read through the configurator's built-in help. The short version is that every application with which you want to use the SpaceNavigator requires a custom plugin -- and currently, the only application with such a plugin is the 3-D modeler Maya.

Demos
SpaceNavigator driver and demo apps. Click to enlarge.

This puts Linux reviewers in a bit of a bind, as there is no demo version of Maya for Linux, and licenses start at $2,000. Under Linux, I was able to test the device only with its two demo apps. One, xvalue, simply reports the motion data read from the device (a handy reference for tweaking the sensitivity settings), and the other, xcube, allows you to manipulate a simple 3-D cube.

I tested the SpaceNavigator on Windows and Mac OS X using SketchUp and Google Earth. For these apps, the SpaceNavigator is both easy and fun to use. I had never found much use for SketchUp before, but the 3-D control makes it simple to use. It only takes a matter of minutes to get accustomed to the controller, and it is infinitely easier to use than a mouse. The only potential source of confusion is the fact that the device is circular, so if it is sitting askew, your hand motions may be off-axis. Subtle ridges placed on the four compass points of the controller are intended to avert such misalignment, but when you are first starting out it requires conscious thought to make sure you point it in the correct direction.

Linux support

With such obvious potential, the hurdle to overcome in the Linux market is proper application support. As it is, adding support for a new app requires directly coding in support for 3Dconnexion's official driver. The company is quick to reply to inquiries on its public support forum, even going so far as to poll readers on which apps they want to see supported. So far it looks like the open source modeler Blender and Google Earth are leading the pack.

For broad adoption, however, a more generic driver solution is required. The device is directly accessible as a generic input device using the USB Human Interface Device (HID) protocol. As was discussed in the forum, the proper solution is to write an XInput driver, thus enabling all interested applications to pick up and use the device via the XInput API. The same technique is already used to handle other non-mouse input devices, such as pressure-sensitive graphics tablets used in painting apps like the GIMP and Krita.

Unfortunately, although the 3Dconnexion software development kit (SDK) includes useful C headers, it is licensed under strict proprietary terms that make it incompatible with GPLed software. A 3Dconnexion spokesperson said the company has no plans to develop a solution for GPL apps. The company is supportive of community-driven efforts to build an XInput driver, encouraging developers to post questions to the forums and promising it will be happy to assist. If you read the Linux support forum, employees are quick to respond to questions, and repeatedly solicit input from users. They can't officially bless the third-party Blender plugin, but they do direct users toward it. Thus it seems unlikely that a community-created XInput driver could make it onto the official driver downloads page, but who knows? Perhaps with a little persuasion, 3Dconnexion would come through with a solution for open source users.

Only in recent years has the category "consumer 3-D application" even existed. Until recently, 3-D controllers were of interest only to engineers and computer animators, and their prices reflected that. But now the list of 3-D programs for the home user is growing: Google Earth, World Wind, SketchUp, Celestia, Stellarium, Hugin, Second Life -- not to mention all the games. 3Dconnexion's SpaceNavigator is an affordable way to harness the flexibility of a 3-D interface. Let's just hope native X11 support happens sooner rather than later.

Share    Print    Comments   

Comments

on SpaceNavigator: An affordable 3-D controller for Linux

Note: Comments are owned by the poster. We are not responsible for their content.

Can we make it useful for FOSS?

Posted by: Anonymous Coward on March 28, 2007 06:09 PM

We don't need a proprietary driver; we need
programming specifications for the device. Then we can write our own.


Getting programming specifications might not involve any difficult reverse-engineering. The company producing this device has almost certainly just packaged some industry-standard inertial sensor with a USB chip and some glue logic. If we can find out which inertial sensor is inside it, output specs of those devices are usually freely available (I've worked with them, though not recently).

#

Re:Can we make it useful for FOSS?

Posted by: Anonymous Coward on March 28, 2007 11:46 PM
You don't even need to do that - it's HID.

It should just take an afternoon or two of hacking to make a nice standardised XInput wrapper.

#

Re:Can we make it useful for FOSS?

Posted by: Anonymous Coward on March 30, 2007 06:00 PM
Been done, in Java at least.
Scan <a href="http://www.mp3car.com/vbulletin/software-software-development/" title="mp3car.com">http://www.mp3car.com/vbulletin/software-software<nobr>-<wbr></nobr> development/</a mp3car.com> for "SpaceNavigator.java" for a Q&D hack. This is on Windows, I think, so the I/O needs changing, but I did a quick hack on a HID joystick (I've ordered a SpaceNavigator but it hasn't arrived yet) reading a stream from the device as a file, and that seems easy.

E.g.:


        try {

            fin = new BufferedReader(new InputStreamReader(new FileInputStream("/dev/input/js0")));

            sysin = System.in;

            System.out.println( "Opened Device file " + flname );

        } catch (IOException ioex) {

            System.out.println( "Unable to open Device file " + flname );

        }

#

Re:Can we make it useful for FOSS?

Posted by: Nathan Willis on March 28, 2007 11:00 PM
I really suggest that you explore the link to the discussion forum that's in the article; the information you need is already available. It's already quite easy to read the data from the device (hence the Blender plugin and the Xorg InputDevice there contained).

Furthermore, the company is very helpful and has answered every question about it posted to the forum (as they have with their other 3-D input devices). What's really lacking is for someone to take those specs, sit down and actually write an XInput driver for it. In other words, 3Dconnexion has already given the community everything that they need, it's just that no one from the community has stepped up.

Nate

#

Re(1):Can we make it useful for FOSS?

Posted by: Anonymous [ip: 65.2.84.25] on September 19, 2007 06:22 AM
Update: http://www.3dconnexion.com/forum/viewtopic.php?t=1103

I think this means foss support has now been added.

#

What do you do with it??

Posted by: Anonymous Coward on March 28, 2007 08:55 PM
Use it as a night light, or put it on top of your police car?

#

Great device

Posted by: Anonymous Coward on March 28, 2007 10:31 PM
Excellent device I needed something like this its great to see companies like this take the time to support Linux, Great device.

#

Ordered mine...

Posted by: Administrator on March 30, 2007 11:13 PM
Thanks for the review. I've ordered a SpaceNavigator to give it a go. I was ready to purchase a bigger device (traveller or pilot), until I saw that the current GoogleEarth under Linux doesn't yet support the 3DxWare inputs<nobr> <wbr></nobr>:-(

#

Re:Video?

Posted by: Anonymous Coward on March 29, 2007 04:09 AM
I also need that video!

#

Re:Video?

Posted by: Nathan Willis on March 29, 2007 08:38 PM
Try visiting the company's Web site; they have videos right there at the top of the product page.

Nate

#

Re:what's old is new again

Posted by: Anonymous Coward on March 29, 2007 04:10 AM
I guess
<a href="http://youtube.com/watch?v=TQGes21MRUE" title="youtube.com">http://youtube.com/watch?v=TQGes21MRUE</a youtube.com>

#

how about Wiimote

Posted by: Anonymous Coward on March 29, 2007 08:28 PM
the Wiimote is only $40 (plus $15 for the cost of USB Bluetooth dongle), but people are working on Open Source driver.

don't know how the accuracy between the two compared to each other, but when I play Wii games, the Wiimote is pretty sensitive.

#

Re:how about Wiimote

Posted by: Nathan Willis on March 29, 2007 08:53 PM
Two possible points to be made about those devices. One, as you alluded to, is that you use the Wiimote to play games -- you have to move it (and your whole arm) physically, over a much bigger range of motion than you would comfortably be doing seated at a desk manipulating the view of a CAD program. Two, you could control your main X pointer with a joystick instead of a mouse, but nobody does that cause it just looks silly. The Wiimote might have the degrees of freedom for use as a 3-D controller, but it's not likely to catch on in popularity for "work" applications.

But that's not to suggest that there's anything wrong with it, or with writing an XInput driver for it. The more XInput, the merrier. That's my motto.

Nate

#

Wow

Posted by: Administrator on March 29, 2007 06:25 AM
I want one of these.

Though while I'm usually not one to complain, little things like this from small companies do frighten me just a little when it's a closed driver because you never know are they always going to have a business case to support Linux? Do they even have one now? Even if it is only $60 for me I wouldn't want to get one only to have the drivers fail a few years down the line because it's not compatible anymore.

Meanwhile, the application support might actually be a huge plus here in open-source land. If they want Blender support, and their customers want Blender support, they can add it and so can we.

Which is pretty cool.

I gotta say, when it comes to hardware support and cool toys, open source can be really practical.

Now if only IRIX was open and it could use USB<nobr> <wbr></nobr>:(

P.S. Motif rocks the cock!

#

what's old is new again

Posted by: Administrator on March 28, 2007 11:43 PM
Anyone else remember Logitech's "hockey puck" game controller? Looked just like this although the design was probably more crude<nobr> <wbr></nobr>:-)

I miss the old SpaceBall/SpaceOrb. Is this more intuitive? It's probably a lot less useful for gaming than the SpaceOrb...

#

Video?

Posted by: Administrator on March 29, 2007 02:57 AM
Is there a video that shows the function of this controller? I can not imagine what to do with it!

#

SpaceNavigator: An affordable 3-D controller for Linux

Posted by: Anonymous [ip: 213.213.43.104] on November 29, 2007 06:53 PM
Has the SpaceNavigator been succesfully tested on Second Life ?

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya