Repast 3 Overview

The Recursive Porous Agent Simulation Toolkit (Repast) is one of several agent modeling toolkits that are available. Repast borrows many concepts from the Swarm agent-based modeling toolkit [1]. Repast is differentiated from Swarm since Repast has multiple pure implementations in several languages and built-in adaptive features such as genetic algorithms and regression. For reviews of Swarm, Repast, and other agent-modeling toolkits, see the 2002 survey by Serenko and Detlor, the 2002 survey by Gilbert and Bankes, and the 2003 toolkit review by Tobias and Hofmann [2][3][4].

Repast is a free open source toolkit that was originally developed by Sallach, Collier, Howe, North and others [5]. Repast was created at the University of Chicago. Subsequently, it has been maintained by organizations such as Argonne National Laboratory. Repast is now managed by the non-profit volunteer Repast Organization for Architecture and Development (ROAD). ROAD is lead by a board of directors that includes members from a wide range of government, academic and industrial organizations. The Repast system, including the source code, is available directly from the web.

Repast seeks to support the development of extremely flexible models of living social agents, but is not limited to modeling living social entities alone. From the ROAD home page:

 Our goal with Repast is to move beyond the representation of agents
 as discrete, self-contained entities in favor of a view of social
 actors as permeable, interleaved, and mutually defining; with
 cascading and recombinant motives.  We intend to support the
 modeling of belief systems, agents, organizations, and institutions
 as recursive social constructions.

At its heart, Repast toolkit version 3 can be thought of as a specification for agent-based modeling services or functions. There are three concrete implementations of this conceptual specification. Naturally, all of these versions have the same core services that constitute the Repast system. The implementations differ in their underlying platform and model development languages. The three implementations are Repast for Java (Repast J), Repast for the Microsoft.Net framework (Repast.Net), and Repast for Python Scripting (Repast Py). Repast J is the reference implementation that defines the core services. In general, it is recommended that basic models can be written in Python using Repast Py due to its visual interface and that advanced models be written in Java with Repast J or in C# with Repast .Net.

Repast 3 has a variety of features including the following:


  1. Swarm Development Group: Swarm 2.2, Available at (Aug. 2004)
  2. Serenko, A. and Detlor, B.: Agent Toolkits: A General Overview of the Market and an Assessment of Instructor Satisfaction with Utilizing Toolkits in the Classroom (Working Paper 455), McMaster University, Hamilton, Ontario, Canada (2002)
  3. Gilbert, N., and Bankes, S.: Platforms and Methods for Agent-based Modeling, Proceedings of the National Academy of Sciences of the USA, vol. 99, suppl. 3, National Academy of Sciences of the USA, Washington, DC, USA (May 14, 2002) pp. 7197-7198
  4. Tobias, R. and Hofmann, C.: Evaluation of Free Java-libraries for Social-scientific Agent Based Simulation, Journal of Artificial Societies and Social Simulation, University of Surrey, vol. 7, no. 1 (Jan. 2003)
  5. Collier, N., Howe, T., and North, M.: Onward and Upward: The Transition to Repast 2.0, Proceedings of the First Annual North American Association for Computational Social and Organizational Science Conference, Electronic Proceedings, Pittsburgh, PA USA (June 2003)
  6. Repast Organization for Architecture and Development,, 2003

The design of this web site is, in part, based on the web design of the excellent graph library JUNG,

Thanks to the people at "YourKit Java Profiler" for providing us with an open source license for their Java profiler. It has been very useful in optimizing updates to Repast's spatial classses.