Introduction

Java Lindenmayer Systems is a desktop program written to process Lindenmeyer Systems. It has been written entirely in Java. Thus, it should run on any operating system. The user interface allows multiple inner windows to compare different graphs to each other. It also allows saving of the graphs as JPG or PNG images.

Lindenmayer Systems

Lindenmayer Systems are part of fractal math. In essence, they are interested in describing that the world is self-replicating. For example, a simplified tree can be described as the main log separating into 3 big branches. The big branches separate into 3 medium branches etc. Thus, repetition 3 branches, which each separate into three more branches and so force. Or, the growth of a bacteria population can be described as a young bateria maturing in stage 1. In stage 2, the mature bacteria splits into two young bacteria. Stage 3, has two young bacteria maturing.

The self-replicating behavior is described basically using string re-writing. It starts with an axiom, a series of letters. Then there is a set of rules, which describe a new letter (or multiple) that each letter in the original string should be replaced with. Repeating these translations (or permutations) in the end will build the structure of a big tree with hundreds of branches out of the simple starting rules.

The second aspect of Lindenmeyer systems are rules to render the strings graphically. They are based on turtle graphics.

For a proper introduction to Lindenmeyer systems, please refer to some of the available online resources.

Installation

I would like to have a nice self-installer. Unfortunately, I don't have a commercial installer package like InstallShield. The free solutions that I looked at, didn't seem to work for what I wanted, or outright didn't work.

So, here are the steps:

  1. Download the zip file here.
  2. Unzip the file and place it somewhere on your computer, e.g. c:\Program Files\jlsystem.
  3. If you don't have a Java Run Time Environment installed, you should download it here.
  4. Go to the 'dist' subdirectory, and double-click on fractalplay.exe.
  5. Enjoy

Information for Developers

The source code to the application is included. The application builds with ant. The build.xml file is in the root directory.

Sourceforge Home

Screenshots


Iteration of a Koch snowflake


Various systems


Various systems


Various systems

Contribute

If you want to help, I'm looking for the following:

  • Either someone, who packs the app in a nice installer, which automatically installs the JRE, if necessary, or someone pointing me to a good and free one.
  • More rules for Lindenmeyer systems to include in the provide samples.
  • Information on building 3D Lindenmeyer systems or more advanced once. I used to have a good book, which I lost during a move. The current state is all that I could reconstruct from memory and public web sites.
  • Of course bug reports and feature requests are welcome.

About the Author

My interest in Lindenmayer systems started in high school. I had heard the buzz about fractals. Not knowing, where to start, I ended up with a book on Lindenmeyer systems, and I was amazed with beauty of the drawings. So, I wrote my first implementation in C. The interest lay dormant, until my employer needed a prototype to test Java programming on Palm Pilots. So, I wrote an implementation using J2ME 0.2. It was very funny. The application crashed very quickly, because the strings used up all of the memory. Then this year, I had some free time, and decided to make my best implementation yet. And, I'm very happy with it. Grammar for 2D systems is almost complete. It's very pretty to have inner windows to compare the different graphs with each other.

You can contact me at tfischer@javayogi.com.

Resources