If you want to extend Enki, do not forget to read and follow the Coding Convetions.
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 sound sources of Sbot does not reflect directly hardware and thus is subject to change.
Enki - an open source fast 2D robot simulator http://home.gna.org/enki/ Stephane Magnenat <stephane at magnenat dot net>, Markus Waibel <markus dot waibel at epfl dot ch>, Antoine Beyeler <abeyeler at ab-ware dot com> Laboratory of Intelligent Systems, Mobots group - Laboratoire de Systèmes Robotiques, École Polytechnique Fédérale de Lausanne - Switzerland