Don't know what to do? Check out the instructions Back to
Is the applet having trouble loading? Check out the FAQ

Your browser has java disabled.

Quick Start

If you want to get started quickly, select a system from the Predefined drop-down box. Then click the Refine and Degrade buttons a few times, and check out the cool designs.


Controls

Predefined drop-down box Provides a set of predefined L-Systems. Select one to automatically load it.
Axiom field Specifies the axiom for the L-System (see syntax below).
Substitution rules The combo box specifies the letter that is to be replaced, and the text field specifies the substitution rule (see syntax below).
Angle Specifies the unit of rotation for a single + or - command.
Initial X Specifies the starting X coordinate. The drawing area is from -300 to 300.
Initial Y Specifies the starting Y coordinate. The drawing area is from -300 to 300.
Initial Angle Specifies the starting direction. Goes from 0 pointing right, counter-clockwise to 360 pointing right again. Angles outside the range of 0 - 360 are also valid.
Initial Length Length of a line segment drawn at refinement level 0.
Reduction Factor Amount to divide the line segment length after each refinement.
Change Background Allows you to change the background color.
Color mode How to colorize the L-System.
Single Color Makes the entire L-System one color. You can change the color with the Change Color button.
Color Gradient Makes the L-System gradually change color as it is drawn. You can specify the starting, middle, and ending colors with the three Change Color buttons. If Loop Color is enabled, the L-System will transition back to the first color as it finishes drawing. If Vibrant Transitions is selected, the transition colors between the starting, middle, and ending colors will be bright.
Color by Segment Letter Makes the L-System a different color for each draw command. The segment letter drop-down box, let's you select a draw command. The color box shows you the current color assigned to that letter. The Change Color button allows you to specify the color to use for that letter.
Color by Bracket Depth Colors the L-Ssytem based the bracket nesting structure. This is particularly useful for coloring plant-like systems. Whenever an open bracket ([) is reached, the color used for drawing changes to the next color in the list. Whenever a close bracket (]) is reached, the color changes to the previous color in the list. You can define colors for up to 25 levels of nested brackets.
Refine button Increases the refinement level. This adds one iteration of substitutions.
Degrade button Decreases the refinement level. This undoes one iteration of substitutions.
Apply button Applies any option changes you have made to the drawn L-System. Note: selecting an L-System from the predefined drop-down box does not require clicking the apply button.


Syntax

A - Z   Draw a line segment. May be replaced by an arbitrary command sequence.
a - z   Do nothing. May be replaced by an arbitrary command sequence.
_A - _Z   The pen is moved, but no line is drawn. This is replaced as if the underscore was not there.
+   The current direction is rotated once counter-clockwise by angle degrees.
-   The current direction is rotated once clockwise by angle degrees.
[   Save the current position and direction.
]    Restore the previously saved position and direction.


FAQ

The applet won't load. What can I do?

First make sure that your browser has java enabled. If it is, and it still doesn't work, try updating your java. You can download JRE 5.0 update 5 here. If it's still not working, try closing the browser and opening it again. (I've seen this work with Firefox on Linux. I'm not sure why it happens.)

The applet hung while drawing the L-System. What do I do?

Your best bet is to reload the page. Hopefully, I'll get around to fixing that someday.

Is there a way to zoom?

Technically no. Practically yes. You can increase the initial length to zoom in, and decrease the initial length to zoom out. You may need to adjust the Initial X and Initial Y to zoom in on the particular area you want.

Why are some of the predefined systems more complicated than they need to be?

Some of the predefined systems use extra substitution rules that are not necessary to create the desired shape. However, the third coloring option: Color by Segment Letter allows different colors to be drawn for each letter. The extraneous letters and substitutions are to create more interesting colorings.

Where can I find specifications for more L-Systems?

They're out on the web if you take the time to look for them. Just be aware that although syntax is similar, not everyone uses exactly the same syntax. Paul Bourke has a great website with many different types of fractals. Several of them are L-Systems.