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.
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
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 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.
- The flame fractal is quite similar to IFS but adding non-linear transformations, not just affine ones.
- new class of escape time fractals: "Kaleidoscopic IFS by Knighty
- IFStile is a cross-platform (Windows, Mac, Linux) IFS freeware program
- Wikipedia page on IFS
- Classic Iterated Function Systems by Larry Riddle, Agnes Scott College