A template model for ABM platforms

A template model for ABM platforms

Steven F. Railsback, Steven L. Lytinen, and Stephen K. Jackson

The three Steve's designed and implemented a "template model" called StupidModel, meant to be a very simple model (hence the name) which nonetheless includes many commonly used features of ABM platforms.

Here is the StupidModel specification. There are 16 versions of StupidModel, which vary from a bare bones template (version 1) to one which involves 2 agent types, a full agent life cycle (birth, reproduction, predation, and death), and a habitat with data read from an input file (version 16).

We implemented StupidModel in 5 platforms:

PlatformHome page for platform Windows download
Objective C Swarm http://www.swarm.org/wiki http://ftp.swarm.org/pub/swarm/binaries/w32/cygwin/setup.exe
Java Swarm http://www.swarm.org/wiki http://ftp.swarm.org/pub/swarm/binaries/w32/Swarm-2.2-java.zip
RepastJ http://repast.sourceforge.net http://prdownloads.sourceforge.net/repast/Repast_J_3.1_Installer.exe?download
MASON http://cs.gmu.edu/~eclab/projects/mason/ http://cs.gmu.edu/~eclab/projects/mason/mason9.zip
NetLogo http://ccl.northwestern.edu/netlogo/ http://ccl.northwestern.edu/netlogo/download.shtml

We had two main goals:

  1. to provide template code for commonly used ABM features which can be used as a teaching tool for learning how to write ABM's
  2. to compare ease of implementation of models in a variety of ABM platforms.

Here is a link to a draft of a paper we have written, comparing the 5 platforms that we used.

Here are the implementations of StupidModel, and implementation notes for some of the platforms.

PlatformStupidModel implementation source code Implementation notes
Objective C Swarm ObjCSwarmStupidmodels.tgz StupidModel-ObjCSwarmNotes.pdf
Java Swarm JavaSwarmStupidmodels.zip StupidModel-JavaSwarmNotes.pdf
RepastJ RepastStupidmodels.zip StupidModel-RepastNotes.pdf
MASON MASONStupidmodels.zip StupidModel-MASONNotes.pdf
NetLogo NetLogoStupidmodels.zipNotes are included in source files

Versions 15 and 16 of StupidModel use a data file. It is in CellDataFile.ZIP.