Using Gnofract 4D

Gnofract 4D's screen layout is deliberately simple. Most of the screen is taken up by a viewport onto the fractal you're investigating. By default, this is the Mandelbrot set. You can directly click on this to zoom. The toolbar provides quick access to frequently used functions, and more complex properties of the fractal are accessed through dialog boxes brought up via the menu bar.

Initially, just play around - after all, generating fractals isn't meant to be work. If you make a change you don't like, just hit Undo.

Interacting with the Fractal

Each fractal is an infinitely complex image, which you can see a slice of in the main window. By left-clicking on the window, you can zoom in to view finer and finer details. Just click on an area you like to view it more closely. If you click and drag with the left button, you can draw a white box around an area. When you let go, you zoom in so that the area inside that box fills the window.

To zoom back out, click with the right button. You can also press Home to return all parameters to the starting point for this fractal, Control+Home to reset the zoom only, or use Undo to go back one step. There isn't a click and drag feature for the right button.

Clicking with the middle button rotates the view by 90 degrees in the xz and yw axes. If you're currently looking at the Mandelbrot set, you'll get a Julia set, and vice versa. If you're looking at something else, you'll get something weird. Note that clicking this twice doesn't take you back to where you started: the screen also gets recentered on the point you clicked, so clicking twice will normally give you a perturbed, deformed-looking Mandelbrot.

The cursor keys pan around the image. Hold down Control+ <cursor> to move more quickly. Hold down Shift + <cursor> to move around in the other two dimensions, mutating the image. You can recenter the image on a point by left-clicking on that point while holding down Shift.

Non-4D formulas

Some fractal formulas (typically those originally written for Fractint or UltraFractal) don't support full 4D operation. (Gnofract 4D determines this by whether the formula uses the #zwpixel variable.) In this case, the widgets for rotating in other dimensions, warping, and the middle mouse button will be disabled.

Working with Files

Gnofract 4D uses several different types of file. These have different purposes as listed in the table below.

File TypeExtensionsDescription
Parameter File .fct A parameter file is a small text file which contains all the settings required to produce a particular image, such as the position of the viewer along the X axis and the coloring scheme used. The parameter file lists the formula used, but doesn't contain the entire formula, so if you invent a new formula and want to share parameter files which use it, you need to distribute the formula file as well. Fractint uses .par files for this purpose and UltraFractal uses .upr. Unfortunately Gnofract 4D can't read those formats (yet).
Image File .jpg, .png Gnofract 4D supports JPEG and PNG file formats for image output. No information about the fractal parameters is stored in the image file, so if you want to carry on exploring from a particular point you need to save a parameter file as well. Gnofract 4D can't load image files, only save them. Choose File > Save Image to save an image. I recommend using PNG images for high quality output, and JPEGs only when image size is important, because JPEGs introduce artifacts which blur the fine details of your fractal.
Formula File .frm, .ufm A formula file is a collection of formulas, each of which is a description of the algorithm used to draw a particular kind of fractal, expressed in a simple programming language (see the section called “Formula Language Reference” for language details). Both Gnofract 4D and Fractint use .frm as the extension, and UltraFractal uses .ufm. In general, any formula which works in Fractint should work in Gnofract 4D and any which works in Gnofract 4D should work in UltraFractal, but the reverse is not true.
Coloring Algorithm File .cfrm, .ucl A coloring algorithm file is a collection of formulas used to assign colors to a fractal. Gnofract 4D combines a coloring algorithm with a formula to produce the final image (this approach is shared with UltraFractal - Fractint restricts you to built-in coloring algorithms). Coloring algorithms are written in the same language as fractal formulas. UltraFractal uses the extension .ucl for its coloring algorithm files. Some of these are compatible with Gnofract 4D but so far not very many.
Gradient File .map, .ggr .ugr A gradient file is a list of colors which is used to translate the purely numerical output of the formula into something pretty to look at. Gradients are currently saved only inside the fractal itself, not as separate files. The GIMP uses the extension .ggr for its gradient files; Fractint uses .map for its own, simpler files. UltraFractal uses .ugr - these files contain multiple gradients.



