Develop with pleasure

AlgoSenSim - Overview

AlgoSenSim is a framework for distributed algorithms created by Andrei Marculescu and Jacques Fontignie. This framework is still in alpha release. It is released under the GNU GPL license.


AlgoSensim is a framework used to simulate distributed algorithms developed at the University of Geneva. It is not protocol stack oriented but algorithm oriented. This framework focuses on network specific algorithms like localization, distributed routing, flooding ...

AlgoSenSim is easily modulable: It uses XML configuration file. It is efficiency oriented, but optimizations are hidden to the user.

AlgoSenSim’s main purpose is to facilitate the implementation and quality analysis of new algorithms.


Modularity and XML Config Files

Every part of the distributed algorithms have been implemented asmade components, using a "Design Pattern" methodology. The benefits are:

  • Separation between behaviour and representation, i.e. we can use the same operators for a laser wireless sensor or a radio based sensor;
  • Short and readable code, since each object represents only a single operation and therefore only has a few short methods.
  • The possibility to change the components or their behaviour during evolution, for example changing dynamically the number of sensors, moving sensors during the evolution or generating events.

The AlgoSenSim platform is coupled with a dynamic configuration file system. This system is able to instantiate any class and to pass parameters of any type and number without the need to extend the parser. Object introspection is used during initialisation.

Performances Optimisations

AlgoSenSim was written with high performance computing in mind. Here are the optimisations you get for free:

  • Object-recycling memory management, eliminating the time spent on object-allocation and garbage-collection;
  • Efficient network, only sensors that receive a message will be evaluated;
  • Very fast algorithms for neigbhor range computations.


AlgoSenSim comes with a lot of statistics and graphical interfaces to visualize easily the behavior of the network:

  • You can use statistics to plot the number of nodes localized, the error of localization, the number of messages sent, ...
  • The graphical interface helps you to see if the routing algorithm is balanced or not...


AlgoSenSim contains a GUI that allows to easily understand the evolution of the network. A lot of views are available:

  • Connexity
  • Localization error
  • property views
  • ...


You can get documentation on AlgoSenSim here, you can download the developers' guide or see the javadoc.


Here is a small list of tutorials to help you using AlgoSenSim:


You can download

  • the latest release of AlgoSenSim with Subversion: here.
  • the latest release of AlgoSenSim as a tar gziped archive: algosensim-
  • the latest (unstable) development version of AlgoSenSim with Subversion : here.

You can go here for more information on the installation.


The next main features to be implemented in AlgoSenSim are:

  • Parallelize the network;
  • Enhance the GUI
  • Create an XML editor to generate the configuration