1. A method for performing a simulation, the method comprising: executing the simulation; collecting simulation data while executing the simulation to form collected simulation data; generating a number of events by applying a first number of rules to the collected simulation data to form a number of generated events; generating a number of commands as a reaction to the number of generated events by applying a second number of rules to the number of generated events to form a number of simulation commands; and sending the number of simulation commands to the simulation.