The core concept in Enki is the interaction. An interaction can be local, i.e. apply only up to a certain range, or global, i.e. apply to the whole world.
Local interactions are object <-> object and called by the inner simulation loop only when objects are below the interaction range. In objects, local interactions are sorted from long to short range so that once one is out of range, the following will be too. This is the main optimization in Enki that permits large colonies of robots. The complexity is still O(n2) so if very large colonies are required, a larger scale, grid based optimization should be used. It is currently not implemented in Enki. Physical dynamics between objects are the shortest ranged local interactions. Local interactions can also interact with walls. Physical dynamics between objects and walls are similar to local interactions with other objects, but use a different method of calculation.
Global interactions are object <-> world.
The Alice sound source and sensor and the Sbot camera don't reflect real hardware and thus are subject to change.
Enki - an open source fast 2D robot simulator http://teem.epfl.ch Stephane Magnenat <stephane at magnenat dot net>, Markus Waibel <markus dot waibel at epfl dot ch> Antoine Beyeler <antoine dot beyeler at epfl dot ch> Laboratory of Intelligent Systems, EPFL, Lausanne