Iterated Function Systems

Many fractals can be described with iterated function systems, or IFSs.

What is an IFS?

An iterated function system is a finite set of mappings on a complete metric space. Or perhaps more understandably, a set of transforms that make things smaller. In practice affine transforms are best. If you start with an arbitrary point, and repeatedly iterate transforms selected at random, you can generate a fractal.

Examples

By convention an IFS is written in rows of numbers in the form

    a    b    c    d    e    f    p

which describes the transform λ(x,y).(ax+by+e,cx+dy+f). The value p represents the percentage of the fractal's area generated by the transform. Theoretically it is not required but if you select it well, the fractal is drawn much more efficiently.

Here are some classics to try:

  • The Barnsley Fern
         0.00   0.00   0.00  0.16  0.0  0.00   0.01
         0.85   0.04  -0.04  0.85  0.0  1.60   0.85
         0.20  -0.26   0.23  0.22  0.0  1.60   0.07
        -0.15   0.28   0.26  0.24  0.0  0.44   0.07
    
  • The von Koch Curve
        0.3333   0.0000   0.0000   0.3333   0.0000  0.0000   0.25
        0.1667  -0.2887   0.2887   0.1667   0.3333  0.0000   0.25
        0.1667   0.2887  -0.2887   0.1667   0.5000  0.2887   0.25
        0.3333   0.0000   0.0000   0.3333   0.6667  0.0000   0.25
    
  • An IFS Renderer

    Enter your IFS in the textarea below and hit or just pick one of these:

    Whoa! Your browser doesn't support canvas?!?!