AToM3 Quick Links

Download Documentation


AToM3 is a tool for multi-paradigm modelling under development at the Modelling, Simulation and Design Lab (MSDL) in the School of Computer Science of McGill University. It is developed in close collaboration with Prof. Juan de Lara of the School of Computer Science, Universidad Autónoma de Madrid (UAM), Spain. AToM3 stands for ``A Tool for Multi-formalism and Meta-Modelling''.

The two main tasks of AToM3 are meta-modelling and model-transforming. Meta-modelling refers to the description, or modelling of different kinds of formalisms used to model systems (although we have focused on formalisms for simulation of dynamical systems, AToM3's capabilities are not restricted to these.) Model-transforming refers to the (automatic) process of converting, translating or modifying a model in a given formalism, into another model that might or might not be in the same formalism.

In AToM3, formalisms and models are described as graphs. From a meta-specification (in the ER formalism) of a formalism, AToM3 generates a tool to visually manipulate (create and edit) models described in the specified formalism. Model transformations are performed by graph rewriting. The transformations themselves can thus be declaratively expressed as graph-grammar models.

Some of the meta-models currently available are: Entity-Relationship, GPSS, Deterministic Finite state Automata, Non-Deterministic Finite state Automata, Petri Nets, Data Flow Diagrams and Structure Charts. Typical model transformations include model simplification (e.g., state reduction in Finite State Automata), code generation, generation of executable simulators based on the operational semantics of formalisms, as well as behaviour-preserving transformations between models in different formalisms.


Download AToM3 (Updated: 17 January 2008 -- corrected Petri Net coverability analysis)
Optional external utility pack: LPSolve 4.0, SVM, and yED (Updated: 26 November 2012 -- patch to SVM to make thread safe)
Individual packages (from


AToM3 installation readme (txt), and AToM3 Help Guide (HTML but old)

Illustrated AToM3 Tutorials (HTML Format, Updated: Sept. 5, 2006): Basic, Advanced, Graph Grammars,

Tutorial focused on visual formalism layout (i.e.: good ways to manipulate x, y coordinates of entities, trigger the available layout algorithms, and handle visual hierarchies) possible if you show interest to Denis at

External Utility Pack

The external utility pack adds extra functionality to AToM3. It need only be installed once since it does not change (unlike the main AToM3 distribution).

LPSolve is used for solving linear programming problems. In particular, it is used for conservation analysis of Petri Nets.

SVM is especially important if you plan on using statecharts in AToM3, since this utility is responsible for simulating and generating code.

yED is used when the best quality layout of a model is desired. In this case the model graphics are exported to yED which then does the layout. The model can then be re-imported into AToM3 (i.e., the position, height, and width info). Note that the arrows tend to have slightly incorrect offsets when re-importing though.

The simplist method to install them is to place the external utility folders in your User area (this is created the first time AToM3 is started) in the 'User_External' directory. You can also place them arbitrarily, but then you'll have to edit the file to point to it.