1. A system comprising: one or more input devices; one or more computer readable storage media; a processing system; program instructions for a gesture interpreter stored on the one or more computer readable storage media that direct the processing system to, in response to receiving an activation input data from at least one input device of the one or more input devices: instantiate a high-level Petri Net instance having: one or more tokens, each token having a token definition appropriate to an input type of the input device from which the activation input data is received; a plurality of nodes, the plurality of nodes comprising: one or more places, each place representing a gesture state and each place having at least one associated token that includes input data from the input device; and one or more transitions, each transition representing a possible action on the input device; one or more arcs connecting between the nodes, wherein each arc identifies a possible route for a token instance to take between nodes, and wherein each arc is expressed as a tuple comprising an arc constraints function, an arc update function, an arc priority function, and an arc callback function for executing further processing including processing by an application layer; and a picking function that uses the arc priority function to evaluate the calculation priority among the one or more arcs from the same place or transition; execute the high-level Petri Net instance by, for each node in a path being traversed: determining, using the arc picking function, an order in which to evaluate arc constraints; evaluating the arc constraints function of a first arc in the order in which to evaluate the arc constraints; when the arc constraints of the first arc are met according to the arc constraints function of the first arc, updating the one or more tokens associated with the node by calling the arc update function of the first arc to obtain updated input data, trigger the arc callback function of the first arc, and traverse the next node in the high-level Petri Net instance indicated by the first arc; and when the arc constraints of the first arc are not met according to the arc constraints function of the first arc, evaluating the arc constraints function of the next arc in the order in which to evaluate the arc constraints; and return to the application layer an outcome gesture indicative of a terminal node in the path being traversed.