|
|  | |
| Features Download  Applet & Screenshots Research 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 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, 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 | |
|
To use MASON in 3D, install Sun's Java3D framework. Get the version "for the JDK" rather than "for the JRE". Windows users should install the OpenGL version. Linux users can get Java3D here. Java3D is installed on MacOS X 10.4 by default.
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, Java Media Framework, and Quaqua. 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".
|
| |
| Research 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. To be published. (Similar to paper immediately below).
[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] 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).
- 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).
Virus Epidemics. Contact Jill Bigley Dunham (jbigley at gmu.edu).
| |
| Extensions | |
|
- JUNG and MASON
(also available on CVS 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 CVS 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 CVS 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 an profit.
- Building and Running MASON on NetBeans. Very straightforward.
|
| 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.
| |
|