General Software and Toolkits
Agent-Based Computational Economics (ACE),
Agent-Based Modeling (ABM),
and Complex Adaptive Systems (CAS)
- Last Updated: 23 January 2016
- Site maintained by:
- Department of Economics
- Iowa State University
- Ames, Iowa 50011-1070
tesfatsi AT iastate.edu
ACE Website Homepage
This site stresses general programming languages and toolkits suitable for agent-based computational economics (ACE), agent-based modeling (ABM), and complex adaptive systems (CAS)
modeling. Computational laboratories and interactive demonstration software
focused on more specific types of ACE/ABM/CAS applications are gathered together
at a separate site titled the
ACE/CAS Computational Laboratories and Demonstration Software.
Software Release Disclaimer:
- All software provided below is unsupported and provided as-is, without
warranty of any kind, unless otherwise specified by the provider.
Wikipedia: Comparison of Agent-Based Modeling Software
- ABM for Complex Software Systems Development
- Nicholas Jennings, "An Agent-Based Approach for Building Complex Software Systems"
Communications of the ACM, Vol. 44, No. 4, April 2001, 35-41.
- Abstract: The author explains why agent-oriented approaches are well suited for developing complex distributed systems, including high-quality industrial-strength software for commercial application.
- Agent Toolkit Surveys:
- Adam Getchell, "Agent-Based Modeling"
Working Paper, Department of Physics, UC Davis, June 9, 2008
"The theory and practice of agent-based modeling is reviewed, and agent-based modeling toolkits are evaluated and discussed. A tractable selection of toolkits, RepastPy, Repast Simphony, and breve are then employed to develop and visualize a series of increasingly sophisticated agent-based models, starting with a simple network-interaction diagram and proceeding onto the Boids 3D flock simulation, a 3D collision and gravity system, the chaotic Gray Scott diffusion reaction, a sophisticated agent behaviors game of Capture the Flag, finally culminating with an complex Boids evolutionary swarm simulation. To accomplish the latter, genetic programming techniques are briefly reviewed. Finally, an overview is presented with future directions."
Steven L. Lytinen and Steven F. Railsback, "The Evolution of Agent-Based Simulation Platforms: A Review of NetLogo 5.0 and ReLogo"
EMCSR Conference Proceedings, 2012.
"We review and evaluate two recently evolved agent-based simulation platforms: version 5.0 of NetLogo and the ReLogo component of Repast. Subsequent to the similar review we published in 2006, NetLogo has evolved into a powerful platform for scientific modeling while retaining its basic conceptual design, ease of use, and excellent documentation. ReLogo evolved both from NetLogo and Repast; it implements NetLogo’s basic design and its primitives in the Groovy programming language embedded in the Eclipse development environment, and provides access to the Repast library. We implemented the “StupidModel” series of 16 pseudo-models in both platforms; these codes contain many elements of basic agent-based models and can serve as templates for programming real models. ReLogo successfully reimplements much of NetLogo, and its translator was generally successful in converting NetLogo codes into ReLogo. Overall we found ReLogo considerably more challenging to use and a less productive development environment. Using ReLogo requires learning Groovy and Eclipse and becoming familiar with Repast’s complex organization; documentation and learning materials are far less abundant and mature than NetLogo’s. Though we did not investigate thoroughly, it is not clear what kinds of models could readily be implemented in ReLogo but not NetLogo. On average, NetLogo executed our example models approximately 20 times faster than ReLogo."
- Cynthia Nikolai and Gregory Madey, "Tools of the Trade: A Survey of Various Agent Based Modeling Platforms", Journal of Artificial Societies and Social Simulation, Vol. 12, No. 2 2, 2009, available
"Agent Based Modeling (ABM) toolkits are as diverse as the community of people who use them. With so many toolkits available, the choice of which one is best suited for a project is left to word of mouth, past experiences in using particular toolkits and toolkit publicity. This is especially troublesome for projects that require specialization. Rather than using toolkits that are the most publicized but are designed for general projects, using this paper, one will be able to choose a toolkit that already exists and that may be built especially for one's particular domain and specialized needs. In this paper, we examine the entire continuum of agent based toolkits. We characterize each based on 5 important characteristics users consider when choosing a toolkit, and then we categorize the characteristics into user-friendly taxonomies that aid in rapid indexing and easy reference."
- Agent Toolkits for Teaching: A Survey
Alexander Serenko and Brian Detlor,
"Agent Toolkits: A General Overview of the Market and an
Assessment of Instructor Satisfaction with Utilizing Toolkits in the
McMaster University, Working Paper 455, July 2002, 49pp.
- Evaluation of Java-Libraries for Social Science Simulation
- Robert Tobias and Carole Hoffman have published an article titled
``Evaluation of Free Java-Libraries for Social-Scientific Agent Based
in the electronic journal JASSS (Volume 7, Number 1, 2004). The
authors compare and formally evaluate four freely available Java programming
libraries for the support of agent-based modeling in the social sciences:
Repast, Swarm, Quicksilver, and VSEit. A brief discussion of other
simulation frameworks is also given.
- Pseudo-Random Number Generators
The pLab Project: Pseudo-Random Number Generation
is a resource site on the theory and practice of pseudo-random number
generation. The site is maintained by a team of Austrian mathematicians and
computer scientists led by Peter Hellekalek at the University of Salzburg's
Mathematics Department. Resources provided at the site include specific
pseudo-random number generators, tests for randomness, news, literature,
software, and related links.
- Template Model for ABM Platform Comparisons
- Steven F. Railsback, Steven L. Lytinen, and Stephen K. Jackson have developed
StupidModel: A Template Model for ABM Platforms.
The template model is implemented in five different platforms: NetLogo; RepastJ; MASON; Java Swarm; and Objective C Swarm. Although relatively simple, StupidModel includes many commonly used features of agent-based modeling (ABM) platforms. Sixteen versions of StupidModel are implemented for each platform, beginning with a bare bones version and ending with a relatively sophisticated version that involves two agent types,
a full agent life cycle (birth, reproduction, predation, and death), and a habitat with data read from an input file. Each implementation is made available as freeware with accompanying implementation notes. In addition, the authors include at this site a pointer to a paper titled
"Agent-Based Simulation Platforms: Review and Development Recommendations"
that reviews and compares the five ABM platforms and seeks to identify key development priorities both
for these specific ABM platforms and for ABM platforms in general.
Important Update to Railsback et al.
Alan G. Isaac, "The ABM Template Models: A Reformulation with Reference Implementations"
Journal of Artificial Societies and Social Simulation 14 (2) 5, March 2011. The author refines the Railsback et al. template models for agent-based modeling and offers new reference implementations. He also addresses some issues of design, flexiblility, and ease of use that are relevant to the choice of an agent-based modeling platform.
- Tutorials: Online Programming Language Tutorials
- An annotated list of tutorials and other online resources for over 100 different programming languages can be found
- UML for Agent-Based Modeling
- Hugues Bersini, "UML for ABM"
Journal of Artificial Societies and Social Simulation 15 (1) 9, January 2012.
Software and Toolkits Currently in Use by ACE Researchers
- Adaptive Modeler - Agent-Based Financial Market Simulation Platform (Proprietary, Microsoft .Net)
developed by Jim Witkam (Altreva, Inc.),
creates agent-based market simulation models for price forecasting of real world stocks, currencies or other market traded securities. The agent-based model simulates a financial market consisting of thousands of agents whose (technical) trading rules evolve through a special adaptive form of genetic programming. The evolution of trading rules combined with market pricing dynamics drives the agent population to learn to recognize and anticipate recurring price patterns while adapting to changing market behavior. Forecasts can be based on either the behavior of all agents or on a dynamic group of the best performing agents. For ACE researchers this application may be of interest to study the behavior and emergent predictive abilities of an agent-based market model that includes information from a real-world market. Several model initialization options are included such as a user configurable genetic programming engine for the creation of trading rules. Simulation of zero intelligence trading is also supported. Various population statistics and other data can be visualized in charts, distribution histograms and scatter plots, all in real-time. Data can be exported to CSV files for further analysis in other applications. A free (non-expiring) evaluation version with extensive documentation can be downloaded from the Adaptive Modeler homepage, above. Adaptive Modeler is targeted for Windows platforms and requires an installation of Microsoft .Net 2.0 or higher.
- AnyLogic - Multi-Paradigm Simulation Software (Java, Proprietary)
From the Software Homepage: "AnyLogic is the only simulation tool that supports process-centric (also called discrete event), system dynamics, and agent-based modeling approaches. The unique flexibility of the modeling language enables the user to capture the complexity and heterogeneity of business, economy and social systems at any desirable level of detail. AnyLogic set of primitives and library objects allows you to model manufacturing and logistics, business processes, human resources, consumers' and patients' behavior, as well as the environment (the "background") in their natural interaction. The object-oriented model design paradigm supported by AnyLogic provides for modular and incremental construction of large models." For general information about AnyLogic, including documentation, utilities, and pointers to research papers implemented with AnyLogic, visit
- Ascape (Java, Free Open Source)
(Agent Landscape) is a research tool for agent-based research developed by
Miles T. Parker, a former software engineer at the Brookings Institution.
Ascape is designed to be flexible and powerful, but also approachable, easy
to use and expressive. A high-level framework supports complex model design,
while end-user tools make it possible for non-programmers to explore many
aspects of model dynamics. It is written entirely in Java, and should run on
any Java-enabled platform. Models developed within it can be easily
published to the web for use with common web browsers. Ascape is now a full
open source release.
- A tutorial by Miles T. Parker on the design, development, and use
of Ascape, titled
"What is Ascape and Why Should You Care",
appears in the January issue of the electronic Journal of Artificial
Societies and Social Simulation, Volume 4 (Number 1), January 2001.
- Cormas: Software for Renewable Resource Management (Smalltalk,freely modifiable but distribution limited)
- From the
"Resource management systems are complex when common resources are exploited
by a number of users. Ecological dynamics are expressed at different levels,
i.e., individual, population, and community. Social dynamics are expressed
at the level of individuals or organizations. In renewable resource
management, the interactions between the dynamics of agriculture and resource
use must be taken into account. Computer modeling facilitates the
understanding of these interactions. ... Cormas is a multi-agent simulation
software for renewable resource management. It provides the framework for
building models of the interactions between individuals and groups using
- ECJ: Java Evolutionary Computation Toolkit (Java, Open Source)
is a research evolutionary computation system written in Java. It was designed to be highly flexible, with nearly all classes (and all of their settings) dynamically determined at runtime by a user-provided parameter file. All structures in the system are arranged to be easily modifiable. Even so, the system was designed with an eye toward efficiency. ECJ has been developed at George Mason University's ECLab Evolutionary Computation Laboratory. ECJ's sister project is MASON, a multi-agent simulation system which dovetails with ECJ nicely.
- Gambit: Game Theory Software (C++)
is a library of game theory software and tools for the construction and
analysis of finite extensive and normal form games currently maintained by
researchers at the Department of Economics, Texas A & M University.
Gambit includes a
graphical user interface, the Gambit Command Language, and a library of C++
source code for representing games, suitable for use in other applications.
All Gambit source code is freely available, licensed under the GNU General
- JABM: Java Agent-Based Modelling Toolkit
- From the developer (Steve Phelps, U of Liverpool): The
Java Auction Simulator (API)
has recently been ported to the
Java Agent-Based Modelling (JABM) Toolkit.
JABM includes functionality for visualising the dynamic trade networks that emerge when agents trade with each other in an order-driven market. A video of this visualisation can be found
Additional details about the JABM toolkit can be found in a working paper titled
"Agent-based modelling with the JABM toolkit".
- jES: Java Enterprise Simulator (Swarm, Java)
- Pietro Terna (Economics, University of Torino, Italy) has developed
the Swarm-based Java Enterprise Simulator (jES). The aim of jES is to
permit the construction of simulation models for both actual and virtual
enterprises (firms). The simulator can model either a single enterprise or a
system of enterprises (e.g., within a district or within a virtual enterprise
system). The latest version of jES, together with complete user
instructions, can be found
- Lsd: A Simulation Framework for Evolutionary Modeling (C++; Open Source)
Laboratory for Simulation Development (Lsd)
has been developed by Marco Valente (University of L'Aquila) for evolution
simulation modeling, as exemplified by the famous Nelson-Winter (1982) model
of Schumpterian competition in an industry or economy. Current Lsd
applications take a systems dynamics (difference/differential equations)
approach using replicator dynamics rather than a bottom-up agent-based
approach, but the underlying use of C++ suggests that a more agent-based
approach might also be possible. For an extended discussion of Lsd, see: M.
Valente and E.S. Anderson, "A Hands-On Approach to Evolutionary Simulation:
Nelson-Winter Models in the Laboratory for Simulation Development," The
Electronic Journal of Evolutionary Modeling and Economic Dynamics, No.
1003, Issue 1, January 15, 2002.
- MASON: Multi-Agent Simulator (Java, Open Source)
- The George Mason University Evolutionary Computation Laboratory and
Center for Social Complexity manages the development of the
MASON multiagent simulation toolkit.
MASON includes both a model library and an optional suite of visualization tools in 2D and 3D.
MASON is a joint effort between George Mason University's ECLab (Evolutionary
Computation Laboratory) and the GMU Center for Social Complexity, and was
designed by Sean Luke, Gabriel Catalin Balan, and Liviu Panait, with help
from Claudio Cioffi-Revilla, Sean Paus, Daniel Kuebrich, and Keith Sullivan.
A SwarmFest04 presentation on MASON can be accessed
- MATLAB (Proprietary)
- MATLAB is a high-performance language for technical computing.
Information about MATLAB can be obtained at the
An extensive list of
Online MATLAB Resources
has also been compiled by Jerod Parker of George Mason University. Warren
Thorngate has an article titled
Teaching Social Simulation with MATLAB
that appeared in the online Journal of Artificial Societies and Social
Simulation, Volume 3, No. 1, 2000. In this article, Thorngate explains
why MATLAB is his programming language of choice for teaching simulation
programming techniques to students new to simulation. A series of
prepared by members of the Department of Mathematics at Southern Illinois
University at Carbondale are also available online.
- Moduleco: Multi-Agent Social Simulation (Java; Open Source)
is an object-oriented modular framework designed to simulate multi-agent
social phenomena such as markets, organizations, network effects, and
population dynamics. The developers are Denis Phan and Antoine Beugnard.
For more information, including downloadable applications and bibliographical
information, visit the Moduleco website above.
- NetLogo (Multi-Platform, Freeware)
a descendant of StarLogo (see below), is a multi-platform general purpose
complexity modeling and simulation environment from the Center for Connected
Learning and Computer-Based Modeling (CCL), Northwestern University,
Evanston, Illinois. NetLogo comes with a large library of sample models and
code examples that help beginning users get started authoring models. NetLogo
is in use by research labs and university courses across a wide variety of
domains in social and natural sciences. A free download plus a users'
guide can be obtained at the above NetLogo website.
- Repast (Java, Python, VB, .Net, C++, J#, C#, HPC; Open Source)
- Repast (REcursive Porous Agent Simulation Toolkit) is an agent-based
simulation toolkit specifically designed for social science applications.
Originally developed by researchers at the University of Chicago and the
Argonne National Laboratory, Repast is now managed by the non-profit
volunteer organization ROAD (Repast Organization for Architecture and
Development). Repast has been released in
the following versions: RepastJ (Java based); RepastPy
(based on the Python scripting language); Repast.Net (implemented in C#, but any .Net language
can be used); Repast S (Simphony, Java-based); and Repast HPC (high performance computing).
Repast runs on virtually all modern computing platforms (e.g., Windows, Mac OS, and Linux).
The latest Repast releases, along with detailed technical information regarding the
installation and use of RePast, can be found at the
RePast Sourceforge Website.
- Leigh Tesfatsion (Economics, Iowa State University, Ames, IA) has
RePastJ Self-Study Guide
to help newcomers get started programming with RepastJ (Repast for Java) in a Java Integrated
Development Environment. Topics covered
include: Introduction to Agent-Based Modeling; Introduction to Agent-Oriented Programming;
Introduction to Java; Getting Acquainted with RePastJ; Programming with RePastJ; and Possible RePastJ
Modeling Application Areas. Extensive links are provided to on-line
resource materials. Although some prior programming experience is desirable,
the study guide does not presume such experience.
- SDML: Strictly Declarative Modeling Language (SmallTalk; Open Source for non-commercial)
Strictly Declarative Modeling Language (SDML)
is a modeling language implemented in SmallTalk by Steve Wallis in consultation with other members of the
Centre for Policy Modeling
at the Manchester Metropolitan University. Founded in 1992 by Scott Moss, the Centre stesses computational multi-agent modeling of decision-making in
complex environments, with a focus on strategic behavior by corporate
managers and government.
- As detailed at the main SDML site (above), SDML is available without
charge for use in academic research. Discussion papers and a
tutorial describing SDML and its applications are also available at
- The learning curve for SDML can be very steep; a
background in functional (e.g., LISP) and declarative
(e.g., PROLOG) languages takes one a long way up this
- The Centre for Policy Modeling collaborates with a number
of research groups in Europe who use SDML -- e.g., at Namur
in Belgium, Paris, and Munich.
- SimBioSys: A C++ Framework for Agent-Based Evolutionary
Simulations (Open Source)
- SimBioSys is a C++ class framework developed by David McFadzean (Master's Thesis,
University of Calgary, 1995) for general agent-based evolutionary simulations
in both biology and the social sciences. SimBioSys is designed to support
simulations comprising the following four features:
source code zip file (32K)
for the entire SimBioSys class framework have been released by David McFadzean
(the copyright holder) as freeware
under the terms of the
Artistic License Agreement.
- A world defining the virtual environment where the
- Populations of autonomous agents inhabiting the
- Programs driving the behavior of the agents;
- Genetic mechanisms emulating natural selection
which act on the agents' programs.
- SME: Spatial Modeling Environment (No programming required, runs on Unix; LGPL open source)
- Thomas Maxwell, Ferdinando Villa, and Robert Costanza, all
with the International Institute for Ecological Economics (Center
for Environmental Science, University of Maryland System), have
developed an integrated environment for high-performance spatial
modeling called the
Spatial Modeling Environment (SME).
From the SME home page: "This environment, which transparently links
icon-based modeling environments with advanced computing resources, allows
modelers to develop simulations in a user-friendly, graphical environment,
requiring no knowledge of computer programming. Automatic code generators
construct (spatial) simulations and enable distributed processing over a
network of parallel and serial computers, allowing transparent access to
state-of-the-art computing facilities. The environment imposes the
constraints of modularity and hierarchy in model design, and supports
archiving of reusable model components defined in our Modular Modeling
- Sociodynamica: Human Societies as Viewed by Adam Smith
- Karl Jaffe (Universidad Simón Bolívar, Caracas, Venezuela) has developed a software package titled
for the simulation of human societies as viewed by Adam Smith in The Wealth of Nations.
To install Sociodynamica on your computer, download the zipped package PackSociodyn.zip from
the above site. Expand the files and run Setup.exe which should guide you through the installation process.
Once installed, the program will be available through your initial menu. When running it for the first time,
you have to load a Demo file by activating the menu of ¨NewFiles¨ and choosing a file.
The Help (or ?) menu will give you further guidance. It also contains the computer code used.
Questions can be addressed to
kjaffe AT usb.ve
- StarLogo (Extended Logo language; Freeware with closed source)
is a programmable modeling environment for exploring the workings of
decentralized systems that has been specifically designed to be user-friendly
for K-12 students. StarLogo can be used to model many real-life phenomena
such as bird flocks, traffic jams, ant colonies, and simple market economies.
Extensive support materials for StarLogo (tutorials, demos, users discussion
group,...) are provided at the StarLogo website.
- StarlogoT (StarLogo TNG language; Freeware with closed source)
an extension of Starlogo available only for the Macintosh, is a programmable
modeling environment for building and exploring multi-level agent-based
systems. StarlogoT is designed for use by students and is released free of
charge by the Center for Connected Learning and Computer-Based Modeling at
Northwestern University, Evanston, Illinois. StarlogoT is one of a class of
new "object-based parallel modeling languages" (OBPML). StarlogoT allows the
user to control the behavior of thousands of objects in parallel. Each object
has its own variable and state. This allows the user to model the behavior of
distributed and probabilistic systems, often systems that exhibit complex
- SimX (C++, Python, Open Source)
is a GitHub-hosted library for developing parallel, discrete-event, distributed-memory simulations in Python. SimX is written primarily in C++ and provides the simulation modeler with the core functionality needed in a parallel simulation library, such as event queueing, time advancement, domain partitioning, synchronization, object serialization, and message passing. SimX APIs are exposed to Python, enabling rapid development and protyping of a parallel simulation entirely in Python. SimX is free software, available under the GNU LGPL license.
- Swarm Simulation System (Objective C, Open Source)
is essentially a collection of software libraries, written in
Objective C, developed by researchers at the Santa Fe Institute for
constructing discrete event simulations of complex systems with heterogeneous
elements or agents. Some lower-level libraries, which interface with
Objective C, are also written in Tk, a scripting language that implements
basic graphical tools such as graphs, windows, and input widgets. At the time of this writing (May 2013), Swarm appears to be no longer supported.
- TNG: A C++ Framework for Studying the Formation and
Evolution of Trade Networks (Open Source)
The Trade Network Game (TNG), implemented (open-source) in C++, combines
evolutionary game play with preferential partner selection. Successive
generations of resource constrained traders choose and refuse trade partners
on the basis of continually updated expected payoffs, engage in risky trades
modeled as two-person games, and evolve their trade strategies over time.
The modular design of the TNG framework facilitates experimentation with
alternative specifications for market structure, trade partner matching,
expectation formation, and trade strategy evolution. The TNG framework can
be used to study the evolutionary implications of these specifications at
three different levels: trade network formation (who is trading with whom,
and with what regularity); behaviors expressed by traders in trade partner
relationships; and social welfare outcomes. The TNG source code and manual,
together with research articles related to the TNG, can be obtained at the
TNG Home Page.
- Vensim: System Dynamics Modeling (Proprietary, Freeware Learner's Edition)
- Ventana Systems, Inc., of Harvard, Massachusetts, was formed
in 1985 for the purpose of developing large-scale simulation models
that integrate both business and technical elements to solve
difficult management problems. Ventana Systems now supports its own
simulation language, called
From the Vensim home page: "Vensim is used for developing,
analyzing, and packaging high quality dynamic feedback models.
Models are constructed graphically or in a text editor. Features
include dynamic functions, subscripting (arrays), Monte Carlo
sensitivity analysis, optimization, data handling, application
interfaces, and much more. ... Vensim PLE (Personal Learning
Edition) is software that gets you started in system dynamics
modeling and is free for educational use and inexpensive for
commercial use. Vensim PLE is ideal for classroom use and personal
learning of system dynamics."
- Z-Tree (Freeware)
Z-Tree (Zurich Toolbox for Readymade Economic Experiments),
developed at the Institute for Empirical Research in Economics at
the University of Zurich, Switzerland, is a user-friendly software
package that permits users with little programming knowledge to
develop and carry out economic experiments. The software permits
communication between computers, data saving, time display, profit
calculations, and tools for screen layout. It can be used for a
wide range of experiments, including public good experiments,
structured bargaining experiments, and market experiments (e.g.,
double auctions and Dutch auctions). Z-Tree can be licensed and
downloaded free of charge, along with a manual, and interested
parties can join a users' mailing list.
Software and Toolkits for General ABM/CAS Modeling
- ABLE Framework (Java, Open Source)
- The Agent Building and Learning Environment (ABLE),
a project made available by the IBM T. J. Watson Research Center, is
a Java framework, component library, and productivity toolkit for
building intelligent agents using machine learning and reasoning.
The ABLE framework provides a set of Java interfaces and base
classes used to build a library of JavaBeans called AbleBeans. The
library includes AbleBeans for reading and writing text and database
data, for data transformation and scaling, for rule-based inference
using Boolean and fuzzy logic, and for machine learning techniques
such as neural networks, Bayesian classifiers, and decision trees.
Developers can extend the provided AbleBeans or implement their own
custom algorithms. ABLE runs on any platform supporting Java 2.
For more information, visit
- ACT-R: Cognitive Architecture (Lisp)
- From the ACT-R Research Group (Department of Psychology, Carnegie Mellon
University): "ACT-R is a cognitive architecture: a theory about how human
cognition works. On the exterior, ACT-R looks like a programming language;
however, its constructs reflect assumptions about human cognition. These
assumptions are based on numerous facts derived from psychology experiments.
Like a programming language, ACT-R is a framework: for different tasks (e.g.,
Tower of Hanoi, memory for text or for list of words, communication, aircraft
controlling), researchers create models (aka programs) that are written in
ACT-R and that, beside incorporating the ACT-R's view of cognition, add their
own assumptions about the particular task. These assumptions can be tested
by comparing the results of the model with the results of people doing the
same tasks. ... One important feature of ACT-R that distinguishes it from
other theories in the field is that it allows researchers to collect
quantitative measures that can be directly compared with the quantitative
measures obtained from human participants." For more information, visit
- Agent Analyst: Agent-Based Modeling in ArcGIS
is open-source agent-based modeling software compatible with
a comprehensive system for working with maps and geographic information. An Agent Analyst workbook is freely downloadable from the above Agent Analyst site. The workbook provides step-by-step exercises, written by agent-based modeling experts, that demonstrate how to create agent-based models in ArcGIS Desktop 10 using points, polygons, rasters, and representative networks, and how to create, manipulate, and schedule actions and fields.
- AgentBuilder: Agent Construction Tools (KQML,Java,C,C++; Proprietary)
provides an extensive annotated collection of pointers to agent construction
tools. The tools are categorized as either commercially available products
or academic and research projects. A brief summary is provided for each tool
as well as a link to the provider's product description.
- AMP: Agent Modeling Platform (Visual/Test-Based Languages, Open Source)
Agent Modeling Platform (AMP)
developed by eclipse.org provides extensible frameworks and exemplary tools for representing, editing, generating, executing, and visualizing agent-based models and any other domain requiring spatial, behavioral, and functional features.
- AgentSheets: Interactive Simulations (Java, Proprietary)
- AgentSheets is an authoring tool for building interactive simulations
in Java. Key features stressed by the providers include: speed; no players
or plug-ins; school hardware/software friendly; highly interactive; rich
multimedia support; and collaborative support. For more information, visit
Two articles that review the use of AgentSheets for teaching simulation to
social science students can be found in Issue 3/3 (June 2000) of the online
Journal of Artificial Societies and Social Simulation.
- Alife Software
- See the
Alife software links
maintained by the International Society for Artificial Life (ISAL).
- BlueJ: Interactive Java Environment
From the development team (Monash University, Australia, and Maersk
Institute, University of Southern Denmark): "The BlueJ environment was
developed as part of a university research project about teaching
object-orientation to beginners. ... The aim of BlueJ is to provide an
easy-to-use teaching environment for the Java language that facilitates the
teaching of Java to first year students. Special emphasis has been placed on
visualization and interaction techniques to create a highly interactive
environment that encourages experimentation and exploration." For more
- Boids Algorithm: Coordinated Animal Motion (Multiple Third-Party Programs)
model developed by Craig Reynolds illustrates coordinated animal motion, such as bird flocks and fish schools. The
software implementing this model is called the Boids algorithm.
- Brahms: Multi-Agent Discrete-Event Simulation (Java-based, freely available for research purposes)
- From the developers:
developed by the Brahms Team in the Computational Sciences Division at the NASA Ames Research Center,
is a multi-agent discrete-event simulation environment. It is also an Agent-Oriented Language for implementing real-time distributed agents. There is an agent language construct that can inherit from multiple group constructs. This permits the modeling of teams of agents either interacting in one model or distributed over multiple models. Agents are belief-based (BDI) activity-oriented, and both deliberative and reactive. Besides agents, the Brahms language also includes constructs for objects and object-class inheritance for modeling of data objects and real world artifacts. Agents and objects are located in a conceptual geography model, enabling agent and object movement in this geography. The Brahms byte-code is XML, which is interpreted by the Brahms Virtual Machine. Each Brahms agent executes in a separate Java thread using a subsumption-based activity and rule execution engine. Multiple Brahms Virtual Machines can interact together via a network using a message- and directory-based communication layer. Agents can publish themselves and locate others on a network, using a distributed directory service. Agents interact via a message-based communication layer that can be based on any low-level communication protocol, such as Corba, UDP, TCP/IP, SOAP."
- Brahms can be downloaded at
Tutorial on Brahms
is also available.
- Breve: 3-D Simulation Environment (Python, special OOP language "Steve"; Open Source)
is a free software package that provides a 3-D environment for the simulation
of decentralized systems and artificial life. Users define the behaviors of
agents in a 3-D world and observe how they interact. Breve includes physical
simulation and collision detection for the simulation of realistic creatures,
and an OpenGL display engine so that users can visualize their simulated
worlds. It is available for Mac OS X, Linux, and Windows platforms.
- Cellular Automata Lab (CelLab)
- From the CelLab User Guide: "The first edition of
was developed by Rudy Rucker and John Walker in 1988 and 1989 when both were
working in the Autodesk research lab... Celab allows you to explore cellular
automata on your own personal computer, running under MS-DOS or Windows. You
can define your own rules by writing short programs in Java, C, BASIC, or
Pascal, create patterns of cells and color palettes, then run the rule and
observe its evolution on the screen. We supply a wide variety of
ready-to-run rules, simulating processes as varied as heat flow, diffusion of
gases, annealing of metal, behavior of tubeworms on the ocean floor, chemical
reactions, and ecosystems of artificial life. Complete source code for all
of these rule definitions in included in both Java and Pascal, allowing you
to use our rule definitions as the point of departure for your own
experiments. Advanced users can customize the cellular automata simulator by
writing custom evaluators in assembly language for DOS or Windows, or as a
DLL written in C for the Windows-based simulator." Rudy Rucker is Professor
of Mathematics and Computer Science at San Jose State University. John
Walker is founder and former president of Autodesk, Inc.
- Cougaar (Java, Open Source)
is java-based software for facilitating the development of agent-based
applications that are complex, large-scale, and distributed. The software
includes not only the core architecture but also a variety of demonstration,
visualization, and management components. It was developed as part of a
multi-year DARPA research project into large scale agent systems.
- deX (C++, special Python-based modeling language; Freeware)
is an object-oriented C++ framework for developing, analyzing, and visualizing dynamic
agent-based and multi-body simulations. deX is built on top of a high-performance simulation engine designed to handle a large number of entities with high levels of event communication. deX includes tools for batch execution, optimization, distributed job execution, GUI controls, and real-time plotting/3D visualization using OpenGL.
- Echo: Ecological Modeling (C; free open source, no longer maintained)
is a simulation framework developed originally by John Holland and Terry
Jones at the Santa Fe Institute to investigate mechanisms which regulate
diversity and information-processing in complex adaptive systems, i.e.,
systems comprised of many interacting adaptive agents. Echo agents interact
via combat, mating, and trade to develop strategies for ensuring survival in
resource-limited environments. The result is complicated networks of
interactions and resource flows that resemble species communities in
ecological systems. The existing implementation of Echo runs on UNIX
workstations and is available via ftp in a
tarred compressed file (1085K),
together with a
documentation file (107K)
by Terry Jones. See, also, a paper by Stephanie Forrest and Terry Jones
titled "Modeling Complex Adaptive Systems with Echo" that appeared in
Complexity International, Volume 2, 1995.
- Erlang: General Purpose PL for Distributed Applications
is a general purpose programming language and run-time environment designed
at Ericsson, a telecommunications company active in more than 140 countries
that specializes in mobile phones and other communications tools. Erlang has
built-in support for concurrency, distribution, and fault-tolerance, features
critical for multi-agent applications. Open-source Erlang, in use in a
number of Ericsson products, is being released free of charge to help
encourage the spread of Erlang outside of Ericsson.
- Extreme Programming
- Don Wells maintains a site titled
Extreme Programming (XP): A Gentle Introduction.
XP is a deliberate and disciplined approach to software developement that
stresses customer involvement and team work, following simple rules and practices.
Another important issue emphasized by XP is not just testing, but testing well.
Tests are automated and provide a safety net for programmers and customers alike.
Tests are created before the code is written, while the code is written,
and after the code is written. About eight years old, XP has been adopted at many
variously sized companies and industries worldwide.
This site provides a guided tour of XP.
- Genetic and Evolutionary Algorithm Toolbox (MATLAB, Proprietary)
- Paraphrased from the announcement: The
Genetic and Evolutionary Algorithm Toolbox (GEATbx)
for use with MATLAB is a powerful and widely applicable optimization tool
using evolutionary algorithms. It is a fully integrated environment that
runs on any MATLAB-supported platform (requires MATLAB 4.2 or 5.x).
- GoldSim: Monte Carlo Simulation Software for Decision and Risk Analysis (Proprietary)
is Monte Carlo simulation software for dynamically modeling complex systems in business, engineering, and science. GoldSim supports decision and risk analysis by simulating future performance while quantiatively representing the uncertainty and risks inherent in all complex systems.
- JADE: Java Agent Development Framework (Java, Open Source)
- From the developers: "
JADE (Java Agent DEvelopment Framework)
is a software framework fully implemented in the Java language. It
simplifies the implementation of multi-agent systems through a middle-ware
that claims to comply with the FIPA specifications and through a set of tools
that supports the debugging and deployment phase. The agent platform can be
distributed across machines (which do not even need to share the same OS) and
the configuration can be controlled via a remote GUI. The configuration can
be even changed at run-time by moving agents from one machine to another one,
as and when required. JADE is completely implemented in the Java language
and the minimal system requirement is version 1.2 of JAVA (the run time
environment or the JDK). ... JADE is free software and is distributed by
TILAB, the copyright holder, in open source software under the terms of the
LGPL (Lesser General Public License Version 2)."
- JAS: Java Agent-Based Simulation Library (Java, Open Source)
- JAS is a simulation toolkit specifically designed for agent-based simulation modeling. JAS is a Java-clone of the Swarm library orginally developed by researchers at the Santa Fe Institute. The core of the JAS toolkit is its simulation engine based on the standard discrete-event simulation paradigm, which allows time to be managed with high precision and from a multi-scale perspective. Many features of JAS are based on open-source third party libraries. JAS is freely available from the
JAS Sourceforge site.
- Jason: Version of AgentSpeak (Java-based, freely available)
is a fully-featured freely-available Java-based interpreter for an extended version of AgentSpeak,
a programming language for multi-agent systems. Jason is based on the BDI agent architecture
and provides the features of complex PRS-style reactive planning systems. For additional
information about Jason, see the following 2007 book from John Wiley:
Programming Multi-Agent Systems in AgentSpeak Using Jason.
- Java Tutorial Online (Java/Sun)
Java Tutorial: A Practical Guide for Programmers,
maintained by Sun Microsystems, Inc., is a practical online guide for
programmers with hundreds of complete working examples and numerous pointers
to basic information (running your first program, getting started, learning
the Java language, etc.). The tutorial is organized into groups of basic and
specialized lessons on various subjects: for example, getting started with
Java; writing applets; essential Java classes; creating a GUI with JFC/Swing;
custom networking; 2D graphics; and Java Beans. Hundreds of full working
examples are included in these lessons.
- JCASim: Cellular Automata Simulation System (Java)
- From the developer (Joerg Richard Weimar, Institute of Scientific
Computing, Technical University Braunschweig): "The program system JCASim is
a general-purpose system for simulating cellular automata in Java. It
includes a stand-alone application and an applet for web presentations. The
cellular automata can be specifed in Java, in CDL, or using an interactive
dialogue. The system supports many different lattice geometries (1-D, 2-D
square, hexagonal, triangular, e3-D), neighborhoods, boundary conditions, and
can display cells using colors, text, or icons." For more information, visit
- JESS: Java Expert System Shell (Java; Proprietary, free for academic use)
- From Sandia National Laboratories:
is a rule engine and scripting environment written entirely in Sun's Java
language by Ernest Friedman-Hill at Sandia National Laboratories in
Livermore, California. Jess was originally inspired by the CLIPS
expert system shell, but has grown into a complete, distinct Java-influenced
environment of its own. Using Jess, you can build Java applets and
applications that have the capacity to `reason' using knowledge you supply in
the form of declarative rules."
- Joone: Neural Network Framework (Java, Open Source)
- From the development team: "Joone is a neural net framework written in
Java. It's composed by a core engine, a GUI editor and a distributed
training environment. Can be extended writing new modules to implement new
algorithms or new architectures starting from base components." For more
- JUNG: Java Universal Network/Graph Framework (Java, Open Source)
- Jung (Java Universal Network/Graph Framework) is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network. It is written in Java, which allows JUNG-based applications to make use of the extensive built-in capabilities of the Java API, as well as those of other existing third-party Java libraries. JUNG is freely available from the
JUNG Sourceforge site.
- LEDA: Graph and Network Problems
(distributed by Algorithmic Solutions Software GmbH, Saarbruecken, Germany)
is a C++ class library for efficient data types and algorithms. LEDA
provides algorithmic in-depth knowledge for graph and network problems,
geometric computations, combinatorial optimization, and other applications.
LEDA is implemented following the object-oriented approach. It is available
in four different packages: basic, graph, geometry, and GUI. In addition, it
is available for many different operating systems and compilers.
- Linux Documentation Project
- The Linux Documentation Project is maintained by a team of developers and
volunteers in a variety of languages. The extensive resources provided at
this site include: news items; specific-subject help; book pointers; answers
to frequently asked questions; help on individual commands; and online
magazine links. For more information, visit
- Linux Agent-Based Software Development Tools
Linux AI/Alife Mini HowTo
website, maintained by John A. Eikenberry, provides pointers to an
extensive repository of downloadable tools for the development of
agent-based software applications. Specific topics covered at this
website include languages, traditional artificial intelligence,
connectionism, evolutionary computing, agents and bots, and
artificial life and complex systems.
- MadKit (Java; Open source for development and non-commercial purposes)
- From the development team: "Madkit is a Java programming environment
dedicated to the creation of multi-agent systems. It is oriented towards
communication between distributed systems. It is built upon an
organizational model based on Agents, Groups, and Roles: an organization is
viewed as a framework for activity and interaction through the definition of
groups, roles, and their relationships. But, by avoiding an agent-oriented
viewpoint, an organization is regarded as a structural relationship between a
collection of agents. Thus, an organization can be described solely on the
basis of its structure, i.e., by the way groups and roles are arranged to
form a whole, without being concerned with the way agents actually behave,
and multi-agent systems will be analyzed from the `outside,' as a set of
interaction modes. The specific architecture of agents is purposely not
addressed. Madkit provides general agent facilities (lifecycle management,
message passing, distribution,...), and allows high heterogeneity in agent
architectures and communication languages, and various customizations." For
more information, visit
- MAS-SOC: Agent-Based Social Science Simulation (AgentSpeak; available from authors)
- A group of authors has developed a platform for multi-agent based social simulation (MAS-SOC),
building on recent progress in the area of agent-oriented programming languages. The approach
taken to building multi-agent based simulations includes the use of Jason (an interpreter for
an extended version of AgentSpeak) and ELMS (a language for modeling environments with
situated cognitive agents). For more information, see their June 2005 JASSS article titled
"MAS-SOC: A Social Simulation Platform Based on Agent-Oriented Programming".
- MASS: Multi-Agent Simulation Suite (Specialized Language, Free)
- AITIA International Inc. has publicly released
a multi-agent simulation suite for writing agent-based and participatory simulations, creating visualizations and experiments, and analyzing simulation data. MASS includes four key components: FABLES (Funtional Agent-Based Language for Simulations); CP (Charting Package); MEME (Model Exploration Module); and PET (Participatory Extension). The components of MASS are integrated, but behind the scenes they interact via a central "simulation core". In the first public release of MASS, this simulation core is Repast J, meaning that all FABLES models are compiled with Repast J.
- The MathWorks, Inc., supports a free technical computing portal
that provides extensive annotated links to programming tools (MATLAB, Java,
Excel, C/C++, Fortran, ...), application areas, and learning and educational resources.
- Modelling4All (web-based tool)
is a web-based tool designed to support teachers, learners, and researchers, including those with little or no programming experience, to construct, run, visualize, analyze, and share agent-based models. The main goal of the Modelling4All Project, based at the University of Oxford, is to provide social support for computer modeling by non-experts.
- Multimedia Programming Environment (Windows and Macintosh)
- MicroWorlds Pro (Macintosh OS) and MicroWorlds Ex (Windows and Mac OS X) allow students to create dynamic, interactive school and Internet projects. It lets students become active web designers not just passive web viewers. Teachers and
students can use MicroWorlds Pro and Ex to enhance their understanding of MicroWorlds and to get a real sense of the depth and breadth of this powerful multimedia programming environment. For more
- NASA: Nonlocal Automated Sensitivity Analysis (Fortran; Open Source)
(Nonlocal Automated Sensitivity Analysis) is a
Fortran program for tracking solution branches x(b) of parameterized
nonlinear systems H(x,b)=0 over user-designated paths for the parameter
b. The NASA program incorporates an "adaptive homotopy" smart-agent method for
automated initialization as well as a fast and efficient algorithm FEED for
automatic derivative evaluation. The NASA program is provided as open-source
software under the terms of an Artistic License Agreement.
- Neural Network Toolbox
- The Mathworks, Inc., has released version 4.0.1 of its Neural Network
Toolbox (NNT) for the design and use of artificial neural networks in various
practical application settings (e.g., banking and finance, business, credit
card activity checking, defense, engineering, electronics, entertainment,
industrial, insurance, manufacturing, medical, oil and gas, robotics, speech,
securities, telecommunications, and transportation). A printable version of
the NNT user's guide is available online in pdf format that provides an
introduction to neural networks, help with NNT installation, a discussion of
NNT capabilities, and sample applications. For more information, visit
- ORA: Social Network Analysis Tool
- News item paraphrased from announcement by Ram Murali
(firstname.lastname@example.org): ORA is a social network analysis tool that
enables the user to simultaneously reason about multiple networks
connecting people, knowledge, resources, and tasks (or events).
Both traditional and dynamic network measures are included. ORA can
be used for risk assessment to locate individuals that are potential
risks to the group or organization given one or more of the
following types of relational or network information: social;
knowledge; resource; and task/event. The GUI is used to set up
organization(s) and perform two broad functions: run risk measures
on the organization(s); and optimize the organizational structure.
ORA is supported by CASOS, the Center for Computational Analysis of
Social and Organizational Systems at Carnegie Mellon University
directed by Kathleen M. Carley. For more information, visit
- Petri Nets
- Petri Nets is a graphical language appropriate for
modeling systems with concurrency. It has been under development
since the nineteen sixties, when Carl Adam Petri first formally
defined the Petri Nets language. It is a generalization of automata
theory in which the concept of concurrently occurring events can be
Petri Net World Website
provides a variety of online services and source materials for the
international Petri Nets community. These include introductory materials,
tools and software packages which support Petri Nets, applications of Petri
Nets, mailing lists, publications, newsletters, and conference information.
- PS-I (Java, Python, VB, .Net, C++, J#, C#; Open Source)
- Description paraphrased from the
PS-I Sourceforge Website:
PS-I (Political Science-Identity) is an agent-based modeling platform
developed by Ian Lustick (Political Science, U of Pennsylvania)
and Vladimir Derhachev (now with mindspring.com). The intent was to make
available to political and other social scientists with no
programming background a user-friendly computational environment for
exploring political phenomena. PS-I is cross-platform, with
binaries available for Win32. Features include: declarative language for
model specification; industry standard Tcl/Tk scripting; built-in routine
optimization, speculative evaluation, and xf86 JIT compiler that permit the
creation of complex models without sacrificing performance; user-friendly
interface; ability to save and restore program runs; ability to change model
parameters on the fly; and data visualization.
- PyABM: An Open Source ABM Toolkit (Python)
is an open source (GPL licensed) toolkit aiming to simplify the programming and analysis of agent-based models written in the Python programming language. The toolkit aims to standardize model and scenario development, ensuring documentation and
repeatability of model results. PyABM development is ongoing.
- Python Language
- From the official Web site for the Python Language: "Python is
an interpreted, interactive, object-oriented programming language. It is
often compared to Tcl, Perl, Scheme, or Java. Python combines remarkable
power with very clear syntax. It has modules, classes, exceptions, very high
level dynamic data types, and dynamic typing. ... The Python implementation
is portable: it runs on may brands of UNIX, on Windows, DOS, OS/2, Mac,
Amiga... " For more information, visit the
Python Home Page.
- R: Statistical Computing and Graphics
R is an open source programming environment with a broad user base in statistics and econometrics. It contains powerful graphing functions and a vast array of statistical routines. There are over 1000 add-on packages available; the ease of package development is the reason that new statistical methods tend to appear in R before other packages. Simple agent-based models can be programmed using vector-processing functions. Loops are available, but slow because R is interactive and does not compile code. R links into compiled C++ (or C or Fortran or Java) code, and can be called from other languages.
For more information, visit the
Executables and open source code for Linux, Windows and MacOS can be downloaded and installed quickly from the
Comprehensive R Archive Network (CRAN);
check "Mirrows" on the CRAN menu for a site near you.
- SeSAM (Java VM; LGPL open source)
SeSAm (Shell for Simulated Agent Systems) provides a generic environment for modelling and experimenting with agent-based simulation. The goal of the developers is to provide a tool for the easy construction of complex models exhibiting dynamic interdependecies or emergent behavior.
- SimAgent Toolkit (Pop-11 PL; Open Source)
- From the developer (Aaron Sloman, School of Computer
Science, University of Birmingham, UK): "The
was developed within the Cognition and Affect Project at the University
of Birmingham, UK. ... From our work exploring architectural design
requirements for intelligent human-like agents, and other kinds, we
need a facility for rapidly implementing and testing out different
agent architectures, including scenarios where each agent is
composed of several different sorts of concurrent interacting
sub-systems, in an environment where there are other agents and
objects. Some agents should have sensors and effectors, and some
should be allowed to communicate with others. Some agents should
have hybrid architectures including, for example, symbolic
mechanisms communicating with neural nets. We also wanted to be
able to use the toolkit for exploring evolutionary processes...
As a result... a set of ideas for (the SimAgent Toolkit)
emerged. The first draft was made available in October 1994 and
since then there have been many extensions. ... The Toolkit uses the Pop-11
language in the Poplog software development environment." A detailed
description of the SimAgent Toolkit, some uses of the Toolkit, and the
Toolkit itself can be found at the SimAgent Toolkit Website.
- SimulAIt (Licensed Software Tool)
A team directed by Dr. Don Perugini at the Intelligent Software Development Pty Ltd (Mawson Lakes, South Australia) has developed a behavioural socio-economic simulation platform called
The platform is based on cognitive agents (a technology used by Perugini in the department of defence for over 10 years). They have applied this technology to water trading, water pricing, water rebates, water restrictions, and for analysing competition between firms (in collaboration with Professor Steve Keen from the University of West Sydney). White papers, a research paper and other documents can be obtained at the above website. The team has won innovation awards for the application of this technology to the water industry.
- Software Tools for Discrete Dynamical Networks Research
- Andy Wuensche (Santa Fe Institute, New Mexico) has developed a
Discrete Dynamics Lab Web site
that provides software tools for researching discrete dynamical networks,
including cellular automata and random Boolean networks. These software
tools are provided as free shareware for personal non-commercial users for
running on UNIX/XWindows/Sun, Linux/PC, and DOS/PC platforms.
- Virtual Reality Modeling Language (VRML)
- From Bob Crispen, the developer of the
"The 3D Web is here. The technology that's making it happen today is Virtual
Reality Modeling Language (VRML). You can get started on the 3D Web right
now. That's what the VRMLworks is here for -- from picking a free browser,
to visiting some of the worlds and virtual communities on the Web, to
building your own worlds, to populating those worlds with free 3D models, to
books, tutorials, tools, and resources, the VRMLworks is here to help."
- Virtual Reality Toolbox (MATLAB and Simulink)
Virtual Reality Toolbox,
from The MathWorks, is a solution for visualizing and interacting with
dynamic systems in a 3-dimensional virtual reality environment. These
dynamic systems are described with MATLAB (a language for technical
computing) and Simulink (model-based and system level design).
- ZEUS (Visual editors and code generators; Open Source)
developed by British Telecommunications (BT), provides a library of software
components and tools that facilitate the rapid design, development, and
deployment of agent systems. The three main functional components of the
ZEUS toolkit are an agent component library, agent building tools, and
Copyright © Leigh Tesfatsion. All Rights Reserved.