Iterated Dynamics is an open source fractal renderer that can generate the following fractal types:
- Mandelbrot set
- Julia sets
- Inverse Julia sets
- Newton domains of attraction
- Lambda sets
- Mandelbrot version of lambda sets
- Plasma clouds
- Generalized lambda sets
- Halley map
- Phoenix curve
- Barnsley Mandelbrot/Julia sets
- Barnsley IFS
- Sierpinski gasket
- Quartic Mandelbrot/Julia sets
- Pickover Mandelbrot/Julia sets
- Pickover popcorn
- Dynamic system
- Peterson Mandelbrot variations
- Kam torus
- Lorenz attractors
- Rossler attractors
- Henon attractors
- Pickover attractors
- Gingerbread man
- Martin attractors
- Hyper complex
- Cellular automata
- Ant automaton
- Custom escape-time formula
- Frothy basins
- Diffusion limited aggregation
- Escher-like Julia sets
See the on-line help for more of what the software can do.
See the wiki for the current release plan.
Compiling the Code
Iterated Dynamics uses a CMake based build. You will need CMake 2.8.11 or later to compile Iterated Dynamics. Use CMake to create a build for your preferred development environment.
These instructions assume a build directory called
build at the top
level of the source tree. Run CMake from the
build directory to create
the build script:
|MacOS with Xcode||
Once the appropriate build script is generated, then build the code normally.
The build will first compile
hc, the help compiler. This generates
the run-time help file from the help source files and an include file
used by the iterated dynamics compile.
Iterated Dynamics welcomes contributions from everyone! The code has a long history of contributions from many people over the years. There are many small ways in which the code can be improved as well as large changes that are on the release plan.
To get started, fork the repository into your github account. We recommend using the github workflow to make contributions to Iterated Dynamics. We recommend you enable Travis CI builds on your repository to get feedback from static analysis tools on your changes as you push to your branch in your repository.
Once your change is ready, prepare a pull request and submit it back for incorporation into the main repository. We couldn't have gotten this far without contributions from many persons!
commonFiles common to all implementations
3d Files containing 3D drawing support. Eventually these should be subsumed into the driver interface, with this sofwtare implementation as a fallback if the driver doesn't support 3D rendering.
engine Files containing the implementation of the fractal rendering engines that are shared between multiple fractal types. Also contains the big array that defines the available fractal types.
fractal specific Files containing rendering code or user interaction code that is specific to a particular fractal, such as the Lorenz fractal or L-system type.
i/o Anything related to doing external file I/O: saving and loading GIF files, dealing with overlay files, saving parameter files, etc.
math Files containing math routines for arbitrary precision arithmetic, complex arithmetic, etc.
plumbing Miscellaneous routines that don't fit elesewhere like memory and driver management.
ui Anything to do with displaying menu screens, help screens, intro screen, etc.
main Miscellaneous files in the main fractint source folder. These are not currently used for any of the compilation of the code and are placed here just for reference.
hcHelp source files with a custom build step on help.src to run the help compiler on the source to generate new fractint.hlp and helpdefs.h files.
unixFiles needed for the unix platform.
win32Files needed for the Win32 platform.