The best way to describe my final project for 161 is plants. That's what I set out to do. Write software that would generate plants.

I have never even heard of L-systems prior to undertaking this project. When I began I had no idea how they worked or how to

implement them. What possibilities they allowed for weren't even imagined.

    Before I began the project I did a great deal of research. I started out with the class text book to see what kind of information it

contained. I found it a good starting place  for L-systems because it gave hints as to how they worked or what may be accomplised

with them, but the information it contained was sparse, and more detailed information was required. My next step was to explore

my personal collect of books on 3D graphics and see what help they may provide. Two texts in my library contained information, but

it was still what could be considered a passing mention. Lastly, a Google search and the long dry experience of eliminating every link

one at a time after assessing its informative value. There were two things I learned on the internet. That the L stood for Lindenmayer and

that Mr. Lindenmayer had written a book. The Algorithmic Beauty of Plants. A quick on-line check to determine if the Science Library

had a copy, and I was off.

    The book is long and the information is dense but I have to say reading about L-systems is one of the most fascinating things I've

done in my time here at UCSC. I had no idea the complexity they were capable of or the numerous types and subcategories of

L-system that exist.

    I decided that the best approach within the confines of this project was to constrain myself to a limited number of implementations of

one type of system. Bracketed OL-systems were selected largely for their pleasant appearance combined with the limited grammars required to

produce them. Six different grammars or symbol sets together with rules where created based on the work in Lindenmayer's book. Then controls

were added to allow user interactive adjustment of the angles controlling the construction of the plant, the angle of rotation required by the

grammar between branches and the angle of offset of placement around the Y axis of the tree.

    The final result is shown here. Special attention should be given to the complexity setting. For the F based trees a complexity above 4

should not be used except on particularly powerful computers systems, as it slows the computer horribly.

Use of the application is simple. Select a tree type, a complexity level and press the "generate" button. The Object controls allow you to adjust the view to better

 see what the L-system is producing.