Main contents

Sea Swarm Simulator

This is SSSim 0.4, the first public release of the Sea Swarm Simulator, developed by Eemeli Aro at Aalto University.

The simulator is released subject to the terms of the Mozilla Public License, v. 2.0.


SSSim has been released primarily to help others developing multi-robot simulators for research purposes; especially for developing underwater systems. It is a tool I developed to enable my own research on an autonomous group of robotic floats, and that shows in its implementation details. I hope it may prove useful to others, as it is extensible to handle different types of robots and different types of 2D and 3D environments.


You'll need to download and extract (tar xzf sssim-...tar.gz) both of the above files into the same directory, under which a directory sssim-0.4 will be created. You may also download and extract the simulator as a single file (5.7 MB), if you prefer.


Development work has been done using Ubuntu Linux, so exact library & other requirements on other platforms is unknown.

Under Ubuntu, the following command should install a minimal set of required libraries:

sudo apt-get install build-essential libnetcdf-dev freeglut3-dev libgd2-xpm-dev libconfig++8-dev

Additionally, the Simple Vector Library is required, and as it is not available via APT it is included with the simulator. To install:

cd lib-src/svl-1.5/
sudo make install


Once the necessary libraries are installed, running `make` should generate five executable files in the bin/ directory:

env - the environment server
float - sample underwater robotic float
base - sample base station
cli - command line controller for the environment
gui - a combined visualizer and controller for the system

To run the simulator, a number of the above programs need to be run at the same time. The shell script "run" is provided, which uses gnome-terminal to start the environment, a base station, six floats, and the GUI. The sample floats will operate on a two-hour cycle, meeting at the sound channel depth to communicate before picking a random depth to float at. The sample base station will act as a GPS position data relay; the GUI will display these last known locations for the active float.

Version history

First public release (7.10.2012)
Reworked modelling of time-delayed processes, moving queue from server to clients
Redesigned time model, removing dependency on real time
First working system