Skip to content
Drivers and libraries for the Xbox Kinect device on WIndows, Linux, and OS X
C C++ C# ActionScript Python Java Other
Branch: master
Clone or download
Pull request Compare This branch is 105 commits behind OpenKinect:master.
piedar Fix CPack libusb dependency - fixes OpenKinect#420
Signed-off-by: Benn Snyder <>
Latest commit 846b6bf Oct 28, 2014
Type Name Latest commit message Commit time
Failed to load latest commit information.
OpenNI2-FreenectDriver Fix a crash-on-exit in the OpenNI2 driver caused by using a deleted i… Jul 3, 2014
cmake_modules Install libraries to lib and let platform symlinks determine actual l… Apr 15, 2014
doc Removed old, unused kinect protocol documentation, as all info now ex… Feb 15, 2011
examples Configure audio support at runtime - fixes OpenKinect#372 Jul 19, 2014
fakenect Implement all FREENECTAPI functions in fakenect to avoid issues with … Jul 3, 2014
include Use audio serial as a fallback for K4W and 1473 models that do not pr… Jul 19, 2014
platform Update CMakeList.txt and ebuild for v0.5.0 Jul 20, 2014
src win32: Fix scattered sources causing link errors Sep 9, 2014
wrappers OSX: Link freenect-cpp_pcview to libfreenect Sep 9, 2014
.gitattributes python: Add .gitattributes which treats the Python freenect.c as binary Jul 3, 2014
.gitignore Fix the java wrapper Nov 14, 2011
APACHE20 Moved concise apache 2 license to more descriptive filename Nov 23, 2010
CMakeLists.txt Fix CPack libusb dependency - fixes OpenKinect#420 Oct 28, 2014
CONTRIB Add CONTRIB file and Dec 12, 2010
GPL2 Add new license headers and files Nov 15, 2010 Fix cmake module include order May 2, 2014 Add CONTRIB file and Dec 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

Build Instructions

To build libfreenect, you'll need

  • libusb >= 1.0.18
  • CMake >= 2.6
  • python == 2.* (only if BUILD_PYTHON=ON or BUILD_REDIST_PACKAGE=OFF)

For the examples, you'll need

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

For audio support, you must have firmware to upload to the Kinect. If you specify a non-redistributable package, firmware will be downloaded automatically:


Note that the downloaded firmware may not be legal to redistribute!

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 .

You can specify a build with debug symbols:

cmake -L .. -DCMAKE_BUILD_TYPE=debug
# or with optimizations
# cmake -L .. -DCMAKE_BUILD_TYPE=RelWithDebInfo

You can build .deb, .rpm, and/or .tgz packages with cpack:



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)


cd wrappers/python
# if you have cython and want to rebuild the binding
# cython freenect.pyx
python2 build_ext --inplace

For example, start with

Code Contributions

In order of importance:

  • Make sure to sign commits: git commit -s
  • Use a feature branch in your own fork and target master with pull requests
  • Tab indentation, no trailing whitespace


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

You can’t perform that action at this time.