Skip to content
This repository

Drivers and libraries for the Xbox Kinect device on WIndows, Linux, and OS X

branch: master

Install libraries to lib and let platform symlinks determine actual l…

…ocation - fixes #382

Signed-off-by: Benn Snyder <>
latest commit 935a998f13
Benn Snyder piedar authored
Octocat-spinner-32 OpenNI2-FreenectDriver Add default CMAKE_CXX_FLAGS March 23, 2014
Octocat-spinner-32 cmake_modules Install libraries to lib and let platform symlinks determine actual l… April 14, 2014
Octocat-spinner-32 doc Removed old, unused kinect protocol documentation, as all info now ex… February 15, 2011
Octocat-spinner-32 examples examples: Add build dependencies - fixes #237 March 22, 2014
Octocat-spinner-32 fakenect Merge branch 'unstable' of git:// February 14, 2014
Octocat-spinner-32 include All headers (including libfreenect.hpp) are installed to `$PREFIX/inc… February 14, 2014
Octocat-spinner-32 platform ebuild: Print warning when bindist USE flag disabled. February 25, 2014
Octocat-spinner-32 src Remove directory prefix from #include <libusb.h> - fixes #379 March 23, 2014
Octocat-spinner-32 wrappers wrappers/cpp: Do not start stopped streams when setting formats March 22, 2014
Octocat-spinner-32 .gitignore Fix the java wrapper November 14, 2011
Octocat-spinner-32 APACHE20 Moved concise apache 2 license to more descriptive filename November 22, 2010
Octocat-spinner-32 CMakeLists.txt Add default CMAKE_CXX_FLAGS March 23, 2014
Octocat-spinner-32 CONTRIB Add CONTRIB file and December 12, 2010
Octocat-spinner-32 GPL2 Add new license headers and files November 15, 2010
Octocat-spinner-32 HACKING HACKING: document how to make debug builds October 15, 2011
Octocat-spinner-32 Return UINT16_MAX on error from read_register() and read_cmos_registe… February 16, 2014
Octocat-spinner-32 Add CONTRIB file and December 12, 2010


libfreenect is a userspace driver for the Microsoft Kinect. It runs on Linux, OSX, and Windows and supports

  • RGB and Depth Images
  • Motors
  • Accelerometer
  • LED

Audio is a work in progress.

Build Instructions

To build libfreenect, you'll need

For the examples, you'll need

  • OpenGL (included with OSX)
  • glut (included with OSX)
  • pthreads-win32 (Windows)

Fetch & Build

git clone
cd libfreenect
mkdir build
cd build
cmake -L ..

# if you don't have `make` or don't want color output
# cmake --build .


If you don't have a package manager, install Homebrew. For a manual build, see the wiki.


brew install libfreenect
# or get the very latest:
# brew install --HEAD libfreenect


sudo port install git-core cmake libusb libtool

Continue with Fetch & Build.


For a manual build, see the wiki.


The version packaged in Ubuntu may be very old. To install newer packaged builds, see the wiki. Continue with this section for a manual build.

sudo apt-get install git-core cmake pkg-config build-essential libusb-1.0-0-dev
sudo adduser $USER video
sudo adduser $USER plugdev # necessary?

# only if you are building the examples:
sudo apt-get install libglut3-dev libxmu-dev libxi-dev

Continue with Fetch & Build.

There is also a debian branch for packaging purposes.

Gentoo Linux

There is a live ebuild for your convenience in platform/linux/portage/dev-libs/libfreenect/.

Arch Linux

There is a libfreenect PKGBUILD in the AUR. Alternately, the libfreenect-git PKGBUILD builds the very latest.


The inf files in platform/windows/ may be used for installing the device. Follow Fetch & Build or use Github and CMake GUI tools. You may need to supply paths to CMake so it can find dependencies. For example:

cmake .. -DLIBUSB_1_INCLUDE_DIR="C:\path\to\libusb\include" -DLIBUSB_1_LIBRARY="C:\path\to\libusb\libusb.lib"


Interfaces to various languages are provided in wrappers/. Wrappers are not guaranteed to be API stable or up to date.

  • C (using a synchronous API)
  • C++
  • C#
  • python
  • ruby
  • actionscript
  • Java (JNA)


Ongoing Development and Maintenance by the OpenKinect Community

  • Original Code and Engineering: Hector Martin (marcan)
  • Community Lead: Josh Blake (JoshB)
  • Integration: Kyle Machulis (qDot)


The libfreenect project is covered under a dual Apache v2/GPL v2 license. The licensing criteria are listed below, as well as at the top of each source file in the repo.

This file is part of the OpenKinect Project.

Copyright (c) 2010 individual OpenKinect contributors. See the CONTRIB
file for details.

This code is licensed to you under the terms of the Apache License,
version 2.0, or, at your option, the terms of the GNU General Public
License, version 2.0. See the APACHE20 and GPL2 files for the text of
the licenses, or the following URLs:

If you redistribute this file in source form, modified or unmodified,
you may: 

- Leave this header intact and distribute it under the same terms,
  accompanying it with the APACHE20 and GPL2 files, or
- Delete the Apache 2.0 clause and accompany it with the GPL2 file, or
- Delete the GPL v2 clause and accompany it with the APACHE20 file 

In all cases you must keep the copyright notice intact and include a
copy of the CONTRIB file.

Binary distributions must follow the binary distribution requirements
of either License.

More Information

Information about the OpenKinect project can be found at

For questions, support, and discussion, check out the google groups mailing list at

Or the IRC channel at #openkinect on Freenode

We are also on twitter at

Something went wrong with that request. Please try again.