In general, two types of simulation/modeling (s/m) systems are available for the development of agent-based models: toolkits or software. Of course, an agent-based model can be programmed completely from scratch using a low-level programming language if a modeler has sufficient programming knowledge and experience (see below for disadvantages of this approach). Based on this dichotomy, toolkits are s/m systems that provide a conceptual framework for organizing and designing agent-based models. They provide appropriate libraries of software functionality that include pre-defined routines/functions specifically designed for ABM. However, the object-oriented paradigm allows the integration of additional functionality from libraries not provided by the s/m toolkit, extending the capabilities of these toolkits. Of particular interest here is the integration of functionality from GIS software libraries (e.g. OpenMap, GeoTools, ESRI’s ArcGIS, etc.), which provide ABM toolkits with the greater data management and spatial analytical capabilities required for geospatial modeling.
The development of agent-based models can be greatly facilitated by the utilization of s/m toolkits. They provide reliable templates for the conceptualization, design, implementation and visualization of agent-based models, allowing modelers to focus on research (i.e. building models), rather than building the fundamental tools necessary to run a computer simulation. In particular, the use of toolkits can reduce the burden that modelers face programming parts of a simulation that are not content-specific, e.g. a Graphical User Interface (GUI), data import-export, and visualization/display of the model. It also increases the reliability and efficiency of the model, because complex parts have been created and optimized by professional developers, as standardized s/m functions.
Unsurprisingly, there are limitations of using s/m systems to develop agent-based models. For example: a substantial amount of effort is required to understand how to design and implement a model in some toolkits; the programming code of demonstration models or models produced by other researchers can be difficult to understand or apply to another purpose; a modeler will have to learn or already have an understanding of the programming language required to use the toolkit; and finally the desired/required functionality may not be present, although additional tools might be available from the user community or from other software libraries. Benenson et al. (2005) also note that toolkit use is accompanied by the fear of discovering that a particular function cannot be applied, will conflict, or is incompatible with another part of the model late in the development process.
Probably the earliest and most prominent toolkit was SWARM, although many other toolkits now exist. At the time of writing there are more than one hundred toolkits available for ABM (see AgentLink; SwarmWiki; Multiagent Systems; and Tesfatsion for comprehensive listings). However, toolkits can vary widely with respect to: purpose, in that some toolkits have different design objectives e.g. an AI rather than social science focus, or network opposed to raster or vector model environments; level of development, in that support for models may not be ongoing and/or development may have ceased; and modeling capabilities, with respect to the number of agents that can be modeled, or the degree of interaction that is possible between them. A review of all toolkits currently available is beyond the scope of this Section. However, below (Section 8.2.10, Simulation/modeling (s/m) systems for agent-based modeling) we discuss a selection of noteworthy s/m toolkits highlighting their purpose and capabilities, together with resources providing further information.
In addition to toolkits, software is available for developing agent-based models, which can simplify the implementation process. For example, s/m software often negates the need to develop an agent-based model via a low-level programming language (e.g. Java, C++, Visual Basic, etc.). In particular, software for ABM is useful for the rapid development of basic or prototype models. However, modelers using software are restricted to the design framework advocated by the software. For instance, some ABM software will only provide limited environments (e.g. raster only) in which to model, or agent neighborhoods might be restricted in size (e.g. von Neumann or Moore). Furthermore, a modeler will be constrained to the functionality provided by the software (unlike ABM toolkits, modelers will be unable to extend or integrate additional tools) especially if the toolkit is written in its own programming language (e.g. NetLogo). Section 8.2.9, Guidelines for choosing a simulation/modeling (s/m) system, provides guidelines for choosing s/m software, whilst Section 8.2.10, Simulation/modeling (s/m) systems for agent-based modeling, identifies a selection of noteworthy software for the development of agent-based models including StarLogo, its derivative NetLogo, and AgentSheets.