Fractal-generating software

From HandWiki
3D fractal made with Fragmentarium

Fractal-generating software is any type of graphics software that generates images of fractals. There are many fractal generating programs available, both free and commercial. Mobile apps are available to play or tinker with fractals. Some programmers create fractal software for themselves because of the novelty and because of the challenge in understanding the related mathematics. The generation of fractals has led to some very large problems for pure mathematics.[1]

Fractal generating software creates mathematical beauty through visualization. Modern computers may take seconds or minutes to complete a single high resolution fractal image. Images are generated for both simulation (modeling) and random fractals for art. Fractal generation used for modeling is part of realism in computer graphics.[2] Fractal generation software can be used to mimic natural landscapes with fractal landscapes and scenery generation programs. Fractal imagery can be used to introduce irregularity to an otherwise sterile computer generated environment.[3]

Simple Koch curves display strict self-similarity

Fractals are generated in music visualization software, screensavers and wallpaper generators. This software presents the user with a more limited range of settings and features, sometimes relying a series pre-programmed variables. Because complex images can be generated from simple formula fractals are often used among the demoscene.[4] The generation of fractals such as the Mandelbrot set is time-consuming and requires many computations, so it is often used in benchmarking devices.[5]

History

A similar plot to the very first render by Benoit Mandelbrot
Palette editor in Fractint

The generation of fractals by calculation without computer assistance was undertaken by German mathematician Georg Cantor in 1883 to create the Cantor set.[6] Throughout the following years, mathematicians have postulated the existence of numerous fractals. Some were conceived before the naming of fractals in 1975, for example, the Pythagoras tree by Dutch mathematics teacher Albert E. Bosman in 1942.

The development of the first fractal generating software originated in Benoit Mandelbrot's pursuit of a generalized function for a class of shapes known as Julia sets. In 1979, Mandelbrot discovered that one image of the complex plane could be created by iteration. He and programmers working at IBM generated the first rudimentary fractal printouts.[7] This marked the first instance of the generation of fractals by non-linear creations laws or 'escape time fractal'.[8][9] Loren Carpenter created a two-minute color film called Vol Libre for presentation at SIGGRAPH in 1980.[10] The October 1983 issue of Acorn User magazine carried a BBC BASIC listing for generating fractal shapes by Susan Stepney, now Professor of Computer Science at the University of York.[11][12] She followed this up in the March 1984 Acorn User with “Snowflakes and other fractal monsters”.[13] Fractals were rendered in computer games as early as 1984 with the creation of Rescue on Fractalus!. From the early 1980s to about 1995 hundreds of different fractal types were formulated.[14]

The generation of fractal images grew in popularity as the distribution of computers with a maths co-processor or floating-point unit in the central processing unit were adopted throughout the 1990s. At this time the rendering of high resolution VGA standard images could take many hours.[citation needed] Fractal generation algorithms display extreme parallelizability. Fractal-generating software was rewritten to make use of multi-threaded processing. Subsequently, the adoption of graphics processing units in computers has greatly increased the speed of rendering and allowed for real-time changes to parameters that were previously impossible due to render delay.[15] 3D fractal generation emerged around 2009. An early list of fractal-generating software was compiled for the book titled Fractals: The Patterns of Chaos by John Briggs published in 1992.[16] Leading writers in the field include Dietmar Saupe, Heinz-Otto Peitgen and Clifford A. Pickover.

Methods

Various trees rendered with an L-system

There are two major methods of two dimensional fractal generation. One is to apply an iterative process to simple equations by generative recursion.[6] Dynamical systems produce a series of values. In fractal software values for a set of points on the complex plane are calculated and then rendered as pixels. This computer-based generation of fractal objects is an endless process. In theory, images can be calculated infinitely but in practice are approximated to a certain level of detail.[17] Mandelbrot used quadratic formulas described by the French mathematician Gaston Julia.[14] The maximum fractal dimension that can be produced varies according to type and is sometimes limited according to the method implemented. There are numerous coloring methods that can be applied. One of earliest was the escape time algorithm.[14] Colour banding may appear in images depending on the method of coloring used as well as gradient color density.

