Growth grammars are a rule-based approach to the modelling of dynamic systems. In contrast to conventional imperative programming languages, rule-based approaches provide a natural and concise way of modelling: Most systems to be modeled behave according to a set of rules, and our perception works this way and not imperatively using a list of operations which have to be processed step by step.
Growth grammars originate from L-systems and their success, especially in describing growth processes of botany. In the design of growth grammars, special attention was drawn to botanical growth modelling, thus continuing the L-system tradition. However, growth grammars can be used in a large variety of disciplines, as it can be seen in the gallery.
Sensitive Growth Grammars
Sensitive growth grammars form an extended variant of L-systems. They include the possibility of global sensitivity, which means that not only local interactions between neighbouring objects, but also far-reaching interactions, e.g. overshadowing of plant parts, can be represented.
Relational Growth Grammars
Relational growth grammars (RGG) are based on the concept of graph rewriting. They include L-systems as a special case, but exceed their limits due to the versatility of graphs and graph rewriting rules. A simple but powerful graph query feature provides global sensitivity, thus enabling the modelling of complex, far-reaching interactions.
The programming language XL is our implementation of relational growth grammars. In XL, the advantages of the rule-based paradigm are combined with the strength of Java, including the rich set of existing Java libraries. You are no more restricted to the libraries provided by your modelling environment: Just import and use the Java packages of your choice.