|Developer(s)||Oliver Obst, Jan Murray, Joschka Boedecker, Markus Rollmann, Mosalam Ebrahimi, Hedayat Vatankhah, Sander van Dijk, Xu Yuan|
|Written in||C++, Ruby|
Mac OS X
|Website||Project Homepage GitLab Page|
SimSpark is a generic simulation system for various multiagent simulations. It supports developing physical simulations for AI and robotics research with an open-source application framework. It is commonly used in academic research and education.
The SimSpark project started in 2003 and was based on the building blocks of the Spark project. It was initially developed by Marco Kögler and Oliver Obst at the University of Koblenz-Landau in Koblenz, Germany.
SimSpark was registered with SourceForge in 2004 and has an established code base  with development increasing year-over-year.
Agents communicate with the simulation server via UDP or TCP, and therefore can be implemented in any language that supports such sockets. Multiple software agents can participate in one simulation.
Simulations are created within the server using the Ruby language and text-based RSG files. SimSpark uses the Open Dynamics Engine (ODE) for detecting collisions and for simulating rigid body dynamics. ODE allows accurate simulation of the physical properties of objects such as velocity, inertia and friction.
Use in RoboCup
SimSpark is the simulation engine for the RoboCup 3D Soccer Simulation League. In this simulation two teams play soccer with rules similar to regular soccer. The robots use simulated cameras and other sensors such as accelerometers, gyros and touch and audio sensors. Software agents process signals from these sensors (also known as perceptors) and generate control signals for the 22 hinges within each robot's body in order to achieve whatever forms of motion are required to win a game of soccer.
The original soccer robot model was known as soccerbot, but since 2008 it has been replaced with a Nao robot inspired model.