Some programs generate geometric self-similar or deterministic fractals such as the Koch curve. These programs use an initiator followed by a generator that is repeated in a pattern. These simple fractals originate from a technique first proposed in 1904 by Koch.[18]

The other main method is with Iterated Function Systems consisting of a number of affine transformations.[19] In the first method each pixel in a fractal image is evaluated according to a function and then coloured, before the same process is applied to the next pixel. The former method represents the classical stochastic approach while the latter implements a linear fractal model.[3] Using recursion allowed programmers to create complex images through simple direction.[20]

Three dimensional fractals are generated in a variety of ways including by using quaternion algebra.[21] Fractals emerge from fluid dynamics modelling simulations as turbulence when contour advection is used to study chaotic mixing.[citation needed] The Buddhabrot method was introduced in 1993. Programs might use fractal heightmaps to generate terrain. Fractals have been generated on computers using the following methods: Menger sponge, Hypercomplex manifold, Brownian tree, Brownian motion, Decomposition, L-systems, Lyapunov fractals, Newton fractals, Pickover stalks and Strange attractors.

Features

An animation being created in Chaotica
Fractal created using GIMP
Simulated landscape using multiple programs

Many different features are included in fractal-generating software packages. A corresponding diversity in the images produced is therefore possible. Most feature some form of algorithm selection, an interactive image zoom, and the ability to save files in JPEG, TIFF, or PNG format, as well as the ability to save parameter files, allowing the user to easily return to previously created images for later modification or exploration. The formula, parameters, variables and coloring algorithms for fractal images can be exchanged between users of the same program. There is no universally adopted standard fractal file format.

One feature of most escape time fractal programs or algebraic-based fractals is a maximum iteration setting. Increasing the iteration count is required if the image is magnified so that fine detail is not lost. Limiting the maximum iterations is important when a device's processing power is low. Coloring options often allow colors to be randomised. Options for color density are common because some gradients output hugely variable magnitudes resulting in heavy repetitive banding or large areas of the same color. Because of the convenient ability to add post-processing effects layering and alpha compositing features found in other graphics software have been included. Both 2D and 3D rendering effects such as plasma effect and lighting may be included. Many packages also allow the user to input their own formula, to allow for greater control of the fractals, as well as a choice of color rendering, along with the use of filters and other image manipulation techniques. Some fractal software packages allow for the creation of movies from a sequence of fractal images. Others display render time and allow some form of color cycling and color palette creation tools.

External media
Images
Cover of Scientific American, August 1985
Video
Vol Libre 1980 by Loren Carpenter
Realtime escape-time fractal rendering with a GPU
Four-dimensional raytraced animation in POV-Ray

Standard graphics software (such as GIMP) contains filters or plug-ins which can be used for fractal generation. Blender contains a fractal (or random) modifier. Many stand-alone fractal-generating programs can be used in conjunction with other graphics programs (such as Photoshop) to create more complex images. POV-Ray is a ray tracing program which generates images from a text-based scene description that can generate fractals. Scripts on 3ds Max and Autodesk Maya can be used. A number of web-based interfaces for the fractal generation are freely available including Turtle Graphics Renderer.[22] Fractal Lab can generate both 2D and 3D fractals and is available over the web using WebGL.[23] JWildfire is a java-based, open-source fractal flame generator.[24] Mandelbrot Fractal is a fractal explorer written in JavaScript.[25] Fractal Grower is software written in Java for generating Lindenmayer Substitution Fractals (L-systems).[26]

Programs

Fractal zoom animation on a Julia set

Because of the butterfly effect, generating fractals can be difficult to master. A small change in a single variable can have an unpredictable effect. Some software presents the user with a steep learning curve and an understanding of chaos theory is advantageous. This includes the characteristics of fractal dimension, recursion and self-similarity exhibited by all fractals.

