Thursday, October 11, 2007

Open Source Simulation / Modelling Systems for ABM

Note: This post is now dated and MASON and Repast has changed considerably since this was written. A new post will soon be written (14th July 2010) but in the meantime please see the comments below.
This blog has tended to focus on Repast when developing agent-based models as it is the toolkit we most often use to create such models. However, we felt it was time to highlight other open source Simulation/Modelling Systems that allow for the creation of geospatial agent-based models. These include Swarm and MASON. A comparison of Repast, Swam and Mason can be seen in the table below (adapted from Najlis et al., 2001 and Parker, 2001a). The reminder of this post provides further information about each system, identifying examples of geospatial agent-based models that have been developed with these systems. Please feel free to comment on these systems and to highlight other geospatial models developed with these systems.

Swarm is an open source simulation/modelling system designed specifically for the development of multi-agent simulations of complex adaptive systems (Swarm, 2006); although agent-based models can easily be developed using Swarm as well. Originally developed in Objective-C, Swarm is also now available in Java (a Java layer running on top of the Swarm kernel). Inspired by Artificial Life, Swarm was designed to study biological systems, attempting to infer mechanisms observable in biological phenomena (Minar et al., 1996). In addition to modelling biological systems, Swarm has been used to develop models for anthropological, computer science, ecological, economic, geographical, and political science purposes. Useful examples of spatially explicit models include: the simulation of pedestrians in the urban centres (Schelhorn et al., 1999 and Haklay et al., 2001), and the examination of crowd congestion at London’s Notting Hill Carnival (Batty et al., 2003). Najlis et al. (2001) identify the steep learning curve of Swarm as a significant factor to consider before choosing this system to develop an agent-based model, although this should be less of a problem for a modeller with strong programming skills. Many of the other toolkits take their inspiration from Swarm (such as Repast and Ascape (Parker, 2001b)).

MASON (Multi Agent Simulation Of Neighbourhood) was developed by the Evolutionary Computation Laboratory (ECLab) and the Centre for Social Complexity at George Mason University. At present MASON does not provide functionality for dynamically charting (e.g. histograms, line graphs, pie charts, etc) model output during a simulation, or allow GIS data to be imported/exported (Luke et al., 2004). However, the developers of MASON are continuing to develop further functionality, and they hope users will develop and contribute tools themselves (e.g. GIS integration utilising Java libraries such as GeoTools). Unfortunately there is little technical documentation and a relatively small user group in comparison to some of the other systems identified within this paper. However, how-to documentation, demonstration models (e.g. the seminal heat bugs example, network models, etc), and several publications detailing the implementation and/or application of MASON are available for a prospective modeller to evaluate the system further (MASON, 2006).

Repast (Recursive Porous Agent Simulation Toolkit) was originally developed at the University of Chicago, and is currently maintained by Argonne National Laboratory and managed by the Repast Organisation for Architecture and Development (ROAD). Repast caters for the implementation of models in three programming languages: Python (RepastPy); Java (RepastJ RepastS); and any programming language compatible with the Microsoft.NET framework, for example, C# (Repast.NET). RepastPy allows basic models to be developed by modellers with limited programming experience via a ‘point-and-click’ GUI (Collier and North, 2005). RepastPy models can subsequently be exported/converted into Java for further development in RepastJ. Repast.NET and RepastJ allow for more advanced models to be developed (Vos, 2005) because more complex functionality can be programmed into a model. Agent Analyst is an ABM extension that allows users to create, edit, and run Repast models from within ArcGIS (Redlands Institute, 2006). Repast has a relatively large user group and an actively supported e-mail list, as well as extensive how-to documentation and demonstration models available from the system website. Useful examples of spatially explicit models created using Repast include the studying of segregation, and residential and firm location (Crooks, 2006), and the evacuation of pedestrians from within an underground station (Castle, 2006). Further discussion of Repast can be seen in Crooks, 2007.
To read more about the comparison of different Simulation / Modelling Systems for the creation of geospatial agent-based models check out our working paper ‘Principles and Concepts of Agent-Based Modelling for Developing Geospatial Simulations’.

