1. A method comprising: receiving inputs detected using one or more magnetometers, cameras, or microphones; determining one or more applications of a plurality of applications that are a target of the inputs, the determining comprising performing a handshake with the applications to determine which of the applications are available to receive events or subscribed to the events; converting, by a computing device, the inputs into graphical user interface controls provided by a natural user interface input module for use in a graphical user interface of the one or more applications; and exposing the graphical user interface controls to the one or more applications as events via an application programming interface.