introduction :: documentation :: publication :: libCAML :: CAML Viewer










Cellular Automata
Modelling Language


CAML (Cellular Automata Modelling Language) is an XML application for Cellular Automata (CA). A CA can be described with an XML document. Such a document can be interpreted or translated by software-generators.
This web site offers the Document Type Definition (DTD), the documentation, an open source library for parsing and interpreting CAML documents and a little GUI for that library.






When developing or applying Cellular Automata (CA) it is useful to handle a specific CA on a more abstract level than the level of programming languages or function-calls.

CAML is an XML application (i.e., it is described with XML). XML applications are not traditional programmer-languages that specify a computation flow. They are developed to specify and characterize elements of an environment.
CAML abstracts CA components by adapted XML elements and supports their hierarchical order within an XML document.
Every CA is built up by a hierarchical order of elements which represent the different rules and properties.
This way a semantic model is constructed: the kind of order and nesting of the elements represent the specific CA.

Because CAML is derived from XML, it 'inherits' the platform independency, readability (for humans (text-based) and software (structured)) and the more general and abstract handling because it's independent of the implementation (programming language).
Therefore, a CAML document can be exchanged between all software simulators which possess a CAML interpreter or use libCAML.





Here you can get the DTD, a language reference and some examples of CAML.  

Document Type Definition (version 0.4)


This is the DTD (a context-free grammar) for CAML according to XML.


Documentation (version 0.4)


This document is a language reference describing all elements of CAML.


Samples (version 0.4)


Some examples to get an imagination of CAML documents.




C. Veenhuis, M. Köppen,
Document Oriented Modelling of Cellular Automata,
Proc. 2nd International Conference on Hybrid Intelligent Systems (HIS02),
Santiago, Chile, December 1 - 4, 2002




libCAML is an open source library (GNU LGPL) providing the parsing and interpreting of CAML documents.

It's written in C++ and successfully compiles on MS Windows (Borland C++ Builder 5, MS Visual C++ 6), Linux (g++ compiler) and Cygwin (g++ compiler).

No additional libraries or stuff are needed.

version 0.4  



The compiled binaries of the examples for Win32, Linux and Cygwin.




The open source libCAML library (includes an API docu).




Examples of CAML documents (also contained in source archive above).


CAML Viewer


CAML Viewer is an interpreter with a graphical user interface for CAML documents.
It is open source according to the GNU GPL.
It's written with Borland C++ Builder 5 and thus a MS Windows application.

At present there is no documentation for this software. But it is simple so you can learn using it in 10 minutes while playing around.

(Note: for recompiling you need the above libCAML source archive)


Interpreter (version 0.4)



Fraunhofer Institute for Production Systems and Design Technology
Department Security and Testing Technology
Pascalstr. 8-9
10587 Berlin
Christian Veenhuis





   © 2002, 2004 by Christian Veenhuis •  veenhuis {AT}