1. A computer-implemented method for simulating animation, the method comprising: receiving, at one or more computer systems, information defining a first set of simulation primitives and a second set of simulation primitives; providing, using one or more processors associated with the one or more computer systems, a first simulator based on the first set of simulation primitives, wherein the first simulator produces a first simulation, and a second simulator based on the second set of simulation primitives, wherein the second simulator produces a second simulation; and generating, using the one or more processors associated with the one or more computer systems, a dependency graph that represents dependencies between the first simulation and the second simulation, wherein the dependency graph includes information usable for determining that an output of the first simulation is an input to the second simulation; updating, using the one or more processors associated with the one or more computer systems, a simulation primitive in the first set of simulation primitives; determining, using the one or more processors associated with the one or more computer systems, that the second simulation depends on the first simulation based on the dependency graph; and updating, using the one or more processors associated with the one or more computer systems, the second simulator to comply with a change in the output from the first simulation.