Fractal Art and Design

Gregory B. Searle



Gregory B. Searle is a digital computer artist with a Bachelor in Fine Arts from the University of Lowell (now U-Mass at Lowell) and a computer programming background. He combined these seemingly opposing skill-sets to create unique computer-generated “fractal” imagery using his own custom computer code. This allows him to explore a whole world of mathematically-generated imagery, carefully crafting the limitless parameters to produce one-of-a-kind, high-quality fractal prints. This page is intended as a space to explore computer-generated fractal imagery as an art form.

At this time I am concentrating on extended variations of the Mandelbrot set. In the future I may explore other types of fractals. The extended set provides a huge world of form and texture to explore. See the About Fractals page for more information.

Site Index

Fractal Wallpaper

Fractal Wallpaper Firestorm

Download fractal wallpaper for your phone, tablet, or other device free from my Wallpaper page! Firestorm is a new rendering utilizing period-mapping on a sinusiodial variant of the Mandelbrot set.

Gallery Showing

Chains Clemetis

A few pieces of my artwork are on display at ArtHub, the Nashua Area Artists Association gallery.

Address: 30 Temple Street, Lower Level, Nashua, NH
Web site:

Extended Precision

Deep Zoom Deep zoom into the “Burning Ship” fractal

This application now supports extended precision calculations for deeper zooms into the fractals. Normally, the image starts to break down into blocks when you approach the double-precision limit of the CPU when zooming in. This occurs at about 1014 magnification (1 followed by 14 zeros), or 100 trillion times.

A technique called double-double precision allows this limit to be extended to around 1030 magnification (1 followed by 30 zeros), or a nonillion times. This provides a lot more headroom for exploration! The above image was found deep in the “Burning Ship” fractal at one septillion, or 1024 zoom.

New Artwork


A variant of the Mandelbrot set takes the absolute value of the formula on each iteration. The result is very different. This is a deep magnification of the “Burning Ship” fractal. It looks like you are looking upward through rippling water at an old cityscape. This fractal tends to be noisy, so rendering required 16X supersampling to smooth it out.

“Special Merit” and “Special Recognition”

Champagne Champagne Bluebird Bluebird Light, Space, and Time Award

Champagne received Special Merit and Bluebird received Special Recognition in the the March 2017 Light Space & Time Online Art Gallery's 8th Annual Abstracts Art Exhibition. Following are a couple of excerpts from the gallery:

“The gallery received 887 entries from 36 different countries from around the world. In addition, the gallery received entries from 38 different states.”

“The gallery also included Special Merit awards and Special Recognition awards for outstanding art. Many of the artists in either of these groups could have easily been included in the upper tier of our winners, as their art was also exceptional.”

Dragon Scales Dragon Scales

Previously, Dragon Scales, also won Special Merit in the October 2016 “Open” exhibition.

About Fractals

The word fractal roughly means “fractional dimensions,” referring to the mathematical tendency of a fractal shape to form somewhere “between” classical geometric dimensions. Fractals are created by iterating a mathmatical formula, geometric progression, or another repeating process to generate an increasingly complex, often beautiful result.

A classic example of a simple, geometric fractal is a Koch Curve. This fractal shape is formed by overlaying an isosceles triangle on top of an inverted isosceles triangle of the same size, creating a six-point star. This forms six more triangles. Repeat for each of these triangles, and again and again... This ultimately creates a sort of fuzzy-star shape, somewhat organic-looking. The figure shows an example of the first two iterations of this process.

Mandelbrot Set

Mandelbrot Set The Mandelbrot Set was discovered by the mathmetician Benoit Mandelbrot at IBM in 1979. He discovered that repeated application of a deceptively simple formula, z=z²+c produced an increasingly complicated result. The value of z starts at zero, and c is a complex (imaginary) number. The “set” is those values of c where the formula result never exceeds 2, (or “escapes”) no matter how many times the formula is iterated.

The colorful graphics that can be generated by a computer are created not by the points that exist in the set, but by those outside that escape the formula. Each escape point took a certain number of iterations of the formula to escape. Different colors can be assigned to the different iteration counts, such as a color gradient or an interference pattern (sine waves). Since complex numbers consist of two axes, real and imaginary, this can be plotted on a two-dimensional graph to create a fractal image.

Multibrot Space

The Mandelbrot set can be extended into three dimensions by adding another variable, the exponent. This exponent is traditionally fixed at the value two (or squared) in the Mandelbrot formula, z=z²+c. Since c is a complex number, the results are mapped onto a two-dimensional plane, with the real component mapped to the horizontal axis and the imaginary component mapped to the vertical axis.

