Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Modeling and Rendering of Nonlinear Iterated Function Systems Eduard Gröller Technical University Vienna Institute for Computer Graphics Karlsplatz 13/186/2 A-1040 Vienna, Austria Tel.: +43(1)58801-4582 FAX: +43(1)5874932 e-mail: [email protected] Abstract Iterated Function Systems are typically defined through sets of contractive linear transformations. The theory of Iterated Function Systems is based on the contractivity but not on the linearity of the defining functions. Piecewise bilinear distortions of grids are used in this work to specify nonlinear Iterated Function Systems. Nonlinear Iterated Functions Systems are characterized by a higher degree of flexibility and greater modeling capability than their linear counterparts. Modeling and rendering aspects are discussed. Limit sets of 2D nonlinear Iterated Function Systems are represented by approximating point sets. Limit sets of 3D nonlinear Iterated Function Systems are either rendered by displaying approximating point sets (z-buffer approach) or through ray tracing an approximate set of 3D solids. Example images of a test implementation are presented. Introduction An Iterated Function System (IFS) is a concise specification of a typically complex and fractal geometric shape [1]. The following somewhat mathematical introduction describes the most important definitions and theorems Iterated Function Systems are based on. Given a complete metric space (X, d), with X being a set and d:X× X→R being a distance function on elements of X, an IFS is defined through a finite set of affine, contractive functions w i: X→X (notation: IFS {X; w1, ..., wN}). A function wi is contractive if and only if there exists a so called contractivity factor si ∈ [0,1), such that d(wi(x), wi(y)) ≤ si∗d(x,y) ∀x,y ∈ X The metric space (X, d) is now used to define a metric space (H(X), h), where H(X) contains the non empty compact subsets of X and h(d) denotes the Hausdorff distance between elements A and B of H(X): h(A,B) = max{max min d(x, y), max min d(x, y)} x∈A y∈B y∈B x∈A As H(X) contains only the non empty compact subsets of X the distance h(A,B) is well defined for A, B ∈ H(X). In our work set X will either be 2D or 3D space and H(X) will thus either consist of most 2D or 3D objects one can think of. The Hausdorff distance on elements of H(X) allows the comparison of 2D or 3D objects. Iterated Function Systems specify invariant limit sets where convergence is with respect to the Hausdorff distance h(). A function wi:X→X is easily extended to wi:H(X)→H(X) by wi(A) = {wi(x) | x∈A}, A∈H(X) Given an IFS {X; w1 , ..., wN} then the contractive functions wi (extended from functions X→X to functions H(X) →H(X)) specify a function W:H(X)→H(X) as follows (Hutchinson operator): N W(A) = U w i (A), A ∈H(X) i=1 Function W() is contractive with contractivity factor s = max {s 1 , ..., s N}. Due to the contractivity of W() it can be shown that there is a unique set A’, called the attractor of the IFS, that satisfies A’ = W(A’) Furthermore any element A∈ H(X) will be eventually mapped onto this attractor A’ under repeated application of function W(), i.e., A’ = lim W n (A) n→∞ ∀ A ∈ H(X) An IFS is thus a very concise description (e.g., an affine function in the plane is specified with only six numbers) of the attractor A’ which is very often a fractal set. Algorithms for calculating the attractor A’ of an IFS are discussed in a later section. IFSs have been used in computer graphics, e.g., for modeling [2], [3] as well as for data compression [1], [4]. For further details on fractals and IFSs see for example [5]. Nonlinear Iterated Function Systems The theory of IFS, i.e., unique attractor A’, convergence of any set A to this attractor A’ under application of function W(), is based on the contractivity of the functions wi and W. There are some reasons, which are however not imperative, to use affine maps for the specification of functions wi: affine functions are easily manageable, they are well understood and they can be specified in a concise way through a matrix and translation vector (see figure 1). Affine transformations describe linear mappings, i.e., lines are mapped to lines, and they can be intuitively visualized by showing the effect of the transformation on a simple shape, e.g., rectangle or triangle for functions wi:R2→R2 (see figure 1). w3 w1 w2 x 0.5 0 x 0 w1 = ∗ + y 0 0.5 y 0 x 0.5 0 x 0.5 w2 = ∗ + y 0 0.5 y 0 x 0.5 0 x 0.25 w3 = ∗ + y 0 0.5 y 0.5 figure 1: linear IFS {R2; w1, w2, w3}, attractor A’ The usage of nonlinear functions for the specification of IFS greatly increases the number of shapes that can be modeled. In fact there is a well known group of shapes whose elements are attractors of nonlinear IFS {C; w1, w2} of two functions in the complex plane C. These are the so called Julia sets (see figure 2). Julia sets separate, in case they are connected, points in the complex plane with vastly differing dynamic behavior under iteration of fc(z)=z2+c. c=-0.7+0.1i c=-0.5+0.1i figure 2: Nonlinear IFS {C; w1, w2} with w1 = + z - c and w 2 = − z - c In the following a new class of nonlinear IFSs is presented. These new nonlinear IFSs are easy to specify and to model. An affine function is defined by specifying how the function transforms a simple shape, e.g., a rectangle. We now define a nonlinear function by specifying how the function transforms a rectilinear grid. Defining a function through the nonlinear distortion of a regular grid (m×n grid in R2 and m×n×o grid in R3) offers additional modeling capabilities which are not achievable with affine transformations. Figure 3 shows two examples of nonlinear variations of the Sierpinski triangle. The attractor in the upper half of figure 3 is defined by three nonlinear functions, the attractor in the lower half of figure 3 is given by one nonlinear and two linear functions. w1 w2 w3 w1 w2 w3 figure 3: Nonlinear variations of the Sierpinski triangle, IFS {R2; w1, w2, w3} The transformation of an interior point P of a rectangular grid is now determined by bilinear interpolation of the adjacent grid points. Figure 4 illustrates the situation in two dimensions. An extension to three dimensions is, however, straightforward. A twodimensional point P=(P x,Py) is given by its two Cartesian coordinates and P denotes the point after transformation. Ps,t is an original grid point and Ps,t denotes the corresponding transformed grid point. Then the transformed point P of an interior point P is calculated as follows : P = (1 - v)∗[P i, j ∗(1 - u) + P i+1, j ∗u] + v∗[P i, j+1∗(1 - u) + P i+1, j+1∗u] with P x − P i,x j u= x P i+1, j − P i,x j and P y − P i,y j v= y P i, j+1 − P i,y j Defining the transformation only for interior points of the grid is sufficient if the transformed grid lies within the untransformed one. This ensures that the transformation of no exterior points is required for the subsequent calculation of the attractor of the IFS. Furthermore, if the transformed grid lies within the boundaries of the untransformed grid then contractivity, which is essential for the existence of and convergence to a unique attractor, is guaranteed. Starting with a sufficiently large grid has the additional advantage of easily producing a bounding volume hierarchy which is then used in rendering the attractor of 3D nonlinear IFS. Details are given in the following section. y y Pi,j+1 P Pi,j+1 Pi+1,j+1 Pi+1,j+1 P v Pi,j v u Pi+1,j Pi,j u Pi+1,j x x untransformed grid transformed grid figure 4: bilinear interpolation of interior point P in R2 Figure 5 shows an example of a 2D linear IFS and figure 6 shows a similar 2D nonlinear IFS. w1 w2 w3 w4 figure 5: linear IFS {R2; w1, w2, w3, w4} similar to figure 6 There are different approaches to define nonlinear functions through grid distortion. One method specifies the transformation of each grid point explicitly. Although this gives a high degree of control on the final outcome it might be cumbersome for large grid sizes. [6] describes some global deformation schemes, i.e., bending, twisting, tapering, that are also applicable to our 2D or 3D grids. Thereby groups of grid points are transformed simultaneously and coherently. With tapering, for example, a nonlinear and non uniform scaling is specified. Functions w1 and w2 of the nonlinear IFS in figure 6 are examples of the bending operation. Twisting describes a non uniform rotation of grid points around a predefined axis. High level manipulation of the 2D or 3D grid enables a fast and intuitively easy definition of nonlinear IFS. Some of these techniques were applied to generate the color plates. w1 w2 w3 w4 figure 6: nonlinear IFS {R2; w1, w2, w3, w4} similar to figure 5 Rendering of Nonlinear Iterated Function Systems There are basically two types of algorithms for the approximate calculation of the attractor of a linear IFS. Both types can be applied with some modifications to nonlinear IFS as well. The stochastic algorithm proceeds as shown in figure 7. P0 = P for n = 1 to nmax do begin w1(Pn-1) with probability p1 Pn = ... wN(Pn-1) with probability pN draw Pn end figure 7: stochastic algorithm for IFS {X; w1, ..., wN} Starting with an arbitrary point P one of the functions w1, ..., wN is selected at random and applied to point P. Repeatingly selecting a function and transforming the previously calculated point (Pn = wi(Pn-1)) yields a sequence of points that, due to the chaotic dynamics of the process, closely approximates the attractor of the IFS (with very high probability). Depending on the choice for the initial point P the first few points of the above sequence may not yet be close to the attractor. They should therefore be eliminated from the approximating point set. A probability p i is assigned to each function wi to account for varying contractivity factors. Probabilities should be chosen so that the generated point sequence uniformly converges to the attractor of the IFS, i.e., functions with low contractivity are assigned a higher probability. As nonlinear functions may have locally varying contractivity, determining these probabilities is not as easy as for linear functions. [7] present a simple algorithm that accounts for the locally varying contractivity of functions used for approximating Julia sets (figure 2). The same strategy, which basically ensures that the point sequence of the stochastic algorithm visits regions of the attractor with low contractivity more often, can be used for nonlinear IFS as defined above. Drawing a point sequence of a 2D IFS is simple. For 3D IFS however an image plane and type of projection (parallel or perspective) has to be defined. In this case we preserve depth information through depth cueing which produces quite acceptable results. Thereby the color values of points farther away from the viewer are attenuated according to distance. A pixel may be assigned the color value of the point closest to the viewer or a weighted average of all points projecting onto the same pixel may be taken. The second algorithm for approximating an IFS is an immediate result of the fact that every object A will approximate the attractor A’ of an IFS under iteration of function W(). Therefore the deterministic algorithm approximates the attractor as follows: A’ ≈ Wnmax(A) where nmax determines the level of accuracy of the approximation. We did use the deterministic algorithm for visualizing 3D nonlinear IFS. Although the stochastic algorithm is usually much faster there are same advantages to use the deterministic algorithm. Starting with a 3D solid A the deterministic algorithm produces a 3D solid approximation of the fractal attractor instead of a mere point set as the stochastic algorithm does. So hidden surface procedures applied to such a 3D approximation greatly increase the depth perception for the viewer. In addition the simulation of complex global lighting effects, e.g., shadowing, shading, reflection, transparency, is often tied to 3D models with surface normals. Fractal objects do not have surface normals which are however required to evaluate a more complex shading model. [3] propose several strategies to simulate nonexistent surface normals of their linear fractals. As we render only 3D approximations, Wnmax(A), of the attractor of an IFS their is no problem with missing normal vectors. Our algorithm for rendering 3D nonlinear IFS uses ray tracing [8] for high quality image generation and follows [3] and [9]. Ray - object intersection testing is the most time consuming step in the ray-tracing process and is accelerated for linear as well as nonlinear IFS by using a hierarchical data structure. Nonlinear functions are chosen, as pointed out above, so that W(A) ⊆ A. Therefore Wnmax(A) ⊆ Wnmax-1 ⊆ ... ⊆ W2(A) ⊆ W(A) ⊆ A constitutes an efficient hierarchical data structure that bounds the attractor on all levels of approximation. Only if a ray intersects an object of Wi(A) then the corresponding elements of Wi+1(A) must be further considered. Due to non uniform contractivity W nmax (A) contains objects of sometimes largely differing sizes. So rendering W nmax (A), i.e., all objects on the same level of recursion, especially visualizes the zones with low contractivity. [3] subdivide objects in low contractivity regions to a much higher level, so as to get the best approximation of the attractor that is possible with respect to the given image resolution. As we are interested in the convergence process itself a fixed level of recursion is appropriate. Two types of initial objects A were used in our deterministic algorithm: spheres and the tessellated outer surface of the grids, which were used to define the nonlinear functions, themselves. Taking a sphere as an initial object has two advantages: First ray - sphere intersection testing is cheap. Second if Wi(A) contains only spheres then Wi+1(A) may be approximated with sufficient accuracy by transforming only the sphere centers and determining the radii of the spheres in Wi+1 (A) considering the contractivity factors of functions wi. With such an approach Wi+1(A) is not determined exactly but only a superset is determined, which is however in most cases sufficient to visualize the convergence behavior of the approximation process. A sphere as initial object therefore allows a fast approximate determination of Wnmax(A) which in turn is an approximation of the attractor A’. Taking the initial (function wi defining) grid as initial object A produces results that are more exact but are, at the same time, also more time consuming: Ray - object intersection testing and recursive refinement (going from Wi(A) to Wi+1(A)) is much more costly with a grid surface than with a sphere. Antialiasing has been done through oversampling. Refinement of objects may stop adaptively as soon as their projection onto the image plane is smaller than a pixel area. For details see [3]. In addition shadow rays are cast to each given light source to determine if a point of intersection is in shadow or not. Implementation, results We have implemented a system for the interactive specification and rendering of 2D nonlinear IFS (in Turbo Pascal) and a system for the high quality rendering of 3D nonlinear IFS (in C++). The color plates (resolution 360×384) show some nonlinear and one linear 3D IFS which have been rendered with either the stochastic or the deterministic algorithm. Corresponding statistics are given in figure 8 and 9. The appendix contains a detailed specification of the IFSs of figure 8. A nonlinear function is thereby defined by specifying the transformations of the points of a regular initial grid. nonlin. IFS "tapering" "twisting" "fantasy" "plant 1" "plant 2" #of functions grid size contract. 4 nonlinear 2×4×2 0.55 4 nonlinear 2×4×2 0.69 5 nonlinear 3×2×3 0.64 5 linear 2x2x2 0.50 5 nonlinear 2x4x2 0.68 comment tapering of Sierpinski tetrahedron twisting of Sierpinski tetrahedron tapering of grid linear plant modeling nonlinear plant modeling figure 8: statistics of examples of IFSs Color plates 1 through 3 show nonlinear distortions of the Sierpinski tetrahedron. Plate 1 and 2 illustrate nonlinear scaling along the vertical axis (tapering). Plate 1 shows the object that results after applying the tapering functions to the initial grid twice. The effects of the nonlinear functions are clearly visible. Plate 2 depicts the resulting attractor visualized with the stochastic algorithm. Plate 3 illustrates nonlinear rotation along the vertical axis (twisting). Portions of the Sierpinski tetrahedron with higher zvalues are rotated more heavily than lower lying parts. Plate 4 is the image of a rather strange looking nonlinear IFS with five functions. Plates 5 through 8 show the difference of linear and nonlinear IFS. Plate 6 displays a plant-like object which is defined by five linear functions. These functions could be defined by matrix operations as well. But as our program handles functions as grid distortions only, the linear functions of IFS "plant 1" are specified accordingly. Plate 8 shows the object which results from somewhat similar but nonlinear functions than those used in plate 6. Using the initial grid as initial object A and taking nmax to be one in plate 5 and 7, allows to visualize how the defining functions of IFSs "plant 1" and "plant 2" work. Plate 7 illustrates the nonlinear grid distortions used to specify the functions of "plant 2". The greater flexibility of nonlinear IFS may be used to increase realism when modeling natural phenomena (compare plate 6 and plate 8). plate 1 2 3 4 5 6 7 8 nonlin. IFS "tapering" "tapering" "twisting" "fantasy" "plant 1" "plant 1" "plant 2" "plant 2" algorithm deterministic, A=grid, nmax=2 stochastic, 1.000.000 pts. deterministic, A=sphere, nmax=6 deterministic, A=grid, nmax=6 deterministic, A=grid, nmax=1 deterministic, A=sphere, nmax=6 deterministic, A=grid, nmax=1 deterministic, A=sphere, nmax=7 figure 9: statistics for color plates Summary Iterated function systems are usually defined by a set of linear contractive functions. Abandoning the linearity of the defining functions allows the specification of nonlinear IFS with greater modeling flexibility. Nonlinear functions are defined through grid distortions. Currently we are working on an interactive module which should enable an easy and intuitive specification of nonlinear functions. Rendering algorithms for 2D and 3D nonlinear IFS have been discussed. Examples show the wide variety of recursive objects which can be modeled with nonlinear IFS. Future work will include parametric approximation of grid points (e.g., with B-Splines or NURBS), more elaborate color assignment (each function of a nonlinear IFS is assigned a color, then different strategies may be used to assign varying color values to different parts of the resulting attractor), grid point animation, etc. There might be some future application of nonlinear Iterated Function Systems for fractal image compression. [10] discuss a pixel based approach that makes use of so called local IFS. Local IFS do not transform the whole underlying metric space but only subsets thereof. As nonlinear IFS are defined on the interior of a regular grid they are local by definition. Right now pixel based fractal compression techniques reduce the tremendous search cost involved to determine the compressing local IFSs by reducing the allowable class of functions (only simple affine transformations like scaling, rotation of 90o, 180o, 270o, horizontal and vertical reflection). Faster algorithm in the future should allow to enlarge the class of admissible functions which could then include nonlinear functions. Nonlinear Iterated Function Systems may be more appropriate to encode pixel blocks which contain, e.g., curved edges, than simple affine transformations. References [1] [2] M. Barnsley, Fractals Everywhere, Academic Press, (1988). E. Gröller, Fractals and Solid Modeling, Computer Graphics Forum 11(3), 415424, (1992). [3] J. C. Hart and T. DeFanti, Efficient Anti-aliased Rendering of 3D-Linear Fractals, Computer Graphics, 25(4), 91-100, (1991). [4] M. Barnsley, L. Hurd, Fractal Image Compression, AK Peters, (1992). [5] H. O. Peitgen, H. Jürgens, D. Saupe, Chaos and Fractals, New Frontiers of Science, Springer, (1992). [6] A. H. Barr, Global and Local Deformations of Solid Primitives, Computer Graphics 18(3), 21-30, (1984). [7] H. O. Peitgen, D. Saupe, The Science of Fractal Images, Springer, (1988). [8] A. Glassner (ed.), An Introduction to Ray Tracing, Academic Press, (1989). [9] J. T. Kajiya, New Techniques for Ray Tracing Procedurally Defined Objects, Computer Graphics 17(3), 91-102, (1983). [10] E. W. Jacobs, Y. Fisher and R. D. Boss, Image compression: A study of the iterated transform method, Signal Processing 29, Elsevier Science Publishers, 251-263, (1992). Acknowledgment The author would like to thank Martin Schwarzinger for implementing an interactive 2D IFS modeling system. Thanks to Johann Schipfer for implementing the rendering software for 3D nonlinear IFS and for his help in generating the color plates. The helpful suggestions of an anonymous reviewer were much appreciated. Appendix In the following the functions of the IFSs used for the color plates are given. Each function is defined by distorting a regular initial grid. A table contains the point coordinates of the initial grid (column 'initial') and for each function of the IFS the corresponding transformed grid point is given (columns 'f1', 'f2', ...). For reasons of uniformity the linear functions of IFS "plant 1" are given as grid distortions as well (table 5). initial 0.00 0.00 0.00 0.00 0.00 100.00 0.00 33.33 0.00 0.00 33.33 100.00 0.00 66.67 0.00 0.00 66.67 100.00 0.00 100.00 0.00 0.00 100.00 100.00 100.00 0.00 0.00 100.00 0.00 100.00 100.00 33.33 0.00 100.00 33.33 100.00 100.00 66.67 0.00 100.00 66.67 100.00 100.00 100.00 0.00 100.00 100.00 100.00 f1 f2 f3 0.00 50.00 25.00 0.00 0.00 0.00 0.00 0.00 50.00 0.00 50.00 25.00 0.00 0.00 0.00 50.00 50.00 100.00 6.67 56.67 31.67 16.67 16.67 16.67 4.17 4.17 54.17 6.67 56.67 31.67 16.67 16.67 16.67 45.83 45.83 95.83 13.33 63.33 38.33 33.33 33.33 33.33 8.33 8.33 58.33 13.33 63.33 38.33 33.33 33.33 33.33 41.67 41.67 91.66 20.00 70.00 45.00 50.00 50.00 50.00 12.50 12.50 62.50 20.00 70.00 45.00 50.00 50.00 50.00 37.50 37.50 87.50 50.00 100.00 75.00 0.00 0.00 0.00 0.00 0.00 50.00 50.00 100.00 75.00 0.00 0.00 0.00 50.00 50.00 100.00 43.33 93.33 68.33 16.67 16.67 16.67 4.17 4.17 54.17 43.33 93.33 68.33 16.67 16.67 16.67 45.83 45.83 95.83 36.66 86.67 61.67 33.33 33.33 33.33 8.33 8.33 58.33 36.67 86.67 61.67 33.33 33.33 33.33 41.67 41.67 91.67 30.00 80.00 55.00 50.00 50.00 50.00 12.50 12.50 62.50 30.00 80.00 55.00 50.00 50.00 50.00 37.50 37.50 87.50 f4 25.00 50.00 25.00 25.00 50.00 75.00 31.67 66.67 29.17 31.67 66.67 70.83 38.33 83.33 33.33 38.33 83.33 66.67 45.00 100.00 37.50 45.00 100.00 62.50 75.00 50.00 25.00 75.00 50.00 75.00 68.33 66.67 29.17 68.33 66.67 70.83 61.67 83.33 33.33 61.67 83.33 66.67 55.00 100.00 37.50 55.00 100.00 62.50 table 1: IFS "tapering", 2x4x2 grid initial -60.10 -25.00 -60.10 -60.10 -25.00 110.10 -60.10 8.33 -60.10 -60.10 8.33 110.10 -60.10 41.67 -60.10 -60.10 41.67 110.10 -60.10 75.00 -60.10 -60.10 75.00 110.10 110.10 -25.00 -60.10 110.10 -25.00 110.10 110.10 8.33 -60.10 110.10 8.33 110.10 110.10 41.67 -60.10 110.10 41.67 110.10 110.10 75.00 -60.10 110.10 75.00 110.10 f1 -42.50 -25.00 -42.50 -42.50 -25.00 42.50 -52.05 -8.33 -30.05 -30.05 -8.33 52.05 -58.06 8.33 -15.56 -15.56 8.33 58.06 -60.10 25.00 0.00 0.00 25.00 60.10 42.50 -25.00 -42.50 42.50 -25.00 42.50 30.05 -8.33 -52.05 52.05 -8.33 30.05 15.56 8.33 -58.06 58.06 8.33 15.56 0.00 25.00 -60.10 60.10 25.00 0.00 f2 f3 7.50 -17.50 -25.00 -25.00 -42.50 7.50 7.50 -17.50 -25.00 -25.00 42.50 92.50 -2.05 -27.05 -8.33 -8.333 -30.05 19.95 19.95 -5.05 -8.33 -8.33 52.05 102.05 -8.06 -33.06 8.33 8.33 -15.56 34.44 34.44 9.44 8.33 8.33 58.06 108.06 -10.10 -35.10 25.00 25.00 0.00 50.00 50.00 25.00 25.00 25.00 60.10 110.10 92.50 67.50 -25.00 -25.00 -42.50 7.50 92.50 67.50 -25.00 -25.00 42.50 92.50 80.05 55.05 -8.33 -8.33 -52.05 -2.05 102.05 77.05 -8.33 -8.33 30.05 80.05 65.56 40.56 8.33 8.33 -58.06 -8.06 108.06 83.06 8.333 8.33 15.56 65.56 50.00 25.00 25.00 25.00 -60.10 -10.10 110.10 85.10 25.00 25.00 0.00 50.00 f4 -17.50 25.00 -17.50 -17.50 25.00 67.50 -27.05 41.67 -5.05 -5.05 41.67 77.05 -33.06 58.33 9.44 9.44 58.33 83.06 -35.10 75.00 25.00 25.00 75.00 85.10 67.50 25.00 -17.50 67.50 25.00 67.50 55.05 41.67 -27.05 77.05 41.67 55.05 40.56 58.33 -33.06 83.06 58.33 40.56 25.00 75.00 -35.10 85.10 75.00 25.00 table 2: IFS "twisting", 2x4x2 grid initial 0.00 0.00 0.00 0.00 0.00 50.00 0.00 0.00 100.00 0.00 100.00 0.00 0.00 100.00 50.00 0.00 100.00 100.00 50.00 0.00 0.00 50.00 0.00 50.00 50.00 0.00 100.00 50.00 100.00 0.00 50.00 100.00 50.00 50.00 100.00 100.00 100.00 0.00 0.00 100.00 0.00 50.00 100.00 0.00 100.00 100.00 100.00 0.00 100.00 100.00 50.00 100.00 100.00 100.00 f1 0.00 0.00 0.00 0.00 20.32 25.00 0.00 22.22 50.00 0.00 50.00 0.00 0.00 60.16 25.00 0.00 61.11 50.00 25.00 20.32 0.00 25.00 22.09 25.00 25.00 22.22 50.00 25.00 60.16 0.00 25.00 61.05 25.00 25.00 61.11 50.00 50.00 22.22 0.00 50.00 22.22 25.00 50.00 22.22 50.00 50.00 61.11 0.00 50.00 61.11 25.00 50.00 61.11 50.00 f2 50.00 22.22 0.00 50.00 22.22 25.00 50.00 22.22 50.00 50.00 61.11 0.00 50.00 61.11 25.00 50.00 61.11 50.00 75.00 20.32 0.00 75.00 22.09 25.00 75.00 22.22 50.00 75.00 60.16 0.00 75.00 61.05 25.00 75.00 61.11 50.00 100.00 0.00 0.00 100.00 20.32 25.00 100.00 22.22 50.00 100.00 50.00 0.00 100.00 60.16 25.00 100.00 61.11 50.00 f3 50.00 22.22 50.00 50.00 22.22 75.00 50.00 22.22 100.00 50.00 61.11 50.00 50.00 61.11 75.00 50.00 61.11 100.00 75.00 22.22 50.00 75.00 22.09 75.00 75.00 20.32 100.00 75.00 61.11 50.00 75.00 61.05 75.00 75.00 60.16 100.00 100.00 22.22 50.00 100.00 20.32 75.00 100.00 0.00 100.00 100.00 61.11 50.00 100.00 60.16 75.00 100.00 50.00 100.00 f4 0.00 22.22 50.00 0.00 20.32 75.00 0.00 0.00 100.00 0.00 61.11 50.00 0.00 60.16 75.00 0.00 50.00 100.00 25.00 22.22 50.00 25.00 22.09 75.00 25.00 20.32 100.00 25.00 61.11 50.00 25.00 61.05 75.00 25.00 60.16 100.00 50.00 22.22 50.00 50.00 22.22 75.00 50.00 22.22 100.00 50.00 61.11 50.00 50.00 61.11 75.00 50.00 61.11 100.00 table 3: IFS "fantasy", 3x2x3 grid f5 25.00 100.00 25.00 25.00 100.00 50.00 25.00 100.00 75.00 25.00 61.05 25.00 25.00 61.11 50.00 25.00 61.05 75.00 50.00 100.00 25.00 50.00 100.00 50.00 50.00 100.00 75.00 50.00 61.11 25.00 50.00 61.11 50.00 50.00 61.11 75.00 75.00 100.00 25.00 75.00 100.00 50.00 75.00 100.00 75.00 75.00 61.05 25.00 75.00 61.11 50.00 75.00 61.05 75.00 initial -21.20 -20.00 -23.37 -21.20 -20.00 23.37 -21.20 -6.67 -23.37 -21.20 -6.67 23.37 -21.20 6.67 -23.37 -21.20 6.67 23.37 -21.20 20.00 -23.37 -21.20 20.00 23.37 21.20 -20.00 -23.37 21.20 -20.00 23.37 21.20 -6.67 -23.37 21.20 -6.67 23.37 21.20 6.67 -23.37 21.20 6.67 23.37 21.20 20.00 -23.37 21.20 20.00 23.37 f1 -2.10 -20.00 -0.10 -2.10 -20.00 0.10 0.90 -13.33 -0.10 0.90 -13.33 0.10 -1.10 -6.67 -0.10 -1.10 -6.67 0.10 -0.10 0.00 -0.10 -0.10 0.00 0.10 2.10 -20.00 -0.10 2.10 -20.00 0.10 1.10 -13.33 -0.10 1.10 -13.33 0.10 -0.90 -6.67 -0.10 -0.90 -6.67 0.10 0.10 0.00 -0.10 0.10 0.00 0.10 f2 -10.00 0.00 -10.00 -10.00 0.00 10.00 -8.00 6.67 -10.00 -8.00 6.67 10.00 -10.00 13.33 -10.00 -10.00 13.33 10.00 -8.00 20.00 -10.00 -8.00 20.00 10.00 10.00 0.00 -10.00 10.00 0.00 10.00 12.00 6.67 -10.00 12.00 6.67 10.00 10.00 13.33 -10.00 10.00 13.33 10.00 12.00 20.00 -10.0 12.00 20.00 10.00 f3 -7.07 -17.07 -10.00 -7.07 -17.07 10.00 -11.79 -12.36 -10.00 -11.79 -12.36 10.00 -16.50 -7.64 -11.00 -16.50 -7.64 9.00 -21.21 -2.93 -7.00 -21.21 -2.93 13.00 7.07 -2.93 -10.00 7.07 -2.93 10.00 2.36 1.79 -10.00 2.36 1.79 10.00 -2.36 6.50 -11.00 -2.36 6.50 9.00 -7.07 11.21 -7.00 -7.07 11.21 13.00 f4 12.20 -17.07 -1.12 -5.12 -17.07 -11.12 14.55 -13.36 -5.21 -2.77 -13.36 -15.21 16.91 -5.64 -9.29 -0.41 -5.64 -19.29 19.27 -2.93 -13.37 1.95 -2.93 -23.37 5.12 -2.93 11.12 -12.20 -2.93 1.12 7.48 0.79 7.04 -9.84 0.79 -2.96 9.84 8.50 2.96 -7.48 8.50 -7.04 12.20 11.21 -1.12 -5.12 11.21 -11.12 table 4: IFS "plant 2", 2x4x2 grid f5 -5.12 -17.07 11.12 12.20 -17.07 1.12 -2.77 -13.36 15.21 14.55 -13.36 5.21 -0.41 -6.64 19.29 16.91 -6.64 9.29 1.95 1.07 23.37 19.27 1.07 13.37 -12.20 -2.93 -1.12 5.12 -2.93 -11.12 -9.84 0.79 2.96 7.48 0.79 -7.04 -7.48 7.50 7.04 9.84 7.50 -2.96 -5.12 15.21 11.12 12.20 15.21 1.12 initial -42.43 -40.00 -23.37 -42.43 -40.00 23.37 -42.43 40.00 -23.37 -42.43 40.00 23.37 42.43 -40.00 -23.37 42.43 -40.00 23.37 42.43 40.00 -23.37 42.43 40.00 23.37 f1 -0.20 -40.00 -0.20 -0.20 -40.00 0.20 -0.20 0.00 -0.20 -0.20 0.00 0.20 0.20 -40.00 -0.20 0.20 -40.00 0.20 0.20 0.00 -0.20 0.20 0.00 0.20 f2 -20.00 0.00 -20.00 -20.00 0.00 20.00 -20.00 40.00 -20.00 -20.00 40.00 20.00 20.00 0.00 -20.00 20.00 0.00 20.00 20.00 40.00 -20.00 20.00 40.00 20.00 f3 -14.14 -24.14 -20.00 -14.14 -24.14 20.00 -42.43 4.14 -20.00 -42.43 4.14 20.00 14.14 4.14 -20.00 14.14 4.14 20.00 -14.14 32.43 -20.00 -14.14 32.43 20.00 f4 24.39 -24.14 -2.25 -10.25 -24.14 -22.25 38.53 4.14 -26.74 3.89 4.14 -46.74 10.25 4.14 22.25 -24.39 4.14 2.25 24.39 32.43 -2.25 -10.25 32.43 -22.25 table 5: IFS "plant 1", 2x2x2 grid f5 -10.25 -24.14 22.25 24.39 -24.14 2.25 3.89 4.14 46.74 38.53 4.14 26.74 -24.39 4.14 -2.25 10.25 4.14 -22.25 -10.25 32.43 22.25 24.39 32.43 2.25 Color plates Plate 1 Plate 2 Plate 3 Plate 4 Plate 5 Plate 6 Plate 7 Plate 8 tapqua2 twikug6 tapsto10 becqua6 pflqua1a pflqua1 pflkug6a pflkug7