Click Here to Start the Full-Size Fractal Drawer
Click Here to Start the Small Fractal Drawer
Click Here to Start the Simplified Full-Size Fractal Drawer with Atractor Only (Mostly for Play)
You've heard about fractals, probably seen fractal graphics in movies and on TV., maybe seen fractal pictures, or read Glick's Chaos but unless you're a programmer, you probably haven't created your own. Now you can and without any numbers; just point and click. Now that Java allows programs to be run on almost any machine, you can borrow mine.
Learning about fractals can be, to quote Spock, fascinating. Fractals occur when there is feedback and life is full of ...feedback, whether you ask for it or not. Nature is predominantly fractal. It has been observed that the fractal dimension of natural things surprisingly consistent; about 2.2. Clouds, mountains, trees, and fire abound in fractal graphics because the graphics processes mimic the natural ones; they involve feedback. So, when you're done playing with this program, send me yours. For further reading, I feel that by far the best book on fractals is the magnum opus Chaos and Fractals New Frontiers in Science by Peitgen, Jurgens, and Saupe. It is thorough yet accessible.
Technical Description( Non-technical readers skip this
This program is initially deterministic ( cf. Fractals Everywhere by Micheal Barnsley p. 80 ) then when pixel size is reached ( the adaptive cut method, cf. Chaos and Fractals by Peitgen, Jurgens, and Saupe ) the program switches to a depth first search of fixed depth. The "Attractor" button uses the senile depth first search technique of Tim Greer
The controls of this program are simple and you should probably dive in and start drawing but to get pretty fractals and know what changes to make to improve them it is important to understand is the process itself. If you already understand iterated function systems, start drawing or read about the controls below. It is best to try the program before reading about the controls.
Have you ever held two mirrors facing each other and peered over one? You see an image repeating seemingly forever receding to infinity. Two aspects of this are important. First, each mirror makes it possible for the other to reflect over and over; the reflecting process is iterated. Second the images seem to shrink with distance, down to a single point. This point is called a fixed point because it represents a single path that light could follow forever and still reach your eye. If you could arrange three or four mirrors facing each other light could bounce in combinations at several different places so you might expect a few more such paths. In fact the number can be infinite and these fixed points can form a fractal.
In an iterated function system the process has been called a Multiple Reductive Copy Machine, an MRCM. It is as though you place the black rectangle drawn on the second screen on your photocopy machine and make a transparent reduced copy of this rectangle. Then you paste that on a collage. Where a copy is pasted is determined by where you draw each rectangle on the first screen. I use the word collage because you will draw several rectangles on the first screen which causes the program make several copies of corresponding sizes and paste them into one new picture. This is one iteration of the MRCM. You then make exactly the same copies of your collage to make a second collage...and on and on. Because the copies are reduced you get more and more copies of smaller rectangles and they will converge to fixed points determined by your reduction and placement.
To envision this you should begin with two rectangles on the first screen and darken the entire second screen. Then choose one iteration on the colored boxes to the right. Click on the button at the bottom marked "Yours" and you will see the two rectangles of the first screen in black: the reduced copies. Then choose two iterations and click on "redraw". Now you have two copies of the two copies. Then do three, then four, and so on. Then click on "initialize" and choose a smaller rectangle on the second screen. Now, choose two different rectangles on the first screen and repeat. Try them in several different locations; the variety is surprising. Then choose three rectangles, which means that you are putting three copies on each collage. You should always start with a low number of iterations and work your way up, to see the system evolve.
The orientation of each "photocopy"( upside down, rotated, or turned over) in the collage makes a big difference. To see this a good exercise is to draw three half-screen by half-screen squares in three of the four corners of the screen. Each square can be drawn with eight different orientations making 256 possible ways of doing this. There is considerable variety in the resulting fractals so this is important to know. You can tell the orientation of the rectangle with the help of the colored "L"'s drawn in each. The "photocopy" is placed in the square so that an L in the upper left corner of the original would exactly cover the colored one. Next, try a large rectangle with two medium size ones. What would happen if you had a fractal with two rectangles that was interesting and you kept them but added a rectangle that filled the entire screen? It would have the effect of adding together all the collages produced at each stage. This would be interesting except that the first one would cover all the rest. On the other hand if you make the big one just a little smaller and slightly off center the results of each stage would march in the offset direction and shrink as they went. Some of the prettiest fractals are made this way. If you rotate the big one a little the results of each stage will rotate as they march. The Barnsley Fern is done this way. The bottom two branches are small copies of the entire fern and one big rectangle produces copies of those leaves up the stem. So which came first, the leaves which are small copies of the whole fern or the fern which is constructed from copies of the leaves. Neither, it is the interaction between different components of an MRCM that make them so endlessly fascinating.
There are three screens, with movement between them controlled by buttons at the bottom of the screens. The button marked "Initialize" takes you to the second screen from anywhere. "Restart" at the bottom of the second screen takes you back to the first screen where you will find all drawings as you left them. The remaining buttons at the bottom of the second screen denote fractals. "Yours" draws a fractal from the information you drew on the first screen and the remaining buttons are names of preprogrammed fractals. All of these take you to the third screen where the fractals are drawn.
The remaining buttons make changes to the screen you are on. on the first screen you click on "Redraw" to erase the drawings and set you to begin again. On the third screen "Redraw" computes and draws the fractal already chosen at the chosen number of iterations . If the number of iterations has not been changed it simply redraws and if the number of iterations has been increased it starts computing where it left off. The number of iterations is chosen by clicking one of the colored checkboxes to the right of the second and third screens. There are four buttons at the bottom of the first screen, numbered one through four that erase a single parallelogram drawn. These boxes are colored the same color as the "L" in each parallelogram but not all browsers show these colors so you may have to remember the order in which they are drawn. Before you draw a parallelogram the label at the bottom left tells you the number of parallelogram you are about to draw.
Because large rectangles produce an important and commonly used effect, I have included slidebars at the bottom and sides of the first screen that draw a large square. Moving the right slidebar up will cause an upward translation in the fractal and moving the bottom slidebar to the right will cause a clockwise rotation in the fractal. Both slidebars would be moved about a third of the way to produce the upper leaves of the Barnsley Fern.
On the second screen you use the mouse to draw the initial rectangle to be "photocopied". Although it has no effect on the true fractal a computation saving algorithm from Peitgen, Jurgens and Saupe of culling small rectangles and saving them as points will shorten long computations if you start with smaller initial rectangles. These rectangles drawn using the mouse in the usual "click and drag" way. The "true" fractal is determined entirely by what is drawn on the first screen.
On the first screen remember, the "photocopies" are reduced, turned, and even sheared to fit exactly inside the parallelograms you draw. You do this with the mouse in two steps. You "click and drag" to draw a baseline,( corresponds to the top of the "photocopy" ) and then click and drag to determine the far corner of the parallelogram. This will become obvious as you do it but what is not obvious is the effect of direction. If you drag from right to left rather than left to right it has the effect of turning the "photocopy" over. Colored "L"'s have been included to help you keep orientation straight. The "photocopy" is fitted so that an "L" in the upper left corner would exactly cover the colored one. This makes a quite a difference in the final fractal so as you learn, try many different orientations.
Now you're a pro. If reading about this program has been tedious, doing it certainly is not. The variety is endless. If I could patch the output into a machine that drew designs for T-shirts, I'd probably be rich now. This program uses a direct computational method and so has limitations, but I've enjoyed it and I hope you do as well. So why are you sitting there reading this...start drawing!