EyeFract

[Download]   [CHANGELOG]   [Documentation]   [Screenshots]   [Bugs]

News:
1-29-08: Version 0.6.1 is available.
It only took 6 years, but I finally took the time and fixed some long-standing bugs. JPEG compilation bug fixed. Also when selecting a new colormap, fixed an array index of -1 issue. Whoop! See the CHANGELOG if you are that interested.


Description:
This program generates Julia and Mandelbrot sets (fractals). What are these sets?

Features:
The user has control over most parameters related to creating either kind of fractal:
  • X, Y min/max values
  • Width, Height (pixels)
  • Number of iterations before giving up
  • Which colors (choose from a given array, or specify your own)
  • The complex parameter (for Julia sets)
  • Which function to use to create the set

    Requirements: Motif 2.0 (LessTif or equivalent)

    Installation:
    tar -zxvf eyefract-<ver>.tar.gz
    cd eyefract
    ./configure
    make


    Command Line:
    eyefract [-m | --map] <map_filename> [-b | --bare]
             [-l | --load] <state_file> [-o | --output] <filename>
             [-h | -? | --help] [-v | --version]


    Screenshots:



    What are Julia/Mandelbrot sets?
    Julia sets are generated by iterating a particular function of a complex variable. Typically this function is f(z)=z2 + c, where z and c are complex numbers; c is a constant. For Julia sets, the initial value of z is determined by the coordinates of the point in question. Therefore, there are an infinite number of Julia sets for any given function, but only one for any given parameter c.
    Once the function has been iterated and a value has been arrived at, that value is then entered in the function itself, i.e. f(f(z)). Repeating this a number (500 gives a good picture usually) of times [ f(f(f(f...f(z))))...) ] will yield some complex numbers with length greater than or equal to 2. Any answer which is greater than or equal to 2 is not in the specified Julia set.
    For those in the set, it is customary to color these points black. For those out of the set, the color used at that point is determined by the number of iterations it took before a value with length >= 2.
    There is only one Mandelbrot set for each function. When using any function f(z), the initial value for z is 0+0i. The parameter c in the equation is set to the coordinates of the point in question. The generation of a Mandelbrot set is identical to that of a Julia set.

    Something I find particularly fascinating about fractals is the kind of detail one can see based on the colors he uses. For example, the second and third images below under the Julia f( z ) = z2 + c*z are of the same part of the same fractal but they reveal very different details. Similarly, the first two images under the Mandelbrot f( z ) = z2 + c*z do the same.

    Example Julia Sets
    All examples were created with EyeFract
    f( z ) = z2 + c
    -0.624 + 0.435i

    -0.687 + 0.312i
    f( z ) = z2 + c*z
    1.123i

    1.123i

    1.123i
    f( z ) = z4 + c
    0.6 + 0.55i

    0.567 - 0.0267i
    f( z ) = z5 + c
    0.194899 - 0.743367i

    0.71 - 0.11i
    f( z ) = sin ( z )
    f( z ) = c * cos ( z )
    f( z ) = pi * i * exp ( z )
     
    Example Mandelbrot Sets
    f( z ) = z2 + c
    f( z ) = z4 + c
    f( z ) = z4 - z + c
    f( z ) = z5 + c


    Known Issues:
  • sigset linking erros:
    Edit common.h and make sure EYESIGSET is not defined.

  • On some versions of Solaris, using the -l command line option will produce a strange error where the context menu will not appear. To fix this, single-click on the image with the primary mouse button, then try the secondary to raise the context menu. This only needs to be done the first time the context menu wants to be viewed.