Just jump up and wave your hands! In 2010, the Microsoft Kinect transformed interactive game play into a controller-free experience. To use Kinect, you had to purchase the Kinect device and connect it to a compatible Xbox 360 system. You also had to purchase games designed to work with Kinect.
Hackers were immediately intrigued by the new technology. Almost overnight, they were finding ways to use Kinect controls for more than just a few Xbox games. Third-party device drivers -- software written by non-Micrsoft developers -- for Kinect appeared shortly after its launch. Entire Web sites appeared with hints on finding and using these drivers. One site, Kinect Hacks, showed off hackers' homemade creations, including everything from a 3-D scanner to the JediBot, which uses the Kinect's sensor system to train would-be Jedi in proper lightsaber technique[source: Paoli, Kinect Hacks].
You might think Microsoft would consider this a threat. It probably doesn't surprise you that within hours of the Kinect release, Microsoft stated its commitment to make life hard for the hackers, even threatening legal action [source: Tanz]. But Microsoft's reaction seemed to spur on the hacking community. After three months, Microsoft announced a much different plan: opening the door for hackers and inviting them in.
Microsoft did this by creating the Kinect software development kit (SDK). The company released the SDK beta for non-commercial use in June 2011, followed by a fully supported version 1.0 for commercial and business use in February 2012. The SDK has invited Kinect development from innovative software engineers and entrepreneurs worldwide [source: Schofield].
As we mentioned earlier, the Kinect was originally designed for use with the Xbox 360, and the console software has its own developer kit with rules for interfacing with Kinect [source: Guthrie]. The Microsoft Kinect SDK, though, is designed for Windows applications. By extending a Kinect SDK to Windows, Microsoft has opened Kinect functionality to a much wider variety of uses. This could lead to innovative Kinect-ready software for industries like education, healthcare and transportation.
With the world of Kinect software development open to you, let's take a look at what you need to get started.
Setting Up the Kinect SDK
You'll need a few things before you can use the Kinect SDK. Some of these will require a purchase; others are free or already part of your Windows computer:
- A 32-bit or 64-bit dual-core processor that's 2.66 GHz or faster
- 2 GB of RAM
- A dedicated USB 2.0 bus
- Microsoft Windows 7, Windows Embedded Standard 7 or Windows 8 Developer Preview
- Microsoft Visual Studio 2010 (Express or other versions)
- .NET Framework 4.0
- Microsoft DirectX SDK (June 2010 or later version)
- Runtime for Microsoft DirectX 9
- A Kinect for Windows sensor with special USB data/power cabling
The Kinect for Windows sensor listed above is not the same as the Kinect hardware you'd purchase for an Xbox 360. Kinect for Windows costs $249, which is about $100 more than Kinect for Xbox. DirectX SDK and .NET Framework are available as free downloads, and the Express edition of Visual Studio is also free. We've put the download links for this software at the end of this article [source: Microsoft].
As you may have guessed, you'll also need some computer programming experience before you get started. If you haven't used .NET, you'll need to get a good resource to map what you know about other programming languages to the .NET Framework. Along with .NET, you'll want to familiarize yourself with the DirectX SDK designed to create interactive software using the DirectX multimedia interfaces. Visual Studio operates as an integrated development environment (IDE) where you can program in .NET while integrating the DirectX and Kinect SDKs.
With all these pieces in place, you're ready to download the Kinect SDK and get started. The download is free. Just visit the Kinect for Windows Web site, click "develop," and use the download link from there. As of spring of 2012, the latest download was version 22.214.171.124 at 226.8 MB. When your download's complete, use the instructions from the Kinect for Windows site to install the software, start the Kinect for Windows device, and begin your development experience in Visual Studio.
Don't know where to go from here? Next, let's check out what some other developers have done with the Kinect SDK and discover how to publish your own Kinect applications.
Producing Apps for Kinect
Kinect for Windows SDK has been available since June 2011. However, Microsoft was criticized for opening up development without allowing entrepreneurs to make money off their creations. Then, in October 2011, Microsoft announced its Kinect for Windows commercial license would be available in early 2012 [source: Torrone, Foley].
At announcement time, Microsoft had already received more than 200 applications from companies in 25 industries around the world. These companies had innovative ideas that went well beyond game play. For example, Spanish tech company Tedesys developed TedCas software that puts important data, including patient files and reference material related to procedures, at a surgeon's fingertips during surgery. Without having to stop to retrieve important information about the patient, a surgeon or nurse can gesture to their records interface, review information and return to their procedure seamlessly [sources: Shaw, Tedesys].
Today, Microsoft and other developer sites provide examples of how people have used the Kinect for Windows SDK. By starting with a very basic example, you can derive a structure for your own application. From there, you can reference source code from other apps doing similar things to your own app, or you can branch out into something completely new.
So where can you go with your Kinect for Windows creations? If you're giving it away for free, you can make your software available as a free online download. If you plan to make money, you can distribute it under the terms of the Kinect for Windows SDK commercial license. As of early 2012, the commercial license was available for the United States, Canada, Mexico, Japan, New Zealand, Australia, UK, Ireland, Germany, France, Italy and Spain.
When you release your Kinect application, you'll need to provide users with instructions for installing and interacting with the software. They'll also need to purchase their own Kinect for Windows sensor (hardware) and install the Kinect for Windows runtime (software) for their computers.
This article has introduced you to the Microsoft Kinect SDK, the essential component for developing software for Kinect for Windows. We scratched the surface so you can peer inside. Now, it's up to you to open the kit and get started. Check out the next page for some helpful links and lots more information.
When I got this assignment, I couldn't believe it had been more than a year since I first wrote How Microsoft Kinect Works. As a programmer, it was exciting to look at Kinect from the developer point of view. It was disappointing to me that Microsoft chose to produce two different Kinect devices (one for Xbox, another for PCs) rather than creating an adapter system. I was also disappointed that Microsoft is charging about $100 more for the Kinect for Windows version. I was encouraged, though, that purchasing the sensor would probably be my only major expense if I wanted to start developing my own Kinect applications for Windows. I look forward to seeing more kinetically controlled software thanks to Microsoft's willingness to embrace its eager innovators.
More Great Links
- Foley, Mary Jo. "Commercial version of Kinect for Windows development kit due in early 2012." ZDNet. CBS Interactive. Oct. 31, 2011. (Mar. 20, 2012) http://www.zdnet.com/blog/microsoft/commercial-version-of-kinect-for-windows-development-kit-due-in-early-2012/11107
- Guthrie, Randy. "Xbox Kinect Software Development Kit SDK Beta Released to Public." MSDN. Microsoft Corporation. Jun. 27, 2011. (Mar. 19, 2012) http://blogs.msdn.com/b/mis_laboratory/archive/2011/06/27/xbox-kinect-software-development-kit-sdk-beta-released-to-public.aspx
- Kinect Hacks. "Top 10 Best Kinect Hacks." Sep. 10, 2011. (Mar. 19, 2012) http://www.kinecthacks.com/about/
- Shaw, Frank X. "Feeling the Kinect Effect." Microsoft Corporation. Oct. 31, 2011. (Mar. 20, 2012) http://blogs.technet.com/b/microsoft_blog/archive/2011/10/31/feeling-the-kinect-effect.aspx
- Microsoft Corporation. "Kinect for Windows, Overview." 2012. (Mar. 20, 2012) http://www.microsoft.com/en-us/kinectforwindows/purchase/overview.aspx
- Paoli, Chris. "7 Amazing Microsoft Kinect Hacks." RedmondMag.com.1105 Media Inc. Mar. 21, 2011. (Mar. 19, 2012) http://redmondmag.com/articles/2011/03/21/microsoft-kinect-hacks.aspx
- Schofield, Jack. "Microsoft starts pitching Kinect for business use." ZDNet. CBS Interactive. Oct. 31, 2011. (Mar. 20, 2012) http://www.zdnet.co.uk/blogs/jacks-blog-10017212/microsoft-starts-pitching-kinect-for-business-use-10024688/
- Tanz, Jason. "Kinect Hackers Are Changing the Future of Robotics." Wired.com. Conde Nast. Jun. 28, 2011. (Mar. 19, 2012) http://www.wired.com/magazine/2011/06/mf_kinect/all/1
- Torrone, Phillip. "Things you CAN'T Do With The Microsoft Kinect SDK." Makezine. MAKE. Jun. 17, 2011. (Mar. 20, 2012) http://blog.makezine.com/2011/06/17/things-you-cant-do-with-the-microsoft-kinect-sdk/