Altering the formula to z=zn+c, we now can vary the exponent, n. A Multibrot simply changes the exponent to another fixed value and draws the resulting set. However, the exponent can be mapped to a third axis, creating a three-dimensional “Multibrot space” for further exploration.

Multibrot with real horizontal and exponent vertical How do we explore such as space? One possibility is to define a plane, or a “slice” through this space and calculate the resulting set on this plane. This is the approach I have taken, allowing a plane of arbitrary angle and position to be requested. See the “Multibrot Slice” formula option in my fractal generator. The image at the left is rendered with the real value on the horizontal axis, the imaginary value fixed at zero, and the exponent on the vertical axis.

Please see the Math and Fractal Generator pages for more details.

Fractal Generator

This is a fractal generator application that will run in any modern web browser. Browser technology has advanced far enough to allow efficient, intense number-crunching of the calculations required to create fractals right in the browser. The application currently renders the Mandelbrot set and variations.

The link below will bring you to the full version, the same version that I use to create the pieces in the gallery. A painter uses paints; I use a CPU. I am giving you access to my paints! Please be aware that this is always a work in progress. It will change at a whim.

iconFractal Generator

By using this application you agree to the following terms. This application is provided “as-is” and “at your own risk” without warranty as to suitability of use. I am sharing access without asking for compensation. No support is provided. I retain complete ownership and copyright on the code. The application does not track usage in any way above the normal web-host statistics typical of any and all other web sites. Your clicks and results within the application are not recorded. Any images produced are the sole property of the user under international copyright law. It is the user's sole responsibility to store and preserve any results. This CPU-intensive application will place a high demand on your battery. If your tablet overheats from CPU load, contact the manufacturer, not me.

Fractal Variations

Mandelbrot There are multiple interesting variations of the Mandelbrot set that arise through modifications to the underlying formula. You may switch the formula in use under the Details pane.

Mandelbar Mandelbar creates a three-lobed figure by using the complex conjugate of the traditional formula, which calculates the real portion minus the imaginary portion.

Burning Ship Burning Ship calculates the absolute value (positive only) of the formula. The result looks like a ship at sea, on fire. Magnifying behind the “ship” reveals some tall ships, also seemingly on fire. This pattern appears to the left of the Multibrot set rendered with the y-axis mapped to the exponent instead of to the imaginary component. (See Multibrot Slice, below.)

Cubed Cubed raises the power of the formula to three, instead of two. This creates a mirrored-image of the set, with some interesting differences.

Multibrot Multibrot* allows you to set the exponent of the formula to something other than the traditional second power. Larger numbers create a fringed circle effect, while non-integer values add some interesting complications. Negative values change the behavior altogether, and utilizes period mapping instead of the traditional escape method.

Multibrot Slice Multibrot Slice* takes a cross-section, or “slice,” of the multibrot set rendered in three-dimensions. The real and imaginary components are still mapped to the x- and y-axes, and the exponent is added for the z-axis. To take a “slice” of this form, extra parameters are available to define the plane of a cross-section.

This is a superset of almost all variations presented on this page. There is so much to explore, even without changing the parameters!

First, an Offset defines the distance of the center of the plane from the origin (0,0,0). Angle determines the angle of the plane from the z-axis (the exponent). Rotation specifies the rotation of the plane around the z-axis. Angles are in degrees, (0,0) facing “down” at a traditional multibrot rendering, in which case the offset is equivalent to the exponent.

It is very easy to get lost and end up with a blank screen! If this happens, zoom out, or reduce your offset to single digits, or Reset the parameters to start over. The active set is a narrow, vertical column. Keep in mind that you are rotating your thin render plane around the column, and not all solutions intersect. At this time, the parameters rotate around the origin (0,0,0).

Negabrot (Escape) Negabrot shows what occurs when the exponent is changed to -2. This implementation utilizes the same escape method as the Mandelbrot (though technically incorrect and somewhat unstable).

Negabrot (Periodic) Negabrot (Periodic) is the Negabrot variant above rendered “correctly” using period mapping.

Ripples Ripples* inserts a sine function into the formula, creating an underwater effect. This is not part of the multibrot set.

Feathered Feathered* uses an arctangent function to create a feathered, or windy, effect. This is not part of the multibrot set.

Select an image to go directly to the live rendering.

* Some of the formulas are more calculation-intensive than others, and will take more time to render.

More Details

Here are some more details on this application. First, it is designed for functionality, not to be pretty. If you're using a tablet or mobile device, touch support is rudimentary. The primary goals are flexibility, quality of output, and calculation speed (more below). I am always tweaking it with these goals in mind.