Example for an open source program: mandelbulber

There are many fractal generating programs available, both free and commercial. Notable fractal generating programs include:

Most of the above programs make two-dimensional fractals, with a few creating three-dimensional fractal objects, such as mandelbulbs and mandelboxes. Mandelbulber is an experimental, cross platform open-source program that generates three-dimensional fractal images.[27] Mandelbulber is adept at producing 3D animations.[28] Mandelbulb 3D is free software for creating 3D images featuring many effects found in 3D rendering environments.[29] Incendia is a 3D fractal program that uses Iterated Function Systems (IFS) for fractal generation.[30] Visions of Chaos, Boxplorer and Fragmentarium also render 3D images.

The open source GnoFract 4D is available.[31] ChaosPro is freeware fractal creation program.[32] Fraqtive is an open source cross platform fractal generator.[33] MandelX is a free program for rendering fractal images on Windows.[34] WinCIG, Chaoscope, Tierazon, Fractal Forge and Malsys also generate fractal images.

See also

References

  1. Frame, Michael; Amelia Urry (2016). Fractal Worlds: Grown, Built, and Imagined. Yale University Press. p. 129. ISBN 978-0300197877. https://books.google.com/books?id=hlKODQAAQBAJ. Retrieved 5 May 2017. 
  2. F. v., Haeseler v.; H.-O Peitgen; G. Skordev (2012). "Linear Cellular Automata, Substitutions, Hierarchical Iterated Function Systems and Attractors". in Encarnacao, Jose L.; Peitgen, Heinz-Otto; Sakas, Georgios et al.. Fractal Geometry and Computer Graphics. Springer Science & Business Media. p. 3. ISBN 9783642956782. https://play.google.com/store/books/details?id=Ep3zCAAAQBAJ. Retrieved 7 May 2017. 
  3. 3.0 3.1 Nikiel¹, Slawomir S (October 1998). "True-colour images and iterated function systems". Computers & Graphics 22 (5): 635–640. doi:10.1016/S0097-8493(98)00072-7. 
  4. Janus Kopfstein (14 May 2014). "This 4-kilobyte demo squeezes a universe of fractals into the size of a Word document". The Verge. Vox Media. https://www.theverge.com/2012/5/14/3014698/assembly-4k-demoscene-fractals. 
  5. Malyshkin, Victor (2013). Parallel Computing Technologies: 12th International Conference, PaCT 2013, St. Petersburg, Russia, September 30-October 4, 2013, Proceedings. Springer. p. 267. ISBN 9783642399589. https://play.google.com/store/books/details?id=y8m7BQAAQBAJ. Retrieved 7 May 2017. 
  6. 6.0 6.1 Daniel Shiffman. "Chapter 8. Fractals". The Nature of Code. https://natureofcode.com/fractals/. 
  7. Gleick, James (1987). Chaos: Making a New Science. Cardinal. pp. 222–223. ISBN 978-0143113454. 
  8. Tom Van Cutsem. "Session 5 - Escape-Time Fractals". http://soft.vub.ac.be/~tvcutsem/teaching/wpo/grafsys/ex5/les5.html. 
  9. Röss, Dieter (2011). Learning and Teaching Mathematics using Simulations: Plus 2000 Examples from Physics. Walter de Gruyter. p. 56. ISBN 9783110250077. https://play.google.com/store/books/details?id=NiBcekT9Ob0C. Retrieved 7 May 2017. 
  10. "Vol Libre: The First Fractal CGI Movie". History of Information. Jeremy Norman & Co.. http://www.historyofinformation.com/expanded.php?id=3690. 
  11. "Susan Stepney Professor of Computer Science, University of York, UK". University of York. https://www-users.cs.york.ac.uk/susan/. 
  12. Stepney, Susan (October 1983). "Incredible fractals, pp 37, 39, 41 and 43". AcornUser. https://www-users.cs.york.ac.uk/susan/bib/ss/au.htm. 
  13. Stepney, Susan (March 1984). "Snowflakes and other monsters, pp 25, 28, 29". AcornUser. https://www-users.cs.york.ac.uk/susan/bib/ss/au.htm. 
  14. 14.0 14.1 14.2 Garcia, Francisco; Fernandez, Angel; Barrallo, Javier; Martin, Luis. "Coloring dynamical systems in the complex plane". CiteSeerX 10.1.1.393.9370.
  15. W.D. Mayfield; J.C. Eilan; T.J. Hu; M.C. Paulsen; B.M. Wyatt (2016). "Fractal Art Generation using GPUs". arXiv:1611.03079 [cs.GR].
  16. Briggs, John (1992). Fractals: The Patterns of Chaos. Simon and Schuster. p. 182. ISBN 978-0671742171. https://archive.org/details/fractalspatterns00brig/page/182. 
  17. Chen, J-N; N M Thalmann; Z-S Tsang; D Thalmann (1994). Fundamentals of Computer Graphics. World Scientific. p. 100. ISBN 9789814603744. https://play.google.com/store/books/details?id=BBC3CgAAQBAJ. Retrieved 5 May 2017. 
  18. Russ, John C. (2013). Fractal Surfaces. Springer Science & Business Media. p. 150. ISBN 978-1489925787. https://books.google.com/books?id=oEkGCAAAQBAJ. Retrieved 5 May 2017. 
  19. Chen’, Yan Qiu; Bi, Guoan (May–June 1997). "3-D IFS fractals as real-time graphics model". Computers & Graphics 21 (3): 367–370. doi:10.1016/S0097-8493(97)00014-9. 
  20. Peitgen, Heinz-Otto; Peter Richter (1986). The Beauty of Fractals. Springer-Verlag. p. 2. ISBN 978-0883859711. https://books.google.com/books?id=Tyfow0KGr7QC. Retrieved 7 May 2017. 
  21. Leys, Jos (June 2005). "Sphere inversion fractals". Computers & Graphics 29 (3): 463–466. doi:10.1016/j.cag.2005.03.011. 
  22. "Turtle Graphics Renderer". http://kevs3d.co.uk/dev/lsystems/#. 
  23. "Fractal Lab". subblue.com. http://hirnsohle.de/test/fractalLab/. 
  24. "Welcome to the official home of the JWildfire software!". http://jwildfire.org/. 
  25. Mike Williams (17 July 2016). "Mandelbrot Fractal". PCAdvisor (IDG UK). http://www.pcadvisor.co.uk/download/system-desktop-tools/mandelbrot-fractal-3330919/. 
  26. "Fractal Grower". The University of New Mexico. http://cs.unm.edu/%7Ejoel/PaperFoldingFractal/paper.html. 
  27. Joey Bernard (7 January 2014). "Taking Fractals off the Page". Linux Journal. http://www.linuxjournal.com/content/taking-fractals-page. 
  28. Mike Williams (25 November 2013). "Generate spectacular 3D fractals with Mandelbulber". BetaNews. https://betanews.com/2013/11/25/generate-spectacular-3d-fractals-with-mandelbulber/. 
  29. "Mandelbulb 3D (MB3D) Fractal Rendering Software". SphereLab. 17 January 2014. http://mandelbulb.com/2014/mandelbulb-3d-mb3d-fractal-rendering-software/. 
  30. "Incendia". Ramiro Pérez Clare Nash. https://www.incendia.net/index.php. 
  31. "Gnofract 4D". https://edyoung.github.io/gnofract4d/. 
  32. "ChaosPro Release 4.0". http://www.chaospro.de/. 
  33. "Fraqtive". http://fraqtive.mimec.org/. 
  34. "Free software from Falcosoft". Falcosoft. 27 January 2017. http://falcosoft.hu/. 

External links