1. A computing device for rapidly evaluating logical expressions, the computing device comprising: a memory space for storing code; a processor, coupled to the memory space, executing the code to cause the computing device to repeatedly perform operations of: determining a set of primitives defining some or all of a current state of a model of a virtual or real world; accessing a set of logical expressions including the primitives, each of the logical expressions being either a true or false statement about the current state of the model, wherein a union of the logical expressions is expressed in one or more directed acyclic graphs; and computing which of the logical expressions are true statements about the current state of the model by traversing the one or more directed acyclic graphs once exactly in one path from a root node to a leaf node in the one or more directed acyclic graphs.