Autozoom automatically searches for interesting parts of the fractal by zooming in repeatedly, each time choosing the quadrant of the screen which has the largest number of different colors (with some randomization as well). You can start it going, go off for a coffee, and see what it's found when you return, or guide it by clicking on parts you like as it goes. It'll stop when the image reaches the minimum size, which is set by default to stop just before you get to the limits of the precision Gnofract 4D offers.


The Explorer helps you find neat-looking fractals easily. It divides the screen into a large central section and smaller "subfractals" which surround it. The central section is the main image - you can click on this to zoom in, change the color, or perform any operation you can normally. The other images around the edges are "mutant" versions of the main image - they're formed by starting with the base parameters and randomly changing them a bit. Whenever you change the main image, you get a whole new set of mutants. If you like a mutant more than the main picture, click on it to move it to the middle - it then becomes the main picture and you get 12 new mutants based on the new main image. When you're satisfied with the results, click the Explorer button again to return to normal mode.

The Shape and Color sliders on the toolbar determines how different the mutants are from the standard image. If Shape's set to 100, they're almost unrecognizable - if it's 0, they're exactly the same. Similarly if Color's 100, each mutant is a different color, and 0 keeps the colors all the same.

Formula Browser

The Formula Browser allows you to look at all the fractal formulas, coloring functions and gradients which are currently loaded formula files. When you select a formula (from the Formula list in the middle), the source window shows you the contents of that formula. You can then use Apply to change the current fractal to use that formula. This also resets the formula's parameters to their defaults. Alternatively, OK applies the formula and closes the window.


  • To load a new formula file, choose File > Open Formula File.

  • If you have changed a formula on disk, choose Refresh to have Gnofract 4D re-read it.

  • If the formula contains errors, Apply and OK will be disabled. Check the Messages window to see what the errors are.


The Director allows you to create fractal movies. You first define keyframes (including base keyframes) which are stops in video. Then, for each of them, you define for how long they last (duration - in frames), how long still image of keyframe will stay in video (stopped for) and interpolation type between several possibilities. When you hit Render button, Director will render all frames and put them in directory you selected and then it will try to create a video using FFmpeg.


  • In order to end up with a video file, not just a bunch of images, you need to have ffmpeg compiled with support for zlib and libvpx.

  • You can always save your animation configuration for later use.

  • You can always stop rendering images. As long as you use same animation setting again (for example, saving them before starting rendering), Director will starts from where it stopped last time.

Randomize Colors

Replaces the current gradient with a randomly-generated new one.


The painter dialog allows you to change the colors of your fractal by clicking on the place where you want the color to be different. First, select the color you want in the color selector. Then click on the image - the part of the gradient most responsible for the color of that pixel will be updated with the color you chose. Toggle the "painting" button off if you want to interact with the fractal while the painter dialog is up.

Toolbar buttons

On the left of the toolbar you can see a small preview window, which updates as you change the angle or position buttons, to give you an idea of what the fractal will look like when you release the button.

The first eight toolbar buttons correspond to the ten parameters which define the view. The circular angle buttons, labelled xy to zw, correspond to rotation around the principal planes in four dimensions. They can changed by dragging the dot around. When you let go, the fractal will update. By the way, the zw angle does work, you just can't see its effects until you rotate in some other dimensions first.

The square position buttons, pan and wrp (aka Warp), can be used to alter the view. The pan button allows you to pan around the current view. The wrp button allows you to move along the other two axes, resulting in a mutated version of the current image. Click inside one then drag the mouse, watching the preview window update, then release the mouse when you like the results.

The warp menu allows even formulas which weren't designed to be used with Gnofract 4D to be used in 4D mode. If the current fractal has any complex parameters, they're listed in this menu. If you select one, that parameter's value is set to the value of the Z and W coordinates for each pixel. Basically what this means is that the parameter you choose becomes the fourth dimension. NB: If you set an explicit value for the parameter as well, it'll be ignored.

The Deepen button allows you to increase the current iteration count and tighten the periodicity checking, for those occasions when the auto-deepening and/or auto-tolerance doesn't get it right. This will generally convert some 'inside' pixels to outside and make the image look better, at the cost of longer rendering time. The image size list should be self-explanatory. If you want a size not listed here, use the Preferences dialog.

