The JAS project

JAS is a simulation toolkit, specifically designed for agent based simulation modelling. Agent based models are representations of dynamic social systems realised through object-oriented computer programs. For a detailed introduction on ABM see the working papers section at

JAS is a clone of the Swarm library, an ABM framework originally developed by the Santa Fe Institute for creating multi-agent simulations of complex adaptive systems (

According to the Swarm experience, we can assert that the most promising approach to develop AB models is represented by the use of object-oriented programming (OOP). So JAS does not define a domain-specific language: it provides the user a collection of ready to use widgets and a set of rules of thumbs to build such kind of simulations. The JAS tools can be easily embedded in the users' models, reducing the code complexity.

Building JAS, we did not want to create a brand new way of building agent based models, but somewhat a rich and open collection of libraries to help researcher to create models and share them in an easy way. Many of the library contained in JAS have been based on open source, reliable and well tested third-party libraries. In the JAS architecture, agents are organized and managed by fundamental components, called models.

A model is a Java class inheriting from jas.engine.SimModel, creating a collection of agents with a schedule of events over those agents. JAS is able to execute more than one model at time. In fact the scheduler is unique and each model shares it. This allows to create complex structures whereby agents of different models can interact with each other.

A good Swarm tutorial by Hala Al-Bakour and Sheri Markose says that:

The Swarm architecture is based on an internal model Swarm and an external observer Swarm.  These two aspects of the artificial world is clearly separated in the Swarm system. The objective of the special 'observer' agents is to observe other objects via the probe interface. These objects can provide both real-time data presentation and storage of data for later analysis. The observer agents are actually swarms (a group of agents and a schedule of activity) and a complete experimental framework is obtained by combining the model and observer apparatus.

The distinction between model and observer is a very useful paradigm and the JAS protocol suggests to use this approach, too. Technically it can be implemented simply defining two models (two classes inheriting from SimModel), with one of them playing the role of the observer. See the how-to documents for more details.

The JAS engine

The core of the JAS toolkit is represented by the simulation engine. It is based on the standard discrete-event simulation paradigm, which allows to manage the time with high precision and multi-scale perspective. We like to stress the important difference between discrete-time and discrete-event time representation. The tools implementing discrete-time engines, like Swarm, are particularly fast in models characterized by loops of events. They are discrete representation of continues time models. When the events happens at different time scales the discrete-time representation is more inefficient than the discrete-event paradigm. Thanks to its discrete-event engine, JAS represents a good compromise in simulating both discrete and continues agent-based models.This makes JAS a generic discrete-event simulation toolkit, also useful to realise process workflow simulation models.

The external libraries

Many features of JAS are based on third-party libraries. See the license section for more details.

JAS project would be an example of the interoperability and code reutilisation possible with the Open Source licenses. It is useless to reinvent the wheel every time we need a functionality.

Michele Sonnessa (



Sim2Web is a general framework for web-enabling economic and financial simulations. Especially suited for agent-based models, the system is fully build upon Open Source software and well-known standards which ensure a very high level of generality. The image below shows the architecture of Sim2Web.
For more details see the official Sim2Web site.

The example simulation models presented with Sim2Web can be downloaded here:

  • The Heatbugs version of Sim2Web. A demo of the model is currently running at the Sim2Web site.
  • The Tit-For-Tat model, a tournament based on the Prisoner's Dilemma game, played by humans.

They have been tested with the 0.2.2 version of JAS.