How we interface and interact with computing, communications, and entertainment devices is going through revolutionary changes, with natural user inputs based on touch, gesture, and voice replacing or augmenting the use of traditional user interfaces based on keyboard, mouse, trackballs, joysticks, etc. This paper will review the key technologies towards realizing natural user interfaces and implementations of new interactive applications.