It is not easy to define the term "fractal." One of the
basic ideas is *scale invariance*. This means that
there are arbitrarily small pieces of the
set such that, when each piece is "scaled-up" (that is, seen under a high
power microscope), it looks very similar to much larger
pieces of the set. This property is also referred to as
*self-similarity*. For some fractals, the self-similarity
is approximate or statistical in nature. But for many
common fractals, the similarity is exact. That is, the
fractal is made up of pieces that are identical to the
complete fractal, except that they have been scaled down to a smaller size.
(In fact, some distortion of the pieces is allowed: The pieces
are obtained by applying *affine transformations* to
the complete fractal.) For such self-similar fractals,
it is possible to define a *fractal dimension*, which
can have a non-integer value. (The term "fractal" comes
from "fractional dimension.")

With one exception, the exhibits in the Fractals Gallery are self-similar fractals in the plane. (The exception is the Mandelbrot Set exhibit, which is a special case and is not treated here. See the Mandelbrot documentation for information on that exhibit.)

To construct one of the self-similar fractals in this gallery,
the basic operation is to start with a single line segment from a point A
to a point B, and to replace that line segment with a piecewise linear
path from A to B. The pattern formed by this piecewise linear path is
the motif that defines the fractal. After the first replacement, *each
line segment* in the piecewise linear path is then itself replaced
with a copy of the very same piecewise linear path, but scaled down to
match the size of the line segment that is being replaced (and also
rotated and translated into position). The process is then repeated over and over;
at each stage, every line segment in the figure is replaced with a suitably transformed
copy of the original piecewise linear path. The limit of this process, as the number
of repetitions approaches infinity, is a true fractal. The result of a finite
number of repetitions is an approximation for that fractal.

When the fractal exhibit is first displayed, an animation is run that shows this construction. The first frame of the animation shows a few line segments; the substitution process will be applied to each of these segments. After that, each frame is obtained by substituting the basic piecewise-linear path for each of the line segments in the previous frame. This continues for a specified finite number of steps. The number of steps is specified by the parameter named "Recursion Level." Recall that you can change this parameter -- and any exhibit parameter -- using the "Set Parameters" command in the "Settings" menu. Also, note that you can re-run the initial animation at any time by selecting the "Create" command from the "Action" menu.

Each of the self-similar fractal exhibits in this gallery actually
represents a *family* of fractals.
The members of the family have different
fractal dimensions, ranging between one and two. The "Morph" command
in the "Animation" menu morphs the image through the parameter space that
defines the family. At the start of the morph, the image consists of simple
line segments, and the dimension is one. As the morph proceeds, the
fractal dimension increases and the fractal becomes more complicated and
"thicker." As the end of the morph approaches, the fractal comes closer to
filling an entire region of the plane. At the very end, it becomes a "space-filling
curve," with dimension two. The fractal dimension is controlled by the
parameter named "Dimension Factor," which can be changed using the
"Set Parameters" command. (Unfortunately, the "Dimension Factor" does
not directly specify the fractal dimension, since that quantity is not
always easy to determine.)

Note that for the Hilbert Curve Exhibit, the default view shows the space filling curve that is at one end of the family of fractals. To see other members of the family, which have fractional dimension less than two, use the "Morph" command or change the value of the "Dimension Factor" parameter.