NuiLib - Kinect SDK Supported Library for NUI Development


Ask any developer, having a utility library available when building applications can save a you a lot of troubles. As part of a project to create gestural based character movements in second life (Armadillo); John McCaffery has developed NuiLib, a library which works with the Kinect in order to alleviate much of the heavy lifting and provide a means to ease integration of NUI devices into applications.

[NuiLib] provides an abstraction layer which hides the device being input from and provides easy support for common operations. Applications built using NUI lib benefit from the ability to make the logic of how the device is used clear and easy to understand. They also gain the ability to switch to different driver sets or even different devices with no code changes.

NuiLib caters to 3 groups of users:

  1. developers creating / modifying applications to provide NUI support
  2. developers interested in optimising NUI device use
  3. developers experimenting with new algorithms for processing NUI data

Each group can work on or with the library in different ways and their innovations automatically feed back in to the other groups. Any optimisations done on the core library will speed up any application or algorithm based around the library. Any new algorithm developed through the library becomes another tool in the application developer’s arsenal. Lastly any feedback given by application developers can focus the efforts of the other two groups.

Ease of use is also paramount to NuiLib's inception and design. Take for example the following code. It demonstrates initialising the device, gaining access to the location information for two skeleton joints and then computing the vector between the two joints. Last it outputs this vector whenever the value changes.

using namespace NuiLib;
Vector arm = joint(HAND_RIGHT) - joint(SHOULDER_RIGHT);
arm.AddListener([&arm](IObservable *s) {
cout });

Excited yet? If so, be sure to check out the rest of the story at You can also download NuiLib from github. The developer encourages everyone to check it out and mess around with the code. Enjoy!

Groups audience: