Welcome to Spacenav!

The spacenav project provides a free, compatible alternative to the proprietary 3Dconnexion device driver and SDK, for their 3D input devices (called "space navigator", "space pilot", "space traveller", "space mouse", etc).

For more details about the spacenav project, please consult the FAQ.

If you're having trouble using any part of the spacenav project, feel free to contact us by sending an email to the spacenav-users mailing list. You're also welcome to post bug reports and feature requests there, although there is a dedicated bug/feature tracking system which is more suitable for that sort of thing.

There's also a developers mailing list that you should join if you plan on contributing to the project with code, bug fixes, patches, etc.

If you'd rather talk about the Free Spacenav project in real-time, we now have an IRC channel on the libera.chat servers. Connect to irc.libera.chat with your IRC client, and /join #spacenav.

For more details about 3Dconnexion and their devices: visit their website.

License

All parts of the spacenav project are written and maintained by John Tsiombikas (nuclear@member.fsf.org), and released as free software.

The spacenavd driver is released under the GNU General Public License (GPL) version 3 (or any later version). This means that you can run it without any restrictions, for any purpose, you can modify it, and you can re-distribute it verbatim or with any modifications. However, if you release anything that contains this code or parts of it, you must release it under the terms of the GPL v3 (or at your option, any later version published by the free software foundation). For more details, see the full text of the license.

The libspnav library, is released under the terms of the "modified" (3-clause) BSD license. This means that you can use it without any restrictions, you can modify it, and re-distribute it verbatim or with any modifications, under any license. However, you must retain the copyright notices in any source files containing code from the library, and binary redistributions must include the copyright notice in any documentation or other acompanying materials. For more details, see the full text of the license.

Platforms & Devices

Spacenavd supports all USB 3Dconnexion 6dof devices on GNU/Linux and FreeBSD. Serial spaceballs and spacemice should work on all UNIX systems, but are currently tested on GNU/Linux, FreeBSD, IRIX, and MacOS X.

The plan is to eventually fully support at least all free UNIX systems. For now consult the following feature matrix across all tested systems:

GNU/LinuxFreeBSDIRIXMacOS X
USB devices partial
Serial devices

Download

Official source code releases for all parts of the free spacenav project are available on github:

The same releases are also available through the sourceforge downloads page.

Alternatively you can get the latest source code directly from our git repositories on github. Use the following commands to clone a local copy of our repositories:

Binaries might be available through your GNU/Linux distribution's package management system, so it might be worth a look if you don't feel like compiling from source. But if you intend to submit any bug reports, please make sure to first check if the bug also exists in the latest revision from git.

Libspnav API Documentation

To learn how to write programs which use libspnav to interface with spacenavd and receive 6dof input, see the API documentation which includes a simple "quick start" tutorial.

Also make sure to check out the example programs which come with libspnav:

simple example cube example fly example
simplecubefly

The libspnav examples are also an excellent sanity check to make sure your spacenavd setup works correctly with your device, if you're having trouble with getting other applications to use 6dof input.