fun with Elm and L-System : fractal plant

This is part 7 of a series.


Last time out we imple­mented the Dragon Curve exam­ple from the L-System wikipedia page. Now, we’re finally at the end of our journey, let’s see how we can implement the Fractal Plant example in Elm.

Example 7 : Fractal Plant

Let’s start by defining our L-System:

image

What’s interesting about the Fractal Plant is that it combines elements from Pythagoras Tree (the use of a stack) and other L-Systems we looked at recently.

image

Here’s how it looks, by gen 7 the plant looks pretty good!

fractal_plant

In fact, with the implementation we ended up with, we can use it to support any number of L-Systems so long:

  • ‘F’ is the only symbol that means “draw forward”
  • we can programmatically change the angle for ‘–’ and ‘+’ (easy!)

with that, let’s take a couple of the examples from LSystemBot’s tweets and see them in action!

Example 7.1

image
l-system-bot-01

Example 7.2

image
l-system-bot-02

Example 7.3

image
l-system-bot-03

So that’s it guys, hope you’ve enjoyed this series! Please let me know via the comments if you like to see more mini-series like this one.

Live Demo (here)

Use LEFT and RIGHT arrow keys to evolve/devolve the L-System.

Source Code (here)

Links