EyeFract 0.6.2

I. Installation
II. Starting EyeFract
III. Basic Usage
IV. Menus
V. Parameters Window
VI. Preview Window
VII. Colormaps
VIII. Troubleshooting
IX. Additional Information and Resources


I. Installation
tar -zxvf eyefract-x.x.x[-x].tar.gz;
cd eyefract;
./install-sh



II. Starting EyeFract
Command line:
./eyefract

Command options:
-m <filename> or --map <filename>
Bypass the default colormap, and load <filename>.
If <filename> cannot be found, the default map is loaded.
If that file (default.map) cannot be found, EyeFract dies.

-b or --bare
Show only EyeFract's main window, hiding the parameters, preview and color dialogs.

-l <filename> or --load <filename>
Load the specified filename as the initial state. The colormap entries will override any specified by -m.

-o <filename> or --output <filename>
Output the file specified by -l or --load to a .ppm file.

--version
Print version info

-? or -h or --help
Display command-line options


III. Basic Usage
Upon starting EyeFract, a fractal is automatically created. It is the basic Mandelbrot set for f(z)=z2+c. EyeFract must always have one fractal viewed at a time, so there always must be at least one fractal loaded.
When an image is loaded, right-clicking on the fractal will bring up a context menu with the following options:
Next/Previous: Displays the next/previous fractal.
Delete: Deletes the displayed state. If there is only one fractal loaded, this option is not displayed.
Zoom in/out: Zooms in/out by the factor listed in the parameters dialog, centering the new image where the user right-clicked.
Re-center image: Recalculates the currently-loaded fractal, making the center of the new image where the user right-clicked.
Re-scale image: Recalculates the currently-loaded fractal, adjusting the Cartesian endpoints of the image to match the image width-to-height aspect ratio.
Re-scale and re-center: Does both of the above.
Change Colors: Recalculates the currently-loaded fractal, updating the colors with the current colormap.
Create Julia: This option is only available for Mandelbrot sets, as it will generate the Julia set corresponding the point where the user right-clicked. The complex parameter for the new Julia set will be the Cartesian coordinates corresponding to this point. The viewing range (xmin-xmax, ymin-ymax) will remain the same.

A new image can also be arrived at by clicking and dragging the primary mouse button over a region of the shown fractal. By default, the new image will be of the same aspect ratio of the original, but that can be adjusted by the option "Maintain aspect ratio" in the Parameters window.
Zooming has its limitations, however. Zooming in too far will exceed the boundaries of the computer's float type. When dealing with numbers on the order of 10^-15, the float type is insufficient. If one zooms too far down, the displayed image will be some streaked lines which are indecipherable. I am working on importing a big-number library which would eliminate this problem, allowing zooming in to an arbitrary depth.
When a fractal is being generated, a working dialog will appear, allowing the user to abort the image creation. The status bar of the main window will report the percentage of the fractal completed.


