Agent Based Simulation Frameworks

Although the in Silico multi-agent simulations can be produced in almost any programming language, there are several frameworks available for doing Social Simulation that allow for an easy start. They make it easy to implement concepts like scheduling of events or actions, discrete or continuous worlds, network simulation and data output. Some even include analysis modules that do some sort of data analysis within the simulation. Some of the most important frameworks for social simulation are outlined here with some personal comments: [ad#ad-1] Mason – Is a fast discrete-event multiagent simulation library written in Java. It separates the models completely from the visualization modules allowing them to be deployed on a variety of platforms. Also models can be checkpointed for latter use, and the simulations recovered at a latter time. It requires some knowledge of Java programming.

Repast – With the latest version of Repast (Simphony) this framework as taken a new approach to Model development with a Java point-and-click model development and execution, allowing the development of Models for newcomers to programming, although models can still be written in the “old way” if one prefers. It is probably the framework that includes the highest number of libraries related with simulation available to use.

Netlogo – This is a simulation environment that is probably the easiest to learn without previous programming experience. Although written in Java, the modeling language is derived from the Logo language. Also, it allows for rapid testing of ideas as the mix of point and click elements, simple language and use of “turtles” as a metaphor for agents allows models to be built in a fraction of time of other languages. There exists another similar environment for modeling based in the Logo Language called StarLogo.

Swarm – This is self-called a platform instead of a framework. The main reason is that besides de software in itself there is a vast community of users and developers that share their ideas and experience in a Wiki style website. The Library is written in Objective-C and therefore might be a bit of a step to get into. It is one of the oldest Libraries developed for agent based simulation and seams that since 2005 it isn’t being actively developed, although many researchers still use it in their models. You also can use Java to program and use the Swarm Library, but you’ll have to compile Swarm with Java support yourself.

This list is far from completeness. I’ll try to update this list with more frameworks and comments. If you would like to add a review or some comment on any kind of framework please leave a comment or send it to me at david — at — sixhat — dot — net

This article was writen to the Complexity Sciences Winter School Blog