README.ifscompose
1IfsCompose
2----------
3
4IfsCompose is a plug-in for GIMP that allows
5the creation of Iterated Function System fractals by direct
6manipulation onscreen of the component transforms.
7
8
9IFS Fractals
10------------
11
12You may be familiar with IFS's from the screen
13hack 'Flame'. They are also the basis of fractal image compression.
14
15For a brief introduction to IFS's see Foley and van Dam, et
16al,. _Computer Graphics, Principles and Practice_, 2nd Ed.,
17(Addison Wesley, 1990).
18
19The standard references in the field are Michael Barnsley's books (though
20I haven't looked at them yet):
21
22M. Barnsley, _Fractals Everywhere_, Academic Press Inc., 1988.
23M. Barnsley and L. Hurd, _Fractal Image Compression_, Jones and
24Bartlett.
25
26Briefly, you take a point and repeatedly apply one of a set of
27transformations to it, choosing randomly between them, and plot the
28point at each step. An interesting result (the Collage Theorem) says
29that if you can find a set of transformations that break up an image
30into smaller copies of itself, then the resulting fractal exactly
31reproduces the original image. For example, here is a classic image
32of a leaf and the same image with the four component transforms
33colored distinctively.
34
35But the best way to appreciate this may to install this program and
36try it out. I've extended the basic concept as found in
37Foley and van Dam to include transformations in color space as
38well as in real space.
39
40Installation
41------------
42The included Makefile should work with minor modifications on most
43systems if you have installed Gimp normally. Put the resulting binary
44in ~/.gimp/plug-ins or the system-wide plug-ins directory.
45
46The included files gtkaspectframe.c/.h implement a modified frame
47widget that guarantees that the aspect ratio of the child widget
48remains constant when the parent is resized. It's sort of specialized,
49but if you think it would be useful for other purposes, let me know
50and I'll lobby for its inclusion in the standard gtk.
51
52Use
53---
54The interface is somewhat complex and it may take you a little while
55to get the hang of it. (There are 19 parameters for each
56transformation in your fractal, after all). The best way to learn is
57probably to start by making small changes, and seeing what they
58do. Click on the transformations (represented by polygons) in the
59design window to manipulate them interactively.
60
61Button-1: rotate/scale
62Button-2: distort
63Button-3: move
64
65If you hold down shift while clicking, you can select multiple polygons
66to apply the transformation to.
67
68Try not to click too near the center of a polygon, as this will
69amplify your actions.
70
71Note that if you render onto an image with an alpha channel, the
72background will be transparent (very useful for compositing several
73fractals), otherwise the background will be the current background.
74
75There are tutorials and some example images at:
76
77 http://www.gtk.org/~otaylor/IfsCompose/ifs_tutorial/tutorial.html
78 http://tigert.gimp.org/gimp/ifs-compose/
79
80
81Have fun!
82
83Owen Taylor
84