IV. Menus
  • File menu:
    Load/Save state: Preset fractals can be loaded or parameters from an image you create can be saved to a file. The given Mandelbrot presets have the extension .msn and the given Julia presets have the extension .jsn. The information stored in each file is are the required parameters for the fractal (Cartesian coords, width...) as well as the color info. I/O Error messages will be printed to stdout in the case of errors, and upon successful completion of a save, a line will be printed to that effect in stdout. EyeFract will automatically determine whether a Julia or Mandelbrot state file has been loaded (much better than earlier versions!!).
    Import/Export colormap: Colormaps can also be saved via the File menu. For more info on colormaps, see section VII.
    Export JPEG: A fractal can be exported to a JPEG image once it has been generated. The compression algorithm was supplied by IJG, and it is their libjpeg supplied with eyefract. The install-sh script will determine if libjpeg has been installed, and if not, this option will not appear in the File menu.
    Export PPM: A fractal can be exported to a PPM image once it has been generated.
    Quit: Quits.

  • State menu:
    Julia/Mandelbrot: What the "current" state is. When a state is created, its type (Julia or Mandelbrot) will be assigned appropriately (no need to explain that). If a state is reloaded (by using the Preview window), the menu options will be updated. Selecting the other set will only take effect if the "Iterate" button is hit in the Parameters dialog. If the user switches the fractal type and then zooms in into the current fractal, the generated image will be returned to the original. This menu option also controls which type of file is loaded when File->Load State... is selected.
    Use color: If selected, the generated images will have the colors assigned by the loaded colormap. If not, the images will be black and white.

  • View menu: Selecting any item in this menu will show that dialog box. If the box is already shown, nothing happens.

  • Help menu:
    About EyeFract...: Dialog box about EyeFract.

    There are two navigational buttons on the menu bar of the main window. These buttons will display the previous and next images with respect to the currently viewed one. It will wrap around, so that hitting previous (<-) if the first image is selected will bring up the last image, and vice versa (hitting the -> button). These navigational buttons also appear in the Preview window (see Section VI).


    V. Parameters
    Fairly intuitive:
      f(z) = z^2 + c the function which is iterated. This option will be presented as either a combobox or a scrolled list, based on the results of the ./configure script. The entries available will the multiple functions which can be used for generating the fractal.  
      xmin, xmax, ymin, ymax boundaries of the fractal
      Cnt./Rad. (Min./Max.) toggle the way coordinates are displayed between xmin/xmax/ymin/ymax and x-center/x-radius/y-center/y-radius.
      Reset Coords reset xmin, xmax, ymin, ymax to -2, 2, -2, 2
      Complex parameter the parameter "c" found in the different equations, where c=a+bi. a+bi must be of length < 2. (length=sqrt(a^2+b^2))
      Max # of iterations when the iterative function quits. With each iteration, the program checks the length of the current variable. If the length>2, it stops. But, if we've reached this maximum number and the length<=2, it stops anyway. If the image you get is not very clear, try increasing the number of iterations.
      Width, Height size (in pixels) of the fractal
      Zoom Factor (>1) how much the zoom function works when single-clicking on the image. Using either the primary or secondary mouse button will work; primary zooms in by a factor of this parameter, and secondary zooms out by a factor of the inverse of this parameter
      Maintain aspect ratio if selected, dragging an area to zoom into on the fractal will force the area to be of the same width-to-height ratio as the current image. in addition, if the width field is adjusted, the height will automatically be updated maintaining the same aspect ratio. similarly, if the coordinates are being viewed in Center/Radius mode, changing the radius of one dimension will appropriately change the radius of the other dimension.
      Iterate create a new fractal with the above parameters if no changes have been made since the last fractal generation, nothing will happen
      Hide hide the parameter window


    VI. Preview Window
    This window will show thumbnails of all states currently in memory. Note that this feature is not enabled on Solaris machines, as Solaris' port of Lesstif is buggy.
    Single-clicking on any thumbnail with the primary mouse button will bring up that image in the main window, and load its associated parameters into the Parameters window.
    Using the secondary mouse button on a preview image will raise a context menu consisting of two options: Delete and Change colors. Delete will delete the state and, naturally, its preview. It is impossible to delete a state if there is only one loaded in memory. Change colors will redraw the fractal using the current colormap, overwriting the existing state. While the fractal is being redrawn, this operation can be aborted, and the state will remain with its original colors. This abort will not delete the state. For more on color, see section V.
    There are two navigational buttons at the far left of the preview window. These buttons will display the previous and next images with respect to the currently viewed one. It will wrap around, so that hitting previous (<-) if the first image is selected will bring up the last image, and vice versa (hitting the -> button). In Solaris, these navigational buttons appear on the menu bar of the main window.


    VII. Colormaps
    Color is what really helps beautify fractals. How each fractal is colored greatly alters how much detail is visible, and which detail is visible. EyeFract's colormaps are 256-celled arrays. When each point in the fractal is iterated, the number of iterations before the function quits will determine the color of the point. If the function reaches the maximum number of iterations without exiting, the color of that point will be black. If not, the color of that point will be the color in the current colormap in the cell of the number of iterations it took to exit. If the number of iterations is greater than the size of the colormap array, the array will wrap around to the beginning.
    To view the current colormap, open the Color Settings window from the View menu. The entire colormap array is displayed. Each cell's contents can be modified by selecting a cell in the map and adjusting the slider bars below the colormap. To save the updated cell, click "Apply". Clicking "Revert" will change the color back to its original state. If a new cell is selected before the current cell's changes have been saved, the changes are ignored.
    Colormaps can be imported and exported from either the File menu in the main window, or via the buttons labeled "Import" and "Export" in the Color Settings window.
    In addition, new colormaps can be created. Selecting "New" will bring up the New Colormap window. Select two colors using the slider bars and a number of "Stripes" to generate a new colormap. The algorithm will blend the two colors in a linear manner from one to the other. Setting stripes to zero will create a colormap starting at color 1 and gradually becoming color 2 with each subsequent cell, where the final cell is color 2. Stripes = 1 will create a colormap in which color 1 will be the start and end, and color 2 will be the color in the middle, with blending occuring with each cell, making the appearance of a stripe of the second color in the middle of the colormap.
    Selecting "Hide" will, naturally, hide the colormap window.


    VIII. Troubleshooting
    Quick tips:
  • If there are compilation problems surrounding ComboBox.h, edit eyefract.h so that EYECB is NOT defined (set the appropriate 1 to 0). EyeFract will replace the combo box with a scrolled list.
  • See BUGS for more info.
  • Email eyeatjm (at) gmail.com with questions/comments/other problems.