1. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to update rules for a plurality of entities in a simulation as the simulation is running, the method comprising: receiving configuration parameters for the simulation, the configuration parameters including a plurality of rules that control the interactions of the plurality of entities in the simulation; performing the simulation for a first plurality of iterations; analyzing the simulation results to determine when there is an update for the plurality of rules, wherein the rule update is an update for at least one of the plurality of rules for an interaction potential between a pair of the plurality of the entities that is based on at least a distance between the pair of the plurality of entities; when there is an update for the plurality of rules, creating the rule update for the plurality of rules; and applying the rule update to the plurality of rules.