General Software and Toolkits
Agent-Based Computational Economics (ACE),
Agent-Based Modeling (ABM),
and Complex Adaptive Systems (CAS)
- Last Updated: 6 January 2025
- Site Developed By:
-
Leigh Tesfatsion
- Professor Emerita of Economics
- Courtesy Research Professor of
- Electrical & Computer Engineering
- Heady Hall 260
- Iowa State University
- Ames, Iowa 50011-1054
- https://www2.econ.iastate.edu/tesfatsi/
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
ACE/CAS Computational Laboratories and Demonstration Software.
-
Site and Software Release Disclaimer:
-
Unfortunately, many links to excellent ACE/ABM/CAS software resources originally posted at this site are now broken and had to be removed. Below are annotated links to still-available software resources that visitors might find useful and/or of historical interest. These software resources are provided
as-is, without warranty of any kind, unless otherwise specified by the provider.
Introductory Materials
-
Introduction to Object-Oriented Programming
-
Matt Weisfeld, The Object-Oriented Thought Process, Developer's Library Series, Fourth Edition 2013 (or latest edition), Addison-Wesley, ISBN-13: 978-0321861276.
- Abstract: Agent-based modeling is increasingly being implemented using Object-Oriented Programming (OOP) languages, such as Java and Python. This book is a good introduction to OOP. It is designed to
help newcomers learn OOP guidelines for solid class design and master the
major OOP concepts of inheritance, composition, interfaces, and abstract
classes. The author motivates and illustrates his points by taking readers
step by step through simple concrete examples.
-
Agent-Based Software Reviews
-
Wikipedia: Comparison of Agent-Based Modeling Software
- Sameera Abar, Georgios K. Theodoropoulos, Pierre Lemarinier, and Gregory M.P. O'Hare, "Agent-Based Modelling and Simulation Tools: A Review of the State-of-Art Software"
(pdf,18MB),
Computer Science Review, Vol. 24, 2017, 13-33.
- Abstract:
"The key intent of this work is to present a comprehensive comparative literature survey of the state-of-art
in software agent-based computing technology and its incorporation within the modelling and simulation
domain. The original contribution of this survey is two-fold: (1) Present a concise characterization of
almost the entire spectrum of agent-based modelling and simulation tools, thereby highlighting the
salient features, merits, and shortcomings of such multi-faceted application software; this article covers
eighty five agent-based toolkits that may assist the system designers and developers with common
tasks, such as constructing agent-based models and portraying the real-time simulation outputs in
tabular/graphical formats and visual recordings. (2) Provide a usable reference that aids engineers,
researchers, learners and academicians in readily selecting an appropriate agent-based modelling and
simulation toolkit for designing and developing their system models and prototypes, cognizant of both
their expertise and those requirements of their application domain."
-
Steven L. Lytinen and Steven F. Railsback, "The Evolution of Agent-Based Simulation Platforms: A Review of NetLogo 5.0 and ReLogo"
(pdf,328KB),
EMCSR Conference Proceedings, 2012.
- Abstract:
''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
here.
- Abstract:
"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."
-
Complex Software Development
- Nicholas Jennings, "An Agent-Based Approach for Building Complex Software Systems"
(pdf,97KB),
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.
-
Pseudo-Random Number Generators
-
PRNG,
developed by Otmar Landl, is a portable high-performance ANSI-C implementation for three types of pseudo-random number generators: specifically, linear congruential (LCG); inversive congruential (ICG); and explicit inversive congruential (EICG).
-
A flexible library for non-uniform random variates is available at the
UNU.RAN Library.
UNU.RAN (Universal Non-Uniform RAndom Number generator) is a collection of algorithms for generating non-uniform pseudo-random variates as a library of C functions, released under the GNU Public Licence (GPL).
-
An online Kahn Academy tutorial on pseudo-random number generators can be accessed
here.
-
Template Models for ABM Platform Comparisons
-
Alan G. Isaac, "The ABM Template Models: A Reformulation with Reference Implementations"
(html),
Journal of Artificial Societies and Social Simulation 14 (2) 5, March 2011.
- Abstract: As an aid for ABM beginners,
Steven F. Railsback, Steven L. Lytinen, and Stephen K. Jackson developed a sequence of ABM template models with increasingly sophisticated capabilities, implemented by means of multiple ABM platforms (NetLogo,RePast,MASON). These materials helped ABM beginners to understand and compare the capabilities of these ABM platforms for ABM modeling. In this JASSS article, author Alan G. Isaac provides
new reference implementations (zip file)
for these ABM template models. He also addresses design, flexibility, and ease of use issues relevant to the choice of an agent-based modeling platform.
-
Unified Modeling Language (UML) for Agent-Based Modeling
- Hugues Bersini, "UML for ABM"
(pdf,925KB),
Journal of Artificial Societies and Social Simulation 15 (1) 9, January 2012.
Software and Toolkits Tailored for Economic Agent-Based Applications
- abcEconomics Platform (Open Source, Python)
- The open source platform abcEconomics, developed by Davoud Taghawi-Nejad for Agent-Based Computational Economics applications, is a Python-based modeling platform for economic simulations. abcEconomics comes with standard functions to permit simulations of production, trade, and consumption processes for firms and consumers in a stock-flow consistent manner. abcEconomics allows modelers to program agents as ordinary Python class-objects; but the resulting programs, if large (e.g., 10,000+ agents), can easily be run on a multi-core/processor computer for speed advantage. Detailed information about downloading, installing, and programming with abcEconomics is provided in the following
abcEconomics Documentation Manual.
- Adaptive Modeler - Agent-Based Financial Market Simulation Platform (Proprietary, Microsoft .Net)
- The
Adaptive Modeler,
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.
- Cormas: Software for Common-Pool Resources and Multi-Agent Simulations (Smalltalk,freely modifiable but distribution limited)
-
CORMAS (GitHub Repository)
is an agent-based simulation platform designed for support of companion (iterative participatory) modeling projects. From the original CORMAS website: "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 multi-agent simulation
software for renewable resource management. It provides the framework for
building models of the interactions between individuals and groups using
(renewable) resources."
- JABM: Java Agent-Based Modelling Toolkit
- From the developer (Steve Phelps, U of Liverpool): The
JASA (Java Auction Simulator API)
has 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
here.
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
here.
- 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
Vensim.
From the original 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
- AgentBuilder: Agent Construction Tools (KQML,Java,C,C++; Proprietary)
-
AgentBuilder
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.
- AgentPy (Python library, Open Source)
-
AgentPy,
developed by Joël Foramitti, is an open-source Python library for the development and analysis of agent-based models. The framework integrates the tasks of model design, numerical experiments, and data analysis within a single environment, and is optimized for interactive computing with IPython and Jupyter.
AgentPy documentation is available
here.
- Agents.jl: Julia Framework for Agent-Based Modeling (Julia, Open-Source)
-
Agents.jl
is a Julia-based software framework designed to provide high-performance support of agent-based modeling (ABM) with minimal code complexity. Agents.jl integrates well with the entire Julia ecosystem, including: interactive applications; differential equations; parameter optimization; and more. Thus, in contrast to many other ABM tools, Agents.jl does not require an "extensions library." Agents.jl documentation and software downloads can be accessed at following
GitHub Repository.
- Alife Software
- See the software links maintained by the
International Society for Artificial Life (ISAL).
- AnyLogic - Multi-Method 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
here.
- 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
information, visit
here.
- Boids Algorithm: Coordinated Animal Motion (Multiple Third-Party Programs)
- The
Boids
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.
- Cellular Automata Lab (CelLab)
- From the CelLab User Guide: "The first edition of
CelLab
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)
-
Cougaar
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.
- Deep Learning Toolbox (Proprietary)
- The Mathworks, Inc., has released a
Deep Learning Toolbox
for data preparation, design simulation, and deployment of deep (multiple hidden layer) artificial neural networks (ANNs) within user applications.
- DeV-C++ (written in Delphi; Freeware)
-
DeV-C++
is a free full-featured integrated development environment (IDE) distributed under the GNU General Public License for programming in C and C++. It is written in Delphi. It is bundled with, and uses, the MinGW or TDM-GCC 64bit port of the GCC as its compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC-based compiler. Dev-C++ is generally considered a Windows-only program, but there are attempts to create a Linux version: header files and path delimiters are switchable between platforms.
- ECJ: Evolutionary Computation Java Toolkit (Java, Open Source)
-
ECJ
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.
- Erlang: General Purpose PL for Distributed Applications
-
Erlang
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.
- GoldSim: Monte Carlo Simulation Software for Decision and Risk Analysis (Proprietary)
-
GoldSim
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.
- JAS-mine: Extension of JAS (Java, Open Source)
-
JAS-mine
is a Java a platform whose intent is to provide a unique simulation tool for discrete-event simulations, including agent-based and microsimulation models, in either continuous or discrete time. The ultimate purpose is to support the development of large-scale data-driven models.
- Jason: Version of AgentSpeak (Java-based, freely available)
-
Jason (GitHub Repository)
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.
- Java (Open Source)
- The
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.
- Java Tutorial Online (Java/Sun)
- The
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
here.
- 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
information, visit the
Joone Sourceforge Repository.
- Julia: (Open Source)
-
Julia
is a high-level general-purpose dynamic programming language for scientific computing, designed to provide users the speed of C/C++ while retaining the ease-of-use of Python. Julia is currently
being used for a wide range of purposes, including: the
study of complex chemical and biological processes; Game development; Web development; agent-based modeling (Agents.jl, see below); machine learning; and data science. Documentation
for Julia can be obtained
here.
- 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 Repository.
- LEDA: Graph and Network Problems
-
LEDA
(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 (LDP)
- 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
here.
- MadKit: Multiagent Development Kit (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
here.
- 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
here.
- MATLAB (Proprietary)
- MATLAB is a high-performance language for technical computing.
Information about MATLAB can be obtained at the
MathWorks Website.
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.
- Mesa: Agent-Based Modeling in Python 3+ (Python; Apache-3 Licensed)
-
Mesa
is an Apache2-licensed agent-based modeling (ABM) framework in Python. It allows users to: quickly create agent-based models using built-in core components (such as spatial grids and agent schedulers) or customized implementations; visualize them using a browser-based interface; and analyze their results using Python's data analysis tools. The goal of Mesa is to be the Python-3-based counterpart to NetLogo, Repast, and MASON.
- NetLogo (Multi-Platform, Freeware)
-
NetLogo,
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.
- ORA-LITE: Social Network Analysis Tool
-
ORA-LITE
is a dynamic meta-network assessment and analysis tool developed by CASOS at Carnegie Mellon University. It
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.
- 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
expressed. The
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.
- Processing (Java/OpenGL)
-
Processing is a Java/OpenGL environment for simulation, animation, multi-media, and experimentation. From the
Processing Homepage:
"Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. Since 2001, Processing has promoted software literacy within the visual arts and visual literacy within technology. There are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning and prototyping."
- 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
and Vladimir Derhachev. 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)
PyABM
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 (Open Source)
- 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 many brands of UNIX, (and) on Windows, DOS, OS/2, Mac, Amiga... ."
- The main resource for all things Python, including latest software releases, is the
Python Website.
Researchers new to Python might want to browse the
Beginners Guide.
Another resource is
Anaconda,
a free Python distribution that includes many packages.
Also,
Jupyter
is an Integrated Development Environment (IDE) that supports Python, R, and other programming languages.
- In addition, Claudius Gräbner (Johannes Kepler University) has posted various
introductory Python materials
in support of several of his course preparations featuring agent-based modeling. These materials include: (i) an installation guide for Python and required packages (Mac/Windows/Linux); (ii) general instructions for the installation of an Editor or Integrated Development Environment (IDE); (iii) specific instructions for the installation of the Jupyter IDE (Mac/Windows/Linux); and (iv) test script for installation testing.
- 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
R Homepage.
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.
- 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 GitHub Repository.
- Leigh Tesfatsion (Economics, Iowa State University, Ames, IA) has
prepared a
RePast Self-Study Guide
to help newcomers get started programming with Repast in a Java Integrated
Development Environment (IDE). Topics covered
include: Introduction to Agent-Based Modeling; Introduction to Agent-Oriented Programming;
Introduction to Java; Getting Acquainted with RePast; Programming with RePast; and Possible RePast
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.
- SimAgent Toolkit (Pop-11 PL; Open Source)
- From the developer (Aaron Sloman, School of Computer
Science, University of Birmingham, UK): "The
SimAgent Toolkit
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.
- SimX (C++, Python, Open Source)
-
SimX
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.
- SLAPP: Swarm-Like Agent Protocol (Python, open source)
-
SLAPP
(Swarm-Like Agent Protocol in Python) contains both a tutorial on agent-based programming foundations and an agent-based modeling shell to run large simulation projects, such as the original Swarm2 scheme. For more information, see:
Pietro Terna (2015), Introducing the Swarm-Like Agent Protocol in Python (SLAPP). In: Agent-based Models of the Economy. Palgrave Macmillan, London
- 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
Language (MML)."
- StarLogo Nova (Extended Logo language; Freeware with closed source)
-
StarLogo Nova
is a visual programmable modeling environment for exploring the workings of decentralized systems that has been specifically designed to be user-friendly for K-12 students. StarLogo Nova can be used to model many real-life phenomena
such as bird flocks, traffic jams, ant colonies, and simple market economies. Extensive support (tutorials, demos, users discussion group,...) are provided at the StarLogo Nova website.
- Swarm Simulation System (Objective C, Open Source)
-
Swarm
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.
- Virtual Reality Toolbox (MATLAB and Simulink)
- The
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)
- The
ZEUS toolkit,
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
visualization tools.
Copyright © Leigh Tesfatsion. All Rights Reserved.