Kinect Studio 101

Description

I've seen a couple questions about how to use the Kinect Studio, so when I saw MSDN Magazine article by Leland Holmquest, I knew it was a must share...

Working with Kinect Studio

...

If you just started developing with Kinect, I bet I can predict how you initially added a new feature or experimented with another visual: You eagerly hit F5, jumped out of your seat, moved in front of your Kinect, motioned and gyrated to express what you wanted in your application, ran into a bug or observed something that wasn’t quite what you expected or wanted, sat back down, stopped the application and went back to coding. Sound familiar? If you’re like me, this process was perfectly OK with you the first dozen or so times you went through it, excitement providing the force to overcome the object at rest (thank you, Sir Isaac Newton). But eventually you started to feel tired or lazy, not wanting to expend so much effort just to change a simple value in your code or add an element to the WPF that would result in about 30 seconds of down time between builds.

What’s a developer to do? The only way to test a Kinect-enabled application is to stand in front of the Kinect, right? It’s not like I can build a coded UI test to simulate the Kinect’s data feed—or can I? In this article I’ll show you how you can save time and energy when testing your Kinect-enabled applications by using Kinect Studio.

Introducing Kinect Studio

Kinect for Windows SDK 1.5 includes Kinect Studio, which is a very cool tool. I have the latest Developer Toolkit for Kinect for Windows (v1.5.1) installed on my development machine. To access Kinect Studio, I just go to All Programs/Kinect for Windows SDK v1.5 and select Kinect Studio v1.5.1. This tool can record all the data coming into an application from a Kinect unit. You can then view, review and store the data. Kinect Studio lets you inject the captured data streams back into a Kinect-enabled application, allowing you to test your code without getting out of your chair (although it might be healthier to make developers get up and move). If you’re working on a project in a distributed team, you can easily share data files with team members, enabling consistent testing across the team. Let’s look at a simple scenario that demonstrates how to use this tool.

I’m going to use the code I generated for the Kinect application in Figure 5 of my June 2012 article. Although simple, this code provides enough functionality to demonstrate how Kinect Studio works. To begin, open the solution for the Kinect application and start it in debug.

...

Conclusion

Creating Kinect-enabled applications is a rewarding experience and also a lot of fun. Enabling applications that allow users to interact naturally and humanly rather than requiring artificial interaction mechanisms such as a mouse and keyboard can lead to amazing capabilities. Using Kinect Studio, developers can capture data feeds, save them as .xed files and reuse them to test the application. Testing with Kinect Studio by replaying .xed files is less tedious and more efficient than having to stand in front of the Kinect and act out scenarios every time the application is executed. In addition, Kinect Studio gives you another way to examine and explore the Kinect data. In short, if you’re developing Kinect-enabled applications, you definitely want to have Kinect Studio in your toolbox.