The Kinect® software development kit (SDK) is a set of official tools and resources that can be used to create programs capable of interfacing with Kinect® motion sensing devices. When the Kinect® was first released, only Xbox 360™ developers had access to the type of proprietary information that is typically contained in an SDK. Unofficial sources released a driver that allowed personal computers (PCs) to interface with Kinect® sensors, but everything had to be created from the ground up. An official Kinect® SDK was released later to allow various enthusiast and academic communities greater access to the motion sensing and depth mapping capabilities of these devices.
Software development kits are designed to allow programmers to create applications for various hardware platforms, devices and software frameworks. An SDK can include many different items, though they typically contain the tools necessary to work with the specific framework or platform involved. The Kinect® SDK specifically comes with an application programming interface (API) that programmers can implement so their software can communicate with a Kinect®. It is also compatible with a number of different programming languages, such as C++ and C#.
The Kinect® SDK provides access to all of the different data streams that these sensors create. That includes raw data from the color camera, infrared (IR) depth sensor and the microphone array. In addition to this raw data, the SDK can also provide access to more advanced features such as skeletal tracking. This feature, which is facilitated by the ability of a Kinect® to project many different best-fit skeletons onto a person's depth map, is also included. Programmers can use this data to create gesture-based software using the Kinect® sensor.
Each Kinect® also comes equipped with an array of four microphones, and the ability to perform noise cancellation and source location. The SDK provides access to these features, so different types of software will be able to determine the location of a sound source. It is also possible to integrate the the Kinect® microphone array with certain voice recognition APIs to further extend this functionality.
Most software development kits have some type of license attached, which can affect the development or distribution of certain kinds of software. Since the Kinect® SDK is intended primarily for hobbyist and academic use, it has a non-commercial license. This means that any software developed using the Kinect® SDK cannot be sold unless some other type of license is obtained first.