A plug-and-play architecture makes replacing of some specific simulation steps possible. Each simulation step is represented by an interface and implementation can be selected in the experiment setup. The {@linkplain saces.exp.Experiment} class loads these plug-and-play classes.
The simulation steps made available for plug-and-play are
An important optimizing detail is that the implementations are given arrays and not single instances. The collision response takes an array of collisions, for example. This allows native implementation of some steps which have presented themselves as extraordinarily expensive.