What are the pros and cons of each? Which is better maintained? Which allows for more functionality? Which utilizes the hardware more efficiently? Etc.

  • 1
    $\begingroup$ golmschenk, Thanks for the question. This would likely be a long, interesting discussion, but these types of open discussion questions are not a great fit for this site. It's better to ask very specific questions about problems you encounter in your day-to-day work, otherwise folks are only left guessing how they can help you specifically. These types of questions tend to solicit debate, arguments, polling, or extended discussion which is not generally considered a good fit for this type of Q&A. Good luck with your learning and I hope you'll try again. $\endgroup$ Commented Nov 28, 2012 at 18:26
  • $\begingroup$ @RobertCartaino, Perhaps, but at the same time nearly identical questions (stackoverflow.com/q/7706448/1191087) asked of a different StackExchange community have been very well received. $\endgroup$
    – golmschenk
    Commented Nov 28, 2012 at 18:46
  • $\begingroup$ Oh, okay. I'll let the answer and the community dictate whether these "compare and contrast" discussions are constructive. $\endgroup$ Commented Nov 28, 2012 at 18:50
  • $\begingroup$ I do fully agree that the open-ended discussions are problematic and this is probably on the boarder of such a question. But at the same time, I think this question will result in primarily universal agreements on the what the advantages and disadvantages of each are, rather than a debate on which is better. $\endgroup$
    – golmschenk
    Commented Nov 28, 2012 at 18:54
  • 1
    $\begingroup$ I think this question is a benefit to the site. If I'm reading it correctly, the point here is not to discuss which of these software packages is "better"/"best", but rather to list the ways in which they are different. $\endgroup$
    – Ian
    Commented Dec 2, 2012 at 14:01

1 Answer 1


OpenKinect is a community of people, not a library. The OpenKinect community releases the libfreenect Kinect driver. libfreenect and OpenNI+SensorKinect are two competing, opensource libraries/drivers. libfreenect (Apache 2.0 or GPLv2) derives from the initial, reverse-engineered/hacked Kinect driver whereas OpenNI+SensorKinect is derived from open sourced (LGPL) PrimeSense code.

Both projects work on Windows, Linux (Ubuntu), and Mac OS X. Both projects allow you to access color and depth images from the camera. The projects are not compatible and they can not be used simultaneously.

Differences between the libraries are motor control (libfreenect has it, OpenNI+SensorKinect doesn't), and integration with the NITE middleware for higher-level NUI support (OpenNI+SensorKinect only). These differences tend to drive projects towards one of the libraries.

See also:

  • $\begingroup$ Good point on the difference between OpenKinect and libfreenect. The things I really wanted discussed is the software/drivers. I'll update the question accordingly. $\endgroup$
    – golmschenk
    Commented Dec 5, 2012 at 16:50
  • $\begingroup$ What is done by OpenNI and SensorKinect individually? Why do we have two separate components? $\endgroup$
    – Shashwat
    Commented Oct 8, 2014 at 15:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.