Gesture-TV allows you to control your Google TV with a Kinect sensor. You need a computer and a Microsoft Kinect sensor with a power adapter.
Gesture-TV is based on the simple OpenNI wrapper for Processing. Follow the installation instructions for your operating system. Download a copy of Gesture-TV and open the GestureTV.pde file in Processing development environment.
When you run Gesture-TV, it requires that you enter the IP address of the Google TV device you want to control. Once that is entered and the connection made, you need to do the surrendering pose (aka stand like a cactus) for calibration. When the calibration is done you will see a skeleton line figure. You can drop both hands now. Lift up one hand and wave it until you see red dots. Now everything is ready to control your Google TV.
There are two input modes:
- Pointer mode: If you hold up one hand and keep the other down to your side. Move your hand to position the pointer. Push to select.
- Gesture mode: If you hold up one hand and then the other. For the first hand, swipe down to go home or swipe left to go back.
The mapping of hand movements to pointer positioning is very primitive and you might get into a situation where the location you want to reach on the screen is out of reach. You can reset the pointer position by dropping your hand and then lifting it up again. You can also move the pointer against one of the screen edges to adjust the mapping. Also, there are currently limitations in supporting navigation options like scrolling, so its not quite a complete replacement of the Google TV remote. Ideally, the Google TV user interface would need to be adjusted for this kind of interaction.
Watch this video to see Gesture-TV in action.
Note for developers: The Gesture-TV project includes the jar file for the Anymote-for-Java library in its lib directory. Developers should check out that project and export a jar file for the latest version of the code. When you export the Anymote-for-Java project as a jar file, do not include its lib directory since this project already includes those jar files.