Notice: MediaWiki has been updated. Report any rough edges to marcan@marcan.st

History

From OpenKinect
Jump to: navigation, search

"The Secret"

I actually have a secret to share on this topic. Back in the late Summer of 2010, trying to argue for the most basic level of PC support for Kinect from within Microsoft, to my immense disappointment, turned out to be really grinding against the corporate grain at the time (for many reasons I won't enumerate here). When my frustration peaked, I decided to approach AdaFruit to put on the Open Kinect contest... - Johnny Chung Lee's Blog February 21, 2011

How it all started

Codeswarm representation of early development efforts

These renders illustrate the early development efforts in terms of source code language, developer interactions etc and are built using the project git logs.

As explained in the original thread describing this, one second of real time video in those 2 sequences is equivalent to either 6 or 12 hours of project time:

http://vimeo.com/17218868 - November 10th to 24th 2010

http://vimeo.com/17796061 - November 24th to December 12 2010

Sequence of events

2010

November

  • 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...

December

  • Integration updates: Dec 27, Dec 17 Win32, Dec 4
  • 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.

2011

January

  • Integration updates: Jan 24 Win32, Jan 23, 31, Jan 6
  • After working for a month on the unstable branch of the project, the master and unstable branch were synced on January 6, as explained here.

February

  • Integration updates: Feb 17, Feb 15, Feb 14, Feb 11
  • On February the 11th, support for multiple languages(translations) was added to the OpenKinect wiki as explained here.
  • On February the 15th, support for multiple resolutions was added to the unstable branch and the 1280x1024 RGB and IR mode was enabled as explained here.

March

  • Integration updates: Mar 16 March 25
  • On March 7, a standalone proof-of-concept driver for the Kinect audio core was released. At this stage it is not yet integrated into the project source tree. See this thread and this section of the Protocol Documentation for more information. See also these earlier discussions for some background.