Batty, M., Desyllas, J. and Duxbury, E. (2003), 'Safety in Numbers? Modelling Crowds and Designing Control for the Notting Hill Carnival', Urban Studies, 40(8): 1573-1590.
Castle, C.E. (2006), 'Using Repast to Develop a Prototype Agent-Based Pedestrian Evacuation Model', Proceedings of the Agent 2006 Conference on Social Agents: Results and Prospects, Chicago, USA.
Castle, C.J.E. and Crooks, A.T. (2006), Principles and Concepts of Agent-Based Modelling for Developing Geospatial Simulations, Centre for Advanced Spatial Analysis (University College London): Working Paper 110, London, England.
Collier, N. and North, M.J. (2005), 'Repast for Python Scripting', Annual Conference of the North American Association for Computational Social and Organizational Science (NAACSOS) Notre Dame, Indiana, USA.
Crooks, A.T. (2007), The Repast Simulation/Modelling System for Geospatial Simulation, Centre for Advanced Spatial Analysis (University College London): Working Paper 123, London, UK.
Crooks, A.T. (2006), 'Exploring Cities using Agent-Based Models and GIS', Proceedings of the Agent 2006 Conference on Social Agents: Results and Prospects, Chicago, USA.
Haklay, M., O'Sullivan, D., Thurstain-Goodwin, M. and Schelhorn, T. (2001), '"So Go Downtown": Simulating Pedestrian Movement in Town Centres', Environment and Planning B: Planning and Design, 28(3): 343-359.
Luke, S., Cioffi-Revilla, C., Panait, L. and Sullivan, K. (2004), 'MASON: A New Multi-Agent Simulation Toolkit', SwarmFest 2004, Eighth Annual Swarm Users/Researchers Conference., University of Michigan, Ann Arbor, Michigan USA.
MASON (2006), Multi Agent Simulation Of Neighbourhood, Available at
Minar, N., Burkhart, R., Langton, C. and Askenazi, M. (1996), The Swarm Simulation System: A Toolkit for Building Multi-agent Simulations, Available at [Accessed on August 8th, 2006].
Najlis, R., Janssen, M.A. and Parker, D.C. (2001), 'Software Tools and Communication Issues', in Parker, D.C., Berger, T. and Manson, S.M. (eds.), Meeting the Challenge of Complexity: Proceedings of a Special Workshop on Land-Use/Land-Cover Change, Irvine, California.
Parker, D.C. (2001a), Object-Orientated Packages for Agent-Based Modelling, Available at
Parker, M. (2001b), 'What is Ascape and Why Should You Care?' Journal of Artificial Societies and Social Simulation, 4(1):
Redlands Institute (2006), What is Agent Analyst?, Available at
Schelhorn, T., O'Sullivan, D., Hakley, M. and Thurstain-Goodwin, M. (1999), STREETS: An Agent-Based Pedestrian Model, Centre for Advanced Spatial Analysis (University College London): Working Paper 9, London.
Swarm (2006), Swarm: a platform for agent-based models, Available at


Anonymous said...

I suggest you revise this posting if possible. MASON has excellent documentation, particularly when you compare its Javadoc to the Javadoc of Repast. It has tutorials and guidelines and lots of classic model examples. The documentation on optimization for space and time is very good. The mailing list is extremely responsive.

I found Repast documentation scattered and not very helpful. The mailing list is probably just as helpful as MASON's and usually that is not a distinguishing feature.

Andrew Crooks said...

Thanks for this

I agree the mailing list does seem responsive. The Javadoc is good and the tutorials are very useful. This post is old and should be updated with a new one. Sorry for this and will get onto it.

I also started to see people reviewing MASON favorably also e.g.

Berryman, M. (2008), Review of Software Platforms for Agent Based Models, Defence Science and Technology Organisation, DSTO-GD-0532, Edinburgh, South Australia, Australia.