Author: Sean Kean, Jonathan Hall & Phoenix Perry
Aimed at: Would-be Kinect developers
Pros: First book available on a hot topic
Cons: Already outdated, lacks code
Reviewed by: Harry Fairhead
The Kinect is a hot topic - even after being available for more than a year it is still inspiring programmers to create new things. Yet there are very few books on the topic of programming the Kinect - indeed this is the first to be published dedicated to the topic. However its subtitle - An Introduction to Programming Natural User Interfaces- should indicate to you that this isn't going to be an in depth exposition - but you might be surprised at how shallow it actually is.
It starts off with a look at the general details of the Kinect including buying a power adaptor etc. Some of these details are about to be made out of date by the imminent release of the Kinect for the PC. Then it goes on to describe how to install drivers for the device. This is usually the most complicated and worrying thing a beginner. To make it easier, the book uses a custom program that comes complete with PrimeSense NITE and other software. This could be a great simplification, but the book presents what is going on and what you are achieving as a confusing mess. It is difficult to read and difficult to follow. The chapter closes with a catalog of what you can do with the software - space that could have been used to explain more important ideas.
Chapter 2 moves back to generalities - how the Kinect and other sensors work. This is all interesting and could be forgiven if the book later delivered some practical advice. It explains a little about the situation with respect to raw drives - OpenKinect/Libfreenect - but doesn't provide enough information to get you started. It also completely ignores the easiest way of getting started with the Kinect, which is to use the Microsoft SDK.
From this point the book becomes a catalog of how you can program the Kinect and what applications are available. Chapter 3 is a list of applications with lots of examples. screen dumps and comment. Chapter 4 is about using Processing to program the Kinect. After a quick introduction to using Processing, we have another confused explanation of how to get the necessary drivers installed for the Kinect extensions to the language. After this we have another description of using a supplied demo program.
The next few chapters follow the same pattern of introducing new ways of using the Kinect via other frameworks. Chapter 5 - Kinect for Creatives is about using MaxMSP, Flash, openFrameworks and Cinder. Chapter 6 is on using the Beckon Framework and Chapter 7 is on 3D games with Unity.
Chapter 8 is on getting started with the Microsoft Kinect SDK which has been noticeable by its absence from the rest of the book. This chapter basically says what it is and describes how to get started. It contains almost no information you couldn't find on the web site.
Chapter 9 goes into yet another area - Volumetric Displays. This is interesting, and if the authors had managed to tell us anything in depth about the Kinect would be a tolerable inclusion, but in the current structure of the book it is difficult not to regard it as padding. The final chapter is a collection of "where do we go from here" thoughts and is completely skippable.
You can get the measure of this book by just flipping through the pages and noticing how little code there is. This is almost Kinect for the non-programmer which, given the current state of the art, isn't really going to get you very far. It seems to take the attitude that you can sort of absorb programming techniques by being told what other people are doing or looking at existing applications.
If you are looking for a book that will show you how to achieve simple but essential things, like reading in a depth map, working with a skeleton or anything that might involve writing some C++, C# or indeed any code, then you need to wait for another book (or follow Dr Mike James' series of articles) At best this one serves as a sort of coffee table book to indicate what sorts of things you might be able to do - but as a catalog of ideas, applications and frameworks it doesn't compare well to just doing a web search or visiting one of the portal sites.
You can give this book a miss and go back to waiting for a volume that tells you something.