Features    Download     Applet & Screenshots    Projects    Extensions    Other Simulators  

MASON is a fast discrete-event multiagent simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, and also to provide more than enough functionality for many lightweight simulation needs. MASON contains 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 Evolutionary Computation Laboratory and the GMU Center for Social Complexity, and was designed by Sean Luke, Gabriel Catalin Balan, Keith Sullivan, and Liviu Panait, with help from Claudio Cioffi-Revilla, Sean Paus, Keith Sullivan, Daniel Kuebrich, Joey Harrison, and Ankur Desai.

MASON Stands for Multi-Agent Simulator Of Neighborhoods... or Networks... or something...

MASON Features

  • 100% Java (1.3 or higher)
  • Fast, portable, and fairly small
  • Models are completely independent from visualization, which can be added, removed, or changed at any time
  • Models may be checkpointed and recovered, and dynamically migrated across platforms
  • Can produce results that are identical across platforms
  • Models are self-contained and can run inside other Java frameworks and applications
  • 2D and 3D visualization
  • Can generate PNG snapshots, Quicktime movies, charts and graphs, and output data streams
Download MASON

Download MASON Version 17
mason.zip or mason.tar.gz

SVN Repository: Need the bleeding edge? MASON's SVN repository is at Google Code, under the project name mason.

Previous Releases
Version 16 mason16.zip
Version 15 mason15.zip
Version 14 mason14.zip
Version 13 mason13.zip
Version 12 mason12.zip
Version 11 mason11.zip
Version 10: mason10.zip
Version 9: mason9.zip
Version 8: mason8.zip
Version 7: mason7.zip
Version 6: mason6.zip
Version 5: mason5.zip
Version 4: [at SwarmFest 2004]
Version 3: mason3.zip
Version 2: [at MASI 2003]
Version 1: mason1.zip
Version 0: [at Agent 2003]

Manual. MASON has a 300-page PDF manual which includes a full documentation of the system plus a 14-part tutorial.

To use MASON in 3D, install Java3D. Unfortunately, installing Java3D is not as easy as it once was. You can try Oracle's older distribution, but you may have more luck, particularly recent OS X version users, in installing Java3D and JOGL directly from the jogamp website. To do this, you'll need to install the three Java3D libraries (j3dcore.jar, j3dutils.jar, and vecmath.jar), and several JOGL libraries (gluegen-rt.jar gluegen-rt-natives-your-platform.jar, joal.jar, joal-all-natives-your-platform.jar, jogl-all.jar, and jogl-natives-your-platform.jar — look in a recent version directory like v2.1.4/jar; the jogamp-current/jar directory often has broken files). Often these libraries are buggy and in flux for OS X users, so I've made a collection here for OS X which seems to work okay. Install these in your system-wide Java library location (on the Mac, it's /Library/Java/Extensions/). For more instructions, see this posting.