Flexibility A strong, customizable theming engine is built in for theoretically unlimited color theming of the fractals. It supports traditional gradient (ramp) themes, sinewave- based (wave) themes, and more complicated (and hard to manage) interference matrices. Many presets are provided to get you started. You can also build your own, which are saved in your browser's local storage. Note that if you clear your browser's storage, you will lose your themes! The theme can be applied as a linear, logarithmic, or exponential progression (see the Render menu) to control complexity. For finished work, the resolution can be changed to create print-quality results. There are many other parameters that can be fine-tuned.

The depth controls the maximum iterations allowed before the point is considered “escaped.” Without such a maximum, the calculation would take forever. This is automatically determined based upon the magnification. Several presets are provided, Moderate being the typical setting. You can also specify this number manually in the Details pane.

Quality. Oversampling performs multiple calculations per pixel to create a high-quality image. You can choose from Fast calculation with no oversampling to Fine 8x8 oversampling. For most exploration, you will probably stay in Good 2x2 oversampling for a balance of speed and quality. The calculation overruns by three extra iterations to smooth out banding artifacts that are typically created by an iterated process. Preview mode temporarily turns off calculation-intensive enhancements for quicker rendering.

For extra detail on your screen, you can enable Subpixel Rendering. Most LCD screens are set up with red, green, and blue elements arranged side-by-side on each pixel. This option takes the positions of these elements into consideration when rendering, effectively tripling the resolution of your display on the Detailed and Fine quality settings. The oversampling adjusts slightly to 6x4 and 9x8, respectively. Note that you should turn this off when rendering for print or web.


Speed. The calculation engine is fully-optimised to run in the browser's asm.js compiler. This means that the browser distills the core calculation into native machine code (really fast)! The application contains its own benchmark, which I've used to fine-tune the performance. You can adjust certain performance parameters in the options. This application is multi- threading, so make sure to match the core count to the number of cores in your CPU, even if you're using a tablet.

Many factors will affect the overall speed of the rendering, CPU power being the primary constraint. The deeper you go into a portion of the fractal set, the more iterations are usually required to render a result. Oversampling quality and smoothing also increase demand. You can temporarily turn off all calculation-intensive enhancements with the Preview option under the Quality menu.

Extended Precision for Deep Zoom

This application supports double-double-precision math for zooming in beyond the CPU's double-precision limit. Normally, the image will degrade into blocks if you zoom in too far; you've hit the precision limit of your computer when this happens. This application will automatically switch to extended precision when you hit this limit. This requires extra computation, however, and results in the calculation slowing down dramatically. You will see a brief notification when this occurs, and there is a “Precision” indicator in the “Details” panel that will switch from “Standard” to “Extended.” I'd recommend lowering the quality setting to “Fast” when exploring this deep. Expect long render times for finished fractals.

At this time, the formulas that require trigonometry don't yet support extended precision. The application will notify you if it can't do it. You can currently zoom deep into the Mandelbrot, Mandelbar, Burning Ship, and Cubed variations. Eventually it will have support for all variations.

Various Tips

You can save the browser's URL at any time to a bookmark in your web browser to remember the current fractal displayed. The displayed coordinates are compatible with any other Mandelbrot set application, however, the options in the URL are unique to this application. The Save Location option under the Options menu will automatically remember where you were when you come back later. Note that a saved URL (bookmark) will override this option.

Printing a rendering usually requires higher resolution output than your screen. You can manually set the pixel width and height through the Resolution setting on the Details pane. You will want to calculate the target width and height by multiplying the paper size by the desired DPI. Gamma is usually set to 1. If you are rendering for a print, you may wish to change this to around 1.2.

Resolution defaults to your web browser window size, or the screen size of your mobile device. With Auto Render enabled under the Options, your fractal will automatically re-render if your window size changes. This includes any bars that appear along the bottom of the window. To prevent this, click on the Set or Screen link under the Resolution setting to fix the resolution, ignoring resize events.

Saving your rendering is best achieved by right-clicking on the image and selecting the option to save the image from the menu. If your browser responds to the right-click by sending a regular click to the application, click Lock Coords above the coordinates first. A Save Image link appears on the Details pane when rendering completes, but this is memory-intensive and has limited support by the browsers. Note that some browsers will show a status bar at the bottom once you save an image, triggering a resize (and re-render) on the window. On mobile devices, use the Full Screen and Hide Controls options to clear all user interface elements, then take a screenshot.

