
Some basics
Opportunities provided by a Kinect:- Depth recognition, allowing an interpretation of 3D space
- Gesture/motion recognition
- Voice recognition
- A very passionate community of enthusiast hackers creating a lot of cool stuff for the platform
- Limited hardware needed–just a Kinect, your PC, and an idea
- 6-8 foot clearance needed between the subject and the Kinect
No official Microsoft SDKA problem no longer, thanks to the April 13th announcement of an official SDK!- Different TV sizes & living room configurations
- No standardized UX or design guidelines
Make use of and get inspiration from existing hacks
There is a passionate community of enthusiasts who have created free, open source libraries for activating mouse cursors, setting up skeletal tracking, and lots more. Even with an official SDK, time can be saved by building on top of what others have already explored. A prominent resource in the community is the Open Kinect site. At the very least, you’ll leave with some fresh inspiration provided by these very creative folks.Rely on gestures & voice over chrome
Using the “body as the interface” is one of the key tenets of Natural User Interfaces, or NUIs, like the Kinect. But, if you’re developing very quickly and on the fly, it can be easy to fall back on UI controls (“chrome”) because they’re quicker to implement and more familiar to most designers and developers. We were guilty of overusing chrome in our first iterations. Arguably, the Kinect seems to have only two gestures that could be considered standard. One of these is the calibration pose (also called the PSI pose), which is used to help the Kinect acquire and track a body. This is generally done once per user, because the Kinect is pretty good at staying locked on someone once recognized. There are times when the Kinect can acquire someone without the aid of the calibration pose, and in other cases an Xbox calibration card can be used as a calibration alternative.
An example of the calibration pose, courtesy of rock-vacirca.blogspot.com

The mouse cursor invocation wave
Provide anchors and instructions
You may want to build your gesture-driven app so that only one major task is required per screen or step. This will reduce the need for your audience to memorize more than one activity at a time.
Kinectimals is a game that is broken up into singular, fun activities

Kinect Dance Central makes gestural guides a primary part of the game experience
Optimize your layout
While you may be building or even testing your app initially on a PC, bear in mind that the most common use case will be on a TV. Make sure to test it out as such and design for the 10-foot UI. Our experiments were optimized for a 1280 x 720 screen. I drafted up the following templates as a guide to UI placement. These are based on my own interpretation of what I observed as comfortable vs. uncomfortable arm movement in our users. Your own explorations may incorporate other parts of the body or more intense movements. Click to get a larger template for your own use.


Multiplayer support
You’ll also want to decide whether your experience should support multiple users. Consider both physical mutliplayers (several people in the same space being interpreted by a single Kinect) and virtual multiplayers (individuals in different locations with their own Kinects linked together into one experience). According to Microsoft, the Kinect has the potential to recognize an unlimited number of users in a single environment. Even if you decide only to support a single user, take into consideration that other people may be moving around in their environment. Especially if you are building an experience based on a hack, the Kinect can sometimes “lose” the primary player it was tracking and switch its focus to someone who has walked into the scene. Just make sure to build around that possibility.Emphasize the fun
Most people expect an active, entertaining experience if they’re firing up their Kinect. We noticed that people were a lot more forgiving of some of the more utilitarian parts of our app because they were able play around and move more freely in other parts. My recommendation is to integrate a good dose of activity into your Kinect experience. Take advantage of the platform’s capabilities. It’s probably best not to build an app for, say, doing taxes (unless you can make tax filing easier AND more effective AND entertaining, in which case, please go for it!). If you are building an entertainment app or a game that needs to support some utilitarian tasks, try putting those actions into a secondary panel or screen.Think about other postures
While today most Kinect experiences are optimized for standing subjects and the 6-8 foot experience, it can still recognize folks who are sitting or otherwise positioned. Since the common location of a Kinect may be in the living room, consider if you’d like to support a use case of someone sitting a bit more passively on their couch.Live camera feed or 3D avatar?
In general, you have two options in how you can display the user on the screen. You can composite your UI with a live camera feed or you can generate a 3D avatar and environment. Using a live camera feed is probably the easiest to start with. But, if you try to composite UI chrome and 3D textures with this feed, you may find yourself spending a lot of time trying tweaking things to achieve an acceptable visual result. I’d recommend this approach if you have a lightweight UI you’d like to lay over a camera feed or a more task-focused application that may not rely heavily on figural representation. We were able to create a simple UI using textures output from Photoshop as TGAs with alpha channel. Creating a 3D avatar and environment will be more time consuming to start (OpenGL, Physics engines, yay!), but the end result is certainly more cohesive-looking. I’d recommend this approach if you want an immersive experience or have an interface with heavy figural representation.
An example of 3D avatars created on a Kinect