Download

The Wii controller tracking package is free software, distributed under the GNU General Public License. The program contains part of my Misc, Threads, Math, and Geometry libraries, requires the pthread and Linux bluetooth (bluez) libraries, and comes with a makefile that should build it under Linux. The README file contains an overview of the package's sources and programs and brief build instructions.

Note: This is experimental code and not necessarily written for clarity. Building the package as-is will create three barely useful test programs, but creating actual applications using the tracking algorithms will require modifying the sources. This requires a working knowledge of C++, and understanding the underlying algorithms requires a solid foundation of 3D geometry and linear algebra. Consider yourselves warned. On the other hand, the package contains (parts of) a powerful library for 3D geometry, and a generic implementation of a Levenberg-Marquardt non-linear optimization algorithm with examples how to create optimizers for many classes of problems.

The tarball available for download below will expand into a WiiControllerTracking directory in the current directory. All downloadable files are tagged with their SHA1 checksums to protect against corruption and tampering.

Note: The tarball was updated on 03/09/2009 to compile again under the most recent versions of g++ (tested up to and including g++ 4.3.2). If your version of g++ is newer than that, your mileage may vary.

Update: On public demand, I have also released the virtual clay modeling software featured in the Wiimote tracking video on youtube. It requires Vrui-1.0 version 055 or higher, and uses Vrui's internal Wiimote device driver to connect to the Wiimote. In other words, it does not require the Wii controller tracking package. Vrui-1.0 is available via the Vrui download page. Detailed instructions on how to configure Vrui to use a Wii controller as a 6-DOF tracking device are on the Vrui configuration page.