EXPLORABLES

# Hokus Fractus!

This explorable illustrates one of the simplest ways to generate fractals by an iteration process in which elements of a structure are replaced by a smaller version of the whole structure. Similar to the ** Weeds & Trees Explorable**, these structures can be viewed as Lindenmayer systems. A great variety of examples of such fractals exist.

Here you can explore some of the most famous ones (e.g. the *Koch Snowflake* and the *Sierpinski Triangle*) and a few that aren't so well known (e.g. the *Golden Dragon* or the *Anti Koch Snowflake*).

#### This is how it works:

First, *select* a system (my favorite is the **Golden Dragon**) and *iterate the system by repeatedly pressing the play button*.

Initially, the object is usually just a single line segment, or a set of segments. When you **press play** each segment is replaced by a set of smaller segments. When you press play again, this process is repeated and the whole structure evolves into a fractal curve characterized by a non-integer dimension (typically).

Each of the different systems differs in it's **rules**, i.e. in the way an initial segiment is replaced by a set of smaller ones. For example, in the **Dragon Curve** the initial segment is replaced by two segments that make a 90° angle. The smaller segments are scaled down by a factor $1/\sqrt{2}$. In the **Sierpinski Triangle** the initial segment is replaced by three smaller lines that are scaled by $1/2$. This way, as the number of iterations increases, the number of segments increases and their individual length decreases.

#### Just a tiny bit of math:

To understand a bit of the fractal nature of the structures and the concept of fractal dimension we can look at the **Sierpinski** curve again. Here we begin with a single ($N _0 = 1$) line that has length $l _0 = 1$. After one iteration we have $N _1=3$ segments of length $l _1 = 1/2$, at step 2 we have $N _2=9$ segments each of length $l _2=1/4$. At iteration step $k$ we have

[ N _k = 3 ^k \qquad l _k = 2 ^{-k} ]

which means that the total length of the curve is $L _k = (3/2) ^k$ which becomes infinitely large as $k\rightarrow \infty$.

We can define a dimension $D$ associated with the structure like so:

[ N _k \sim \left( \frac {1}{l _k}\right)^D. ]

In the case of the Sierpinski triangle this gives $D=\log 3 / \log 2 \approx 1.5849$ which is between 1 and 2, so a bit larger than the dimension of a line, and smaller than the dimension of a plane. For the Koch Snowflake we get $D = 2 \log 2 / \log 3 \approx 1.2618$, also between 1 and 2.

For the Dragon Curve we obtain $D= \log 2 / \log \sqrt 2 = 2$, so it's two dimensional, which you can also see if you iterate it sufficiently often. The same is true for the **Terdragon Curve**.

#### Symbols:

Each one of the systems above can be represented as a series of symbol sequences, each sequence representing the geometry of the structure at the corrensponding iteration step. For example,
the **Sierpinski** triangle can be represented as

- $A$
- $B-A-B$
- $A+B+A-B-A-B-A+B+A$
- $...$

at iterations 1,2,3,... This series is generated by the two replacement rules $A\rightarrow B-A-B$ and $B\rightarrow A+B+A$. If we now interpret the letters *A* and *B* as "draw a segment" and the symbols *+* and *-* as "turn left" and "turn right" by 60°, respectively, we obtain the first three geometries of the Sierpinski triangle.

For each of the fractals above a similar system can be defined. For more information see Lindenmayer systems.