Revision as of 07:06, 19 December 2010 by BankP (Formatting, added bit about libusbemu since it seems an important design decision... the goal of this page is to provide background and some sequence of important events/decisions.)
- Following the race to gain access to the Microsoft Kinect on a PC in early November 2010, Héctor Martin open sourced his libfreenect code and made it available on Github - the initial commit to OpenKinect/libfreenect was made on November 10th 2010. This was a milestone which allowed for many ongoing development efforts and other contributions to take shape and for the open source community to lead the way...
- About a month later, on December 9th, PrimeSense, the manufacturer of the PrimeSensor camera reference design used by Microsoft to create the Kinect (the Kinect also has LED and motor control), acknowledging the interest and achievements of the open source community, decided to open source its own driver and framework API, and to release binaries for their NITE skeletal tracking module and other applications. PrimeSense also put forward the OpenNI initiative for a non for profit organization to help foster compatibility and interoperability of future development efforts related to natural interactions devices. Read this interview with PrimeSense co-founder and this thread for related discussions.OpenKinect and OpenNI are distinct projects and may benefit from each other. Libfreenect aims to provide a simple, straightforward C interface to the Kinect, while Sensor is a heavyweight driver attempting to implement all features of the PrimeSense reference design and plug into OpenNI, a complex C++ framework. However, we'll probably see some places where they complement each other. Specifically, libfreenect might end up taking advantage of the Windows kernel driver portion of Sensor, and/or OpenNI might gain a libfreenect backend. There are also differences in the licensing scheme for OpenKinect (Apache2.0/GPL2.0), the OpenNI driver/framework (LGPLv3+) and the NITE solutions for skeletal tracking and other modules (binaries only, no source). See respective licenses and this thread for further information...
- On December the 17th, it was decided to implement libfreenect on the win32 platform through the use of libusbemu, a libusb 1.0 emulator (or wrapper) for libusb-win32. Read more about this here.