Please try out this LSystems program written in Java. You must be using a Java compatible web browser to access it.

The source code for this applet can be downloaded here.

Lindenmayer Systems

Paula Cooper
Department of Computer Science, University of Calgary


Lindenmayer systems (L-systems) provide an easy way for creating very complicated images such as fractals and trees through the specification of a few production rules. Given a starting string, angle factor, scale, depth of derivation and the production rules to apply, the application iteratively applies production rules in parallel to the symbols in the starting string.

This demo is based on the program and sample L-systems presented in Przemyslaw Prusinkiewicz and Jim Hanan, Lindenmeyer Systems, Fractals, and Plants, Lecture Notes in Biomathematics 79, Springer-Verlag, Berlin 1989,1992

How to Use This L-systems Application

In order to run an L-systems derivation the user must first specify the attributes of the derivation to be run. These attributes are:

All of these entries are specified by entering the values in the provided text entry boxes, except for the production rules. Production rules are shown in a list box and can be added by entering a new production rule in the rules edit box (below the list box) and pressing the Add button. In addition, rules contained in the list box can be updated or deleted by selecting the list box entry, causing the rule to appear in the rules edit box. This rule can then be adjusted and updated in the list box by pressing the Update button, or removed from the list box by pressing the Delete button. Pressing the Clear button allows for an entirely new L-system specification to be entered, clearing all of the current parameters.

Within the production rules the following turtle movements and options can be specified:

Some example L-systems are provided in a list box on the left of the control panel. They can be selected by clicking on the desired item in the list box.

Once the L-system has been specified, as mentioned above, press the Apply button to create the drawing.