# Fractals/Iterated function systems

Iterated Function Systems (or IFS) is the name given to a method for calculating fractals based on a number of contractive affine transformations.

## Researchers[edit]

Michael Barnsley did a lot of work on this type of fractal, including naming it.

Australian mathematician John Hutchinson (who called the system a "Multiple Reduction Copy Machine" or MRCM), also contributed to the field.

## The Basic Method[edit]

There are quite a few variations on this method, but the basic idea is still the same.

- Define a number of
**contractive**affine transformations in the unit square (these are also known as "Hutchinson Operators"). - Insert points at random positions into the unit square (or another initializing region of R2)
- Make a random selection from the list of transformations, and apply it to the point.
- After some run-up number of iterations, begin drawing the points into an accumulation buffer.
- Continue inserting points until the desired coverage (or quality) is achieved.
- The accumulated values will usually need a log-transform to bring them into good viewing range.
- Sorting the positions of, and resampling the points into an image using a filter kernel can give a better resulting image but is a lot more costly in terms of memory and computation.

## Affine Transformations[edit]

Affine transforms are a geometrical construct that comprises translation, rotation, scaling and shear in 2 or more dimensions. A 2-dimensional affine transform can be conveniently stored in a 3x3 matrix for the transformation of homogeneous 2D points. These transforms are applied by simply multiplying the point's position by the matrix.

## Related Fractals[edit]

The flame fractal is quite similar to IFS but adding non-linear transformations, not just affine ones.