# Doug Dunham and John Shier

The goal of our art is to create aesthetically pleasing fractal patterns. The basic algorithm works as follows: we choose a motif and iteratively place smaller and smaller copies of it at random within a region. Each new motif copy must not overlap previously placed motifs or the region's boundary. If the sizes are chosen appropriately, the motifs will completely fill the region in the limit. For this to happen, the sizes must obey an inverse power law: the area of the n-th motif is proportional to 1/(N+n)^c, where N and c are parameters, with N at least 1, and 1 < c < c_max, where c_max depends on the shapes of the motif and region and is typically less than 1.5. The fractal dimension of the motif pattern is 2/c.

This is a fractal pattern whose motifs are monarch butterflies. We have modified our usual rule that motifs cannot overlap by allowing the antennas - but not the rest of the butterfly - to overlap another butterfly. Expanding on the area rule of the Goals statement, the area of the n-th motif is given by A/(zeta(c,N)(N+n)^c), where A is the area of the region, and zeta(c,N) is the Hurwitz zeta function, a generalization of the Riemann zeta function (for which N = 1; our algorithm starts with n = 0). For this pattern c = 1.26, N = 1.5, and 150 butterflies fill 72% of the bounding rectangle. The colored pattern is a good approximation to that of a female monarch butterfly.

This pattern shows an extension of our basic algorithm in two different directions. First, the pattern repeats both horizontally and vertically, so that it has p1 symmetry in crystallographic notation. Second, the orientation of the rhombi is controlled by a smooth function of its position, creating a flowing pattern. Of the course underlying orientation function must have p1 symmetry too. Another consideration to create a flowing pattern is to keep the rhombus motifs close in size. This can be achieved by picking a large value of N, 120, for the Hurwitz Zeta function. Also since the rhombi pack together pretty well, we can use a high value of c, 1.55 in this case. This combination of N and c produces a 71% fill with 1000 rhombi.