To Generate Movies, Charts/Graphs, or to Recompile MASON, be sure to download the following optional libraries which MASON is designed to use (and are required if you're compiling a model):

See the README file to install the libraries. The libraries come from the following sites: JFreeChart, iText, and Java Media Framework. The libraries also include NCSA Portfolio, which is no longer distributed on NCSA's site but is available under open source (more on using NCSA Portfolio with MASON). Per the LGPL license agreement with certain of these libraries, we also provide library source code here, but strongly suggest you see the original sites if you want more up-to-date source distributions.

Mailing Lists. Questions about using MASON? First, try reading the archives of the MASON-INTEREST-L mailing list. If you can't find your answer there, you might then try joining the list and posting your question. (Alternatively, send mail to listserv@listserv.gmu.edu with the words subscribe MASON-INTEREST-L in the body of the message. Likewise, to unsubscribe, use unsubscribe MASON-INTEREST-L) Only if you can't join the list for some technical reason, you may ask the developers directly by sending email to mason-help —at— cs.gmu.edu.

Online Documentation. MASON's documentation can be viewed online.

Installation. Unpack MASON and read the license. The root point for installed documentation is at mason/docs/index.html. You can most easily run MASON by launching a script in the mason/start directory. For further installation options and information about compiling MASON code or using the provided Makefile, start with the mason/README file.

Applet and Screenshots

Try the following MASON applet. Note that the 3D simulations require Java3D to run; and one or two of them requires too much memory to run in Java in a web browser.

Click Thumbnail for Image
MASON can represent continuous, discrete, or hexagonal 2D, 3D, or Network data, and any combination of it. Provided visualization tools can display these environments in 2D or in 3D, scaling, scrolling, or rotating them as needed.

Shown: 2D Visualization of "Particles" (Tutorial 4); the same scaled in and scrolled a bit; and 3D Visualization of Heatbugs


The Console gives access to model data, plays, stops, pauses, and steps the simulation, checkpoints and recovers models, and performs other tasks. The user can also view and change per-object model data by selecting objects in the visualization displays and bringing up their inspectors.

Shown: Console's controls tab; and the Console with inspector list and a detached inspector.


Click Thumbnail for Image
HeatBugs is a classic multiagent example popularized by the Swarm multiagent simulation toolkit. HeatBugs shown in wireframe 3D. Quicktime Movie.
Ants is an ant colony foraging simulation using two pheromones. Flockers is an implementation of Craig Reynolds' Boids algorithm. 2000 flockers shown.
Solar System (Tutorial 6) is a simple (indeed simplistic) demo of planets orbiting the Sun. HexaBugs is HeatBugs on a hex grid, inspired by the RePast simulation toolkit. (Shown zoomed in).
Balls and Bands (Tutorial 5) simulates Hooke's Law with balls connected by rubber bands of different strengths. Mouse Traps and Ping Pong Balls When a ball hits a trap, it pops the ball back up, plus another ball. Quicktime Movie.
Woims is another Boids example. Quicktime Movie. Woims in 3D shows the Woims in 3D space. Quicktime Movie.
Keepaway simulates a Keep-Away Soccer game. At present the robots have stupid "go to the ball and kick it" behaviors. L-system is a deterministic, bracketed context-free L-system generator with basic turtle graphics.
Conway's Game of Life, a classic cellular automata, here as a simple demo seeded with the b-heptomino. Cooperative Observation implements a k-means clustering method for cooperative observation of randomly-moving targets.
The LightCycles Game is a discretized version of the old game popularized by the movie Tron. MAV is a basic platform for simulating simple Micro-air Vehicle behaviors.
Bouncing Particles is a tutorial demo of simple particles bouncing and interacting with one another. Virus is a simple platform for comparing various algorithms for "virus spreaders" and "virus disinfectors".

Projects Using MASON

Publications About MASON

[paper] MASON: A Multi-Agent Simulation Environment. 2005. Sean Luke, Claudio Cioffi-Revilla, Liviu Panait, Keith Sullivan, and Gabriel Balan. In Simulation: Transactions of the society for Modeling and Simulation International. 82(7):517-527.

[paper] MASON: A New Multi-Agent Simulation Toolkit. 2004. Sean Luke, Claudio Cioffi-Revilla, Liviu Panait, and Keith Sullivan. Proceedings of the 2004 SwarmFest Workshop.

[paper, slides] MASON: A Java Multi-Agent Simulation Library. 2003. Sean Luke, Gabriel Catalin Balan, Liviu Panait, Claudio Cioffi-Revilla, and Sean Paus. Proceedings of the Agent 2003 Conference.

Publications Using MASON

[paper] Keith Sullivan and Sean Luke. 2012. Real-Time Training of Team Soccer Behaviors. In Proceedings of the 2012 RoboCup Workshop.

[paper] Keith Sullivan, Katherine Russell, Kevin Andrea, Barak Stout, and Sean Luke. 2012. RoboPatriots: George Mason University 2012 RoboCup Team. In Proceedings of the 2012 RoboCup Workshop.

[paper] Keith Sullivan and Sean Luke. 2012. Learning from Demonstration with Swarm Hierarchies. In Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems (AAMAS).

[paper] Keith Sullivan, Christopher Vo, and Sean Luke. 2011. RoboPatriots: George Mason University 2011 RoboCup Team. In Proceedings of the 2011 RoboCup Workshop.

[paper] Keith Sullivan and Sean Luke. 2011. Multiagent Supervised Training with Agent Hierarchies and Manual Behavior Decomposition. In Proceedings of the IJCAI 2011 Workshop on Agents Learning Interactively from Human Teachers (ALIHT).

[paper] Keith Sullivan, Sean Luke, and Vittorio Ziparo. 2010. Hierarchical Learning from Demonstration on Humanoid Robots. In Proceedings of the Humanoid Robots Learning from Interaction Workshop, at Humanoids 2010.

[paper] Sean Luke and Vittorio Ziparo. 2010. Learn to Behave! Rapid Training of Behavior Automata. In Proceedings of the Adaptive and Learning Agents Workshop at AAMAS 2010. Marek Grzes and Matthew Taylor, editors. 61-68.

[paper] Brian Hrolenok, Sean Luke, Keith Sullivan, and Christopher Vo. 2010. Collaborative Foraging using Beacons. In Proceedings of the Ninth International Conference on Autonomous Agents and Multiagent Systems (AAMAS 2010). van der Hoek et al, eds. 1197-1204.

[paper] Keith Sullivan, Sean Luke, and Brian Hrolenok. 2010. Can You Do Me A Favor? In AAMAS 2010 Workshop on Trust in Agent Societies.

[paper] Atesmachew Hailegiorgis, William Kennedy, Mark Roleau, Jeffrey Bassett, Mark Coletti, Gabriel Balan, and Tim Gulden. 2010. An Agent Based Model of Climate Change and Conflict among Pastoralists in East Africa. At 2010 International Congress on Evironmental Modelling and Software Modeling for Environment's Sake, David A. Swayne, Wanhong Yang, A. A. Voinov, A. Rizzoli, T. Filatova (Eds.).

[paper] William Kennedy, Atesmachew Hailegiorgis, Mark Rouleau, Jeffrey Bassett, Mark Colletti, Gabriel Balan, and Tim Gulden. 2010. An Agent-Based Model of Conflict in East Africa And the Effect of Watering Holes. In Proceedings of the 19th Conference on Behavior Representation in Modeling and Simulation.

[paper] Cioffi-Revilla, Claudio. 2010. A Methodology of Complex Social Simulations. Journal of Artificial Societies and Social Simulations13 (1):7.

[paper] Cioffi-Revilla, Claudio, J. Daniel Rogers, and Maciej Latek. 2010. The MASON HouseholdWorlds of Pastoral Nomad Societies. In Simulating Interacting Agents and Social Phenomena: The Second World Congress in Social Simulation, edited by K. Takadama, C. Cioffi-Revilla and G. Deffaunt. Berlin and Tokyo: Springer.

[paper] Cioffi-Revilla, Claudio, and Mark Rouleau. 2010. MASON RebeLand: An Agent-Based Model of Politics, Environment, and Insurgency. International Studies Review12 (1):31-46.

[paper] Cioffi-Revilla, Claudio. 2010. Computational Social Science. Wiley Interdisciplinary Reviews (WIREs): Computational Statistics DOI: 10.1002/wics.95.

[paper] Mark Rouleau, Mark Coletti, Jeffrey Bassett, Atesmachew Hailegiorgis, Tim Gulden, and William Kennedy. 2009. Conflict in Complex Socio-Natural Systems: Using Agent-Based Modeling to Understand the Behavioral Roots of Social Unrest within the Mandera Triangle. In Proceedings of the Human Behavior-Computational Modeling and Interoperability Conference.

[paper] Cioffi-Revilla, Claudio. 2009. Gli approcci computazionali per la comprensione della complessita' sociale (Computational Approaches for Understanding Social Complexity). In Conoscere la complessita': viaggio tra le scienze (Understanding Complexity: A Journey Through the Sciences), edited by A. Spaziante. Milan, Italy: Bruno Mondadori.

[paper] Cioffi-Revilla, Claudio, and Mark Rouleau. 2009. MASON AfriLand: A Regional Multi-Country Agent-Based Model with Cultural and Environmental Dynamics. Proceedings of the Human Behavior-Computational Modeling and Interoperability Conference 2009 HB-CMI-09. Joint Institute for Computational Science, Oak Ridge National Laboratory, Oak Ridge, Tennessee, U.S.A., June 23-24, 2009.

[paper] Cioffi-Revilla, Claudio, J. Daniel Rogers, and Atesmachew B. Hailegiorgis. 2009. GIS and Spatial Agent-Based Model Simulations for Sustainable Development. At AfricaGIS 2009 International Conference on "Geo-Spatial Information and Sustainable Development in Africa: Facing Challenges of Global Changes", 26-30 October, Kampala, Uganda.

[paper (early version)] Cioffi-Revilla, Claudio, and Mark Rouleau. 2009. MASON RebeLand: An Agent-Based Model of Politics, Environment, and Insurgency. Proceedings of the Human Behavior-Computational Modeling and Interoperability Conference.

[paper] Cioffi-Revilla, Claudio, and J. Daniel Rogers. 2008. Computing the Steppes: Data Analysis for Agent-Based Modeling of Polities in Inner Asia. At Annual Conference of the American Political Science Association, August 28-31, Boston, MA.

[paper] Sean Luke and Deepankar Sharma and Gabriel Catalin Balan. 2007. Finding Interesting Things: Population-based Adaptive Parameter Sweeping. In GECCO '07: Proceedings of the 9th Annual Conference on Genetic and Evolutionary Computation. Pages 86-93. ACM.

[paper] Bigbee, Anthony, Claudio Cioffi-Revilla, and Sean Luke. 2007. Replication of Sugarscape Using MASON. In Agent-Based Approaches in Economic and Social Complex Systems IV: Post-Proceedings of The AESCS International Workshop 2005, edited by T. Terano, H. Kita, H. Deguchi and K. Kijima. Tokyo: Springer.

[paper] Cioffi-Revilla, Claudio, Sean Luke, Dawn C. Parker, J. Daniel Rogers, William W. Fitzhugh, William Honeychurch, Bruno Frohlich, Paula DePriest, and Chunag Amartuvshin. 2007. Agent-based Modeling Simulation of Social Adaptation and Long-Term Change in Inner Asia. In Advancing Social Simulation: The First World Congress in Social Simulation, edited by T. Terano and D. Sallach. Tokyo, New York, and Heidelberg: Springer Verlag.

[paper] Gabriel Balan and Sean Luke. 2006. History-based Traffic Control. In Proceedings of the Fifth International Conference on Autonomous Agents and Multi-Agent Systems (AAMAS).

[paper] Sean Luke, Keith Sullivan, Liviu Panait, and Gabriel Balan. 2005. Tunably Decentralized Algorithms for Cooperative Target Observation. In Proceedings of the 2005 Conference on Autonomous Agents and Multi-Agent Systems (AAMAS). Pages 911-917.

[paper] Mnemonic Structure and Sociality: A Computational Agent-Based Simulation Model. 2004. Claudio Cioffi-Revilla, Sean Paus, Sean Luke, James Olds, and Jason Thomas. In Conference on Colective Intentionality IV.

[technical report] Tunably Decentralized Algorithms for Cooperative Target Observation. 2004. Sean Luke, Keith Sullivan, Gabriel Catalin Balan, and Liviu Panait. Technical Report GMU-CS-TR-2004-1, Department of Computer Science, George Mason University.

[paper] A Pheromone-Based Utility Model for Collaborative Foraging. 2004. Liviu Panait and Sean Luke. Proceedings of 2004 Conference on Autonomous Agents and Multiagent Systems.

[paper] Ant Foraging Revisited. 2004. Liviu Panait and Sean Luke. Proceedings of the Ninth International Conference on the Simulation and Synthesis of Living Systems (ALIFE9).

[paper] Learning Foraging Behaviors. 2004. Liviu Panait and Sean Luke. Proceedings of the Ninth International Conference on the Simulation and Synthesis of Living Systems (ALIFE9).

Research Projects in MASON

Anthrax Propagation in the Human Body. Contact Kenneth De Jong (kdejong at cs.gmu.edu).

Network Intrusions and Countermeasures. Contact Kenneth De Jong (kdejong at cs.gmu.edu).

Cooperative Target Observation with Micro-Air Vehicles. Contact Keith Sullivan (ksulliv at cs.gmu.edu).

A simple Schelling Segregation Model. Contact Sean Luke (sean at cs.gmu.edu).

Implementation of Dewdney's Bugs. Contact R. Paul Wiegand (paul at tesseract.org).

Sugarscape in MASON, by Tony Bigbee (abigbee at mitre.org).

Traffic and Stoplight Simulation in MASON. Contact Gabriel Balan (gbalan at cs.gmu.edu).

Class Projects in MASON

Financial markets model for the GMU CSS739 class.

Virus Epidemics. Contact Jill Bigley Dunham (jbigley at gmu.edu).

Extensions

GeoMason: Geospatial Support for MASON
(also available on SVN in contrib/geomason)

This module adds to MASON extensive support for GIS, using the Java Topology Suite.

D-MASON

A distributed implementation of MASON designed to run over cluster and cloud-computing architctures.

JUNG and MASON
(also available on SVN in contrib/jung)

This module and example shows how to connect MASON to JUNG, a popular social networks system.

Social Networks in MASON
(also available on SVN in contrib/socialnetworks)

This module is our own homegrown (and speedy, but hardly as well-tested as JUNG) social network package. It provides a fair number of social network statistics and other measures, building off of MASON's Network class. Download the module as socialnets.tar.gz or socialnets.zip.

ECJ. An evolutionary computation toolkit in Java.

ECJ is our high-performance, extensively featured evolutionary computation system with which MASON was designed to dovetail. If you're hoping to let the computer discover design solutions to your complex agent-based models, ECJ is the right tool for it.

Rigid Body 2D Physics Simulator Package
by Christian Thompson cthomps7 —at— gmu.edu
(also available on SVN in contrib/physics2d)

This module adds a simple, pure-Java constraint-based rigid body physics engine to MASON. We'd love to hear what you think of it (please post to the MASON-INTEREST mailing list).

MASON Web Tutorial 1: Parameterize Your Simulation

Learn one approach to loading parameters into MASON at runtime.

MASON Web Tutorial 2: Build an Applet Out of MASON

How we make applets out of MASON for fun and profit.

Building and Running MASON on NetBeans. Very straightforward.

Building and Running MASON on Eclipse. For the Mac. For early versions of Eclipse on Windows, it's very slightly different; but this tutorial should help.

Converting MASON movies to small, properly running ones using iMovie.

2006 WCSS MASON Tutorial slides, libraries, code, and documentation. A walk-through of constructing a Schelling model. Note: 12MB.

2008 WCSS MASON Tutorial slides, libraries, code, and documentation. A reconstruction of student playground cliques. Note: 13MB.


Other Simulators

MASON's design owes a lot to other multiagent simulators in the Social Complexity and Robotics fields, particularly to RePast and TeamBots. We invite you to compare it to other systems; we think you'll find MASON performs well in its niche (fast, flexible, portable). A sample:
RePast
A popular Java-based social complexity simulation toolkit.
Ascape
Another popular Java-based social complexity simulation toolkit.
Swarm
The venerable Objective-C and TCL-based social complexity simulator, from which RePast and Ascape (and MASON) owe much.
TeamBots
A Java-based high-level, 2D abstract robotics simulator and hardware API.
Player/Stage
A C++-based (but language-independent) 2D and 3D abstract robotics simulator and hardware API.
Breve
A 3D simulation toolkit for MacOS X, Linux, and Windows using an interpreted language called Steve. Very impressive.
StarLogo
A simulation toolkit in Logo, ostensibly for educational purposes, but extensible and powerful.
NetLogo
Another, somewhat newer member of the Logo simulation family. Very nice!
Processing
A beautiful Java/OpenGL environment for simulation, animation, multimedia, and playing around.