These are the principles in following:

– Design for Fingers, not Cursors. Touch targets need to be much larger than for desktop: 8-10mm for tips, 10-14mm for finger pads.
– Remember physiology and kinesiology. Don’t make users do over extensions or repetitive tasks.
– No gorilla arm. Humans weren’t meant to do many tasks with hands up in front of their bodies for long periods of time. Sorry Minority Report.
– Screen coverage. Fingers are attached to a palm, which can cover the screen while you are trying to do a gesture. Avoid putting essential elements like labels below a control, as it can be obscured by the user’s own hand. Place items like menus at the bottom of the screen to avoid this phenomenon.
– Know the technology. The kind of touchscreen, sensor or camera determines the kind of gestures you can design for.
– The more challenging the gesture, the fewer people who will be able to (or want to) perform it.
– Trigger actions on release, not on press.
– Attraction affordance. Use a simple gesture to get users to start using the system.
– Avoid unintentional triggers. A variety of everyday movements on the user’s part can accidentally trigger the system. Avoid.
– Gestures and Command Keys. Provide easy (buttons, sliders, menu items, etc.) ways to access functionality, but provide advanced, learnable gestures as shortcuts.
– Requisite variety. There’s a wide range of ways to perform any gesture. Account for that.
– Match the complexity of the gesture to the complexity and frequency of the task. Simple, frequently used tasks should have equally simple gestures to trigger them.