The Undo and Redo buttons should be fairly obvious. You can undo as many times as you like. Note that undo also affects parameters such as color, not just position on screen. Lastly, the Explore button toggles Explorer Mode. See the section called “Explorer”.

Changing Fractal Settings

In Gnofract 4D, settings are divided into Fractal Settings, Gradients and Preferences. Fractal Settings and Gradients are saved in the fractal's .fct file - they are properties of the fractal itself. By contrast, Preferences are your preferences for Gnofract 4D's general behavior and are saved in Gnofract 4D's config file (~/.gnofract4d), so they will still be active next time you start Gnofract 4D

Fractal Settings

The Formula section allows you to choose the formula used to calculate the fractal, and to set any parameters the formula has. You can modify the formula by choosing Browse , which invokes the Formula Browser. Max Iterations sets the number of iterations a point will go through before we give up and assume it's a member of the Julibrot. The other parameters on this pane are different depending on the fractal type.

The Outer page controls the function used to decide what color to draw those points which aren't part of the fractal set proper. Similarly, the Inner page controls the function used for points which are part of the set.

The Location entryboxes allow you to change the coordinates of the screen center and the image size. The Angles entryboxes allows you to set the rotation angles. Only values between 0 and 2 * pi are different; values outside this range "wrap" to points inside that range.

The Transforms page allows you to control a list of transformations applied to the image, and any parameters those transforms have.

The General page gives a few options which don't fit anywhere else. Flip Y Axis causes Y to increase top-to-bottom, rather than bottom-to-top. Periodicity Checking is a method to speed up generation of the fractal. Points inside the fractal eventually settle into a loop, where they repeatedly jump around between the same points (they become 'periodic'). By noticing this, we can skip calculating the point any further. You will generally want to disable this if you are coloring the inside of the fractal, since it will look rather weird otherwise. Tolerance is the distance between points which we'll accept as being 'the same' for the purposes of periodicity detection. This is automatically adjusted if the 'auto tolerance' setting in the preferences is enabled.

The Colors tab allows you to edit the list of colors used to display your fractal. For more complex gradient editing, you can also use the GIMP's gradient editor.



Width and Height set the size of the image in pixels. If Maintain Aspect Ratio is checked when you change either the width or height, the other automatically changes to keep the image the same shape. If Auto Deepen is enabled, Gnofract 4D will try to automatically guess how many iterations are required to display the image correctly. Similarly, Auto Tolerance adjusts the periodicity tolerance setting to try and calculate the image quickly but correctly. Antialiasing makes the image look smoother but takes extra time to do. The difference between 'fast' and 'best' is that fast antialiasing doesn't bother to recalculate points which are the same color as their neighbors. This speeds things up a lot but can miss a few details sometimes.


Gnofract 4D needs a C compiler to be available at runtime in order to work (it dynamically creates the code to compute a particular formula when you select it). The Compiler page allows you to specify a location for the compiler and options to pass to it. If Gnofract 4D is working fine, generally I suggest you leave those settings alone. However you may be able to get noticeable performance gains by specifying the specific kind of processor you have. For example, fairly modern AMD processors will benefit by adding "-mathlon -msse2 -m3dnow" to the compiler flags. The Formula Search Path lists the directories where Gnofract 4D will look for formulas when a parameter file is loaded.


Number of threads sets how many calculation threads to use. Generally, leave this at 1 unless you have a hyper-threaded or multi-processor computer, in which case set it to 1 greater than the number of CPUs you have.


Gnofract 4D sometimes need to invoke a helper program. If the default is wrong you can designate a different program here.


  • If you zoom into a busy part of the fractal the image can look "noisy". You can fix this by making the colors change more slowly - go to the "Outer" tab and change the transfer function to 'sqrt' or 'log' - or change "Density" to a number between 0 and 1 - a density of 0.1 makes the colors change 10 times more slowly.

  • If you have an Inner coloring method other than zero, you may see weird effects unless you disable periodicity checking.