MAML -- Multi-Agent Modeling Language

[ Initiative ][ Introduction ][ Overview ][ Supported Swarm versions ][ Compiler Download Page ][ Compiler Usage Guide ][ Tutorial ][ Course Outline ][ Examples ][ Reference Manual ][ Papers ][ Comments for Swarmites ][ Technical Manual ] ][ About ]

Multi-Agent Modeling Language

László Gulyás 
Tamás Kozsik
Sándor Fazekas

MAML is at v0.03, the compiler is in v0.03.2 (1330) alpha


The initiative for developing MAML was based on our experiences with students of social sciences who wanted to create agent-based models. These experiences showed that it is rather hard for them to implement their ideas because they are not trained as programmers.

We began by examining several existing software packages for scientific modeling and simulation and selected Swarm, a project of the Santa Fe Institute. However, it turned out that despite the various ways Swarm helps users, it was still too complicated for our users. So, we've decided to develop our own environment specifically designed for our users.

As we developed our modeling environment, we did not put Swarm aside. Several concepts have been borrowed, and the first versions of our language are just extensions (or shorthands) to the Swarm simulation package. In the future, we plan to have an even higher level tool that will most likely diverse from Swarm and will have a graphical interface.

MAML was presented at SwamFest'99, the Third Annual Meeting of the Swarm Users Group. (Here are the slides.)


The current version of MAML is basically an extension to Objective-C (using the Swarm libraries). It consists of a couple of 'macro-keywords' that define the general structure of a simulation. The remaining must be filled with pure swarm-code. A MAML-to-Swarm (named xmc) compiler is also being developed which compiles the source code into a swarm application. Like every other Swarm application, this generated application must be compiled by gcc.

Although the language is still in alpha stage (that is, any official release is months away), we do believe that, by using the MAML-defined structure and the MAML keywords, the task of creating a simulation in Swarm becomes much easier for both programmers and non-programmers. We must note that the current version of the language should be used with some programming background. We believe, however, that our work to date, although unfinished, has already significantly lowered the level of programming knowledge necessary.

Swarm versions 2.1.1, 1.4.1, 1.3 and 1.0.2 are supported.

Compiler (xmc) Download Page

If you are interested in downloading and installing xmc, the MAML compiler, you can find every detail on this page.

Compiler (xmc) Usage Guide

This page teaches you how to use the xmc compiler and describes both its switches and how its arguments should appear.


This is a good place to start if you are unfamiliar with MAML and Swarm. The tutorial contains a series of simple models with explanations and fully commented source code. New features of MAML are also discussed in some detail as they are introduced during the course. The first steps of a modeling course with MAML are also available.


Here is a growing list of implemented simulations in MAML. Currently most of them are fairly simple example models, but there are some with scientific relevance, too. The latter ones are becoming more prevalent as work continues.

Reference Manual

This document gives a detailed (technical) overview of MAML's logics, and syntax.


MAML and MDI was presented at a couple of conferences so far. Here are some slides from those presentations, the ones from SwarmFest'99 (UCLA, Calif., March 1999) and Villalago'99 (Trento, Italy, June 1999). Moreover, there is a paper about the Model Design Interface (accepted for the International Conference of PHD Students, University of Miskolc, Hungary, 1999.), and another paper about the aspect-orientedness of MAML (accepted for The Sixth Fenno-Ugric Symposium on Software Technology, Estonia 1999). Finally, to sum all these up, we have contributed an article to the July-October 1999, double issue of the Journal of Artificial Societies, and Social Simulation, under the title The Multi-Agent Modeling Language and the Model Design Interface.

Comments for Swarmites

This page provides explanations for Swarmites who do not understand the reason behind certain things in MAML, and why these things are important. This document helps you understand the different concepts and innovations of MAML.

Technical Manual

This page describes the internal, highly technical side of MAML and xmc (its compiler). The semantics of the language is defined here. Note that you must be familiar with Swarm to understand what is written here. This is a good place to look at, if you are skilled in Swarm, to learn what MAML can do for you.


If you need support or have comments, contact us at

Last modified: Oct 20 2000
copyright © 1999 agent-lab
Send comments to