If you have created apps for the Kinect using managed code you will not be aware of how much more complex the C++ native API is. Now Microsoft has created an open source library that makes the Kinect much, much easier to use from C++.
The Kinect Common Bridge (KCB) was demonstrated at the Visual Studio Evolution 2013 event in Dusseldorf with a lot of hype and much confusion.
Released by the Microsoft Open Technologies Hub it is being described as:
..making it simple to integrate Kinect scenarios and experiences in creative development
The Kinect Common Bridge has been designed for and with creative developers, working closely with communities like Cinder and openFrameworks.
This makes it sound as if KCB is something really new and exciting and makes it difficult to fathom what it actually is. It turns out to be just an easier to use C++ library to access the Kinect API. It has to be used with the Kinect SDK and it provides a nice object-oriented packaging, similar to the one that C# programmers are familiar with.
For example, you can make use of the KinectSensor object to access the color stream:
and then you can get the data using:
You can then use the DataStreamColor object to get the data into a byte buffer. This is all very similar to the way the managed part of the API works.
In addition to just providing an easier to use API, the KCB can also form the basis for integrating the Kinect with other 3D packages. So far this has been done for two - openFrameworks and Cinder. Each of these has its own customized KCB, which allows you to work with the 3D components that each provides and to use the Kinect as an input device.
KCB is a great simplification for C++ programmers wanting to use the Kinect. It's a shame that there doesn't seem to be a similar push to make the managed API more powerful by providing a Microsoft- supported, easy-to-use, DirectX library or better more 3D in WPF.
As with much open source code, the documentation is non-existent at the moment, despite what the announcement says. If you want to make use of the code you have to read it. If you go to all the trouble to build an easier way to do something, you really should spend the time to get the documenation ready - otherwise it isn't actually any easier to use.
Still, they had time to create a video showing off its creative use:
As this is open source it is difficult to be critical, but in this case more resources from Microsoft would have made the end result so much better.