Settings and custom themes are saved in your browser's local storage. If you clear this, all of your customization will disappear. There is no export function. However, custom themes are copied into the URL on the Coordinates link, so if you have saved a bookmark, your theme will be preserved. I take pains during development to honor older bookmarks so they always work.

Math & Art

Wait, “Math” and “Art?” If you've come this far, you may be thinking twice about these apparent opposites. Yes, it's possible for the two to coexist and even complement each other.

This is a space to discuss various topics that don't fit elsewhere regarding art, math, programmatic details, etc. I hope you find this interesting. Chances are, you arrived here through a search result. If so, please explore the rest of the site! I plan to add more to this page as my exploration continues in this area.

How Is This Art?

Fractal Art When creating fractal art, the computer does all the work. Really, You press a button and out comes an image. You may be asking, how is this art?

The art is in the painstaking preparation. For example, an exquisite bronze sculpture is created when a metal foundry pours molten metal into a cast. The metal cools, the cast is opened, and the sculpture is there! It isn't that simple, though. An artist had to create the cast.

Computer-generated art requires an artist to set up the parameters. This requires careful exploration of the fractal space and fine adjustment of form and color. Like photography, framing and lighting are critical. It can take several hours (or days!) to create something that's worth rendering to print.

To continue the bronze sulpture metaphor, multiple copies of the sculpture can be created simply by reusing the mold. This reduces the value of each copy, unless the mold is broken after the first successful cast. This creates a one-of-a-kind piece of work.

The same can be done with fractal art. If only one print is created from the work, and the parameters are never shared, then the work becomes unique. It's possible to “break the mold” by securing or even deleting the parameters file and the rendered image file after printing. These become single-edition prints.

I have not had the courage to hit the delete button after finishing a work. The prints are one-of-a-kind, yet the original fractal provides opportunity for continued study. Unlike a mold, it is still a “living” work of art that can be explored further.

And now for something completely different... The rest of this page goes into some deep math discussions.


Smoothing vs. unenhanced banding Calculating a Mandelbrot-type fractal requires counting the iterations required for the formula to escape beyond a predefined value. This results in integer values, which when mapped produces a marked “banded” effect. A little calculus allows us to figure out how these bands are progressing overall and to smooth out the quantization effect of an iterating formula. This image shows the difference, the right half of the image being unenhanced.

Smoothing Formula

iterations + ln (2) - log ( log (r² + i²)
2 ∙ ln (2)

log (exponent)

In most cases ln (2), 2 ∙ ln (2), and log (exponent) can be precalculated into constants to speed iterative calculations:

iterations + LN2 - log ( log (r² + i²)


The iteration cycles must overshoot beyond the escape value a few times to collect enough samples for smoothing. This is a small price to pay for a more finished result.


Negabrot with periodicity texturing Rendering negative exponents “breaks” traditional escape-time rendering of the inside of the set. Instead, periodic rendering must be utilized to render under negative exponents. Typically, this requires time-consuming sampling of many iterations for each point. However, Aleksandr Lyapunov developed a methodology to determine period-calculation without such sampling.

Applying Lyapunov's work to the Multibrot universe, the calculation is fairly simple: take the natural logarithm of the average result and divide by the number of iterations run. No sampling, just apply a formula to the final figures. We can collect the sum over the iteration process without much extra CPU work.

Implementing this into a computer program, I realized that the formula can be simplified, I mean really simplified, with the goal of a satisfying visual result. The final periodic calculation used by this application resolves the average magnitude of a set of vectors. This provides a visual texture of the periodicity inherrent to negative exponents. My piece Sunset on Ice is an example of how complex this texture can become.

Simplified Periodic Formula

(∑r² + ∑i²) ÷ iterations + 1

Since we are already calculating these squares as a matter of building the fractal, collecting the sums is a trivial addition (no pun intended). Adding one to the denominator avoids a runaway result to infinity for vector lengths close to zero. On the other hand, the inversion inhibits runaway values in the other direction. The overall magnitude of the result can be controlled by changing the constant numerator from one to another value.

These calculations are leveraged for optional effect-rendering on the inside of the set for positive exponents, and the outer area for negative exponents. Period-rendering can be applied at any time in my application through the Render menu. Also, variations of the effect can be selected through the Effect menu. The application can render both escape-time and period-mapping at the same time for interesting results. Try it with the trigonometric variants of the Mandelbrot fractal.

See the Wikipedia articles linked in the Resources section for more detail about smoothing and period-mapping.


Here are a few additional resources for more information.

Related Organizations

Some organizations that I have worked with are listed below.

Contact Me

You may contact me through this web site.

Note that there is a “spam” filter in place.