MetaABM  – Latest stable release is
Breve  – Latest stable release is 2.7.2 released February 19th, 2008.
With the exception of NetLogo, all of these frameworks are both open source (hence, free for use and source code inspection) and based upon an object-oriented language (usually Java). This is due in large part because object oriented frameworks and programming is a natural fit for ABM.
Swarm was originally written in Objective-C, and then ported to Java. Written as a library and framework of simulation tools, rather than as a finished application per se, Swarm is one of the oldest agent-based modeling toolkits, and there are hundreds of example applications and demos, and several of the newer toolkits are based upon it. However, given the age of the last stable release, and the existence of newer toolkits with more friendly environments (especially Repast), Swarm is not considered further in this paper. Nonetheless, the documentation and research papers on Swarm established many of the foundational concepts and ideas in ABM, and reading over these materials serves as an excellent introduction to the large and growing field of agent-based modeling.
MASON, or Multi-Agent Simulator of Neighborhoods/Networks is a multiagent simulation library in Java, designed to serve as the base class structure for custom Java simulations. It also includes a model library and suite of 2D and 3D visualization tools, and is developed with an emphasis on speed and portability. Although well-regarded, at the time of this writing, the Windows batch files for starting and running MASON 12 did not work on Windows Vista 64-bit, so MASON is not considered further in this paper.
NetLogo, though not open source in the strictest sense, is freeware, and designed for educational use, being based upon a simple Logo-type language. Originally developed in 1999 by Uri Wilensky, NetLogo has been under continuous development since then, and has a large and extensive user community with lists of community models. NetLogo is not considered in this paper primarily due to its use of a non- standard programming language (Logo), which makes it more difficult to integrate with other toolsets and programs using object oriented programming languages more typically found in research (e.g. Java or Python).
Repast is based upon Swarm, but implemented in Java from the ground up. Repast has several versions available; the current standard Repast Java version is version 3.
A simplified version of Repast, RepastPy was produced that introduced a friendly GUI and the use of a subset of Python as a scripting language. RepastPy is quicker and easier to use than Repast, and is generally recommended by the Repast community as being a good version for prototyping models (leveraging the Python language characteristics of simplicity and productivity). Behind the scenes, the Python scripts generate Java objects.
A version of Repast based on the .NET runtime, Repast.NET was made. The .NET runtime is flexible and powerful, and has a large number of useful libraries for doing almost anything, as well as an elegant successor language to Java, C#, and the ability to run any language that can be targeted on the .NET platform (including Visual Basic, Python, Ruby, and F# to name a few). Unfortunately, Repast.NET was