Archive for the ‘Linux fractal software’ Tag

New Software   4 comments

A bug fix release of Saturn and Titan (4.1.1) and the first release of Neptune and Triton (1.0.0) are now available for download from the software downloads page. Release notes are available on the Saturn and Titan Release Notes and Neptune and Triton Release Notes pages.

Neptune’s splash screen, icon and Triton’s icon are shown below:

Neptune's splash screen

Neptune’s splash screen

Neptune's icon

Neptune’s icon

Triton's icon

Triton’s icon

Note: the splash screen and icon’s are “multiple critical point fractals”. A multiple critical point fractal is constructed out of the pictures produced using different critical points.

Saturn and Titan 4.1.0 Released   Leave a comment

Packages for Saturn and Titan version 4.1.0 have been released. There are 13 new fractal types, six of which are “single orbit”. Single orbit fractals plot just one long orbit, a disappointing aspect of single orbit fractals is that they do not lend themselves to the production of high resolution images, as the resolution is increased the image gets fainter and fainter. For this reason the single orbit fractals are not supported by Titan.

Both programs have new icons and Saturn has a new splash window.

Saturn 4.1.0 icon

Saturn 4.1.0 icon

Titan 4.1.0 icon

Titan 4.1.0 icon

Saturn 4.1.0 splash window

Saturn 4.1.0 splash window

Another Unexpected Difference   3 comments

I received a query regarding the implementation of a fractal formula that didn’t produce the expected pictures. Here is such a picture. The implicated culprit was std::complex<T>, I’ve had trouble with this in the past leading to the use of my own version of the complex class in my software, it looks like it is entirely innocent.

I checked the formulae by trying them out in Saturn which also failed to produce the expected pictures. The program used for producing the fractals is called XoaS, the fractals in question aren’t part of XaoS but can be produced by setting the user formula.

An example of these formulae is shown below:

zn+1 = zn^(1 – (1/(log(z) + 0.1))) + 0.3

where z0 = the location in the complex plane

This is what is produced by the Window’s version of Xaos (the image is centred on (0,0) and has a width of 3):


The Linux version of XaoS would be expected to produce the same image, it doesn’t (the image is centred on (0,0) and has a width 8):


Saturn produces this (the image is centred on (0,0) and has width 32):


Gnofract4d agrees with Saturn:


Ultra Fractal also agrees with Saturn and Gnofract4d, the much smaller circle produced by XaoS for Linux must be to do with its bailout function, the bailout value is 4 which is the same as Gnofract4d and Saturn where the absolute value of z is used (abs(z) in Saturn, cabs in Gnofract4d).

The picture for the Linux version of XaoS took several attempts, initially there was just featureless black, zooming out I got a simple circle, but it was only when I went back to XaoS on Linux to check the location and size of the image that the blobs appeared.

I’ve now found that Saturn produces the same image as XaoS on Linux when the bailout function is changed to norm(z).

I can only conclude that the fractal images produced by the Windows version of XaoS are in error, as XaoS, Gnofract4d and Saturn on Linux and Ultra Fractal on Windows all produce the same image.

The images produced by Saturn for fractals with similar formulae are not all interesting so fractals of this sort won’t be added to Saturn. The erroreous images produced by XaoS on Windows on the the other hand are definitely worth adding to any fractal program provided the error can be found and replicated, indeed Saturn already has several fractal types found due to programming errors.

Saturn and Titan version 3.0.1   Leave a comment

There is a new release of Saturn and Titan which fixes four bugs in Saturn and adds one new feature. There were three bugs that affected Lyapunov fractals, changing the colour map or scale while row by row calculation was enabled didn’t work properly, the status line also reported one more calculating cycles than there were. Also affecting Lyapunov fractals was the fact that the defaults button didn’t reset the Lyapunov fractal, it never has in its entire existence until now. A more serious bug affected orbit plotted fractals which could crash Saturn when the orbit plotting colour method was changed.

One thing I’ve been pondering for several months is how to improve with zoom selection rectangle which becomes very indistinct with light backgrounds and disappears altogether with a white background, I thought of various schemes involving altering the colour based on the colours either side of each pixel along the sides of the rectangle, such schemes are awkward to code and would require a lot of testing to get right. The solution however is incredibly simple and I don’t know why I didn’t think of it earlier, drawing a second black rectangle inside the white rectangle is all that is required, so now the zoom selection is always visible regardless of the background. This was first implemented in the development version of the Qt based version of Saturn which will become version 4.0.0, Qt has replaced Gtkmm, work on this is well and much quicker than I had anticipated. The target date for version 4.0.0 is the end of May 2013 and will for the first time include an OS X version.

Where next for Saturn and Titan part 2   4 comments

The next release of Saturn and Titan will be version 4.0.0. Moving to Qt for development was a lot less painful than anticipated, Titan is largely complete. There are only a couple of issues to address but the important thing is that it runs on Linux and OS X, I haven’t built it on Windows yet and as the prototype runs successfully the shouldn’t be any problems.

I was going to use Qt 5 but it has a problem extracting the parameter data in the Saturn seed files so that not all of the colour data is retrieved thus mucking up the resulting image. Qt 4.8 doesn’t have this problem.

Titan Qt on Linux

Titan Qt on Linux

Titan Qt on OS X

Titan Qt on OS X

Titan 3.0.0   Leave a comment

Titan has had its user iterface slightly tweaked for version 3.0.0.

80 bit Precision

80 bit Precision

There are two new fields indicating the precision required for the seed file and for the expanded file, in the above example 80 bits is used i.e. the largest size values handled by the CPU’s floating point unit. Calculating using 80 bit values is much faster than with “multi-precision” values which start at 96 bits and go up in increments of 16.

80 bit/96 bit Precision

80 bit/96 bit Precision

Sometimes the precision used for the expanded image is greater than the seed file which means the generation of the image will take considerably longer than expected. In general, provided that the precision values are the same, the time required for an expansion can be estimated by multiplying the duration for an unexpanded image by the number of pixels in the expanded image divided by the number of pixels in the seed file image.

When an expansion has completed the duration of the expansion is displayed in square brackets above the progress bar. New for version 3.0.0: the maximum number of iterations calculated is displayed after the duration, also, the duration isn’t cleared until a new seed file is loaded or a new expansion started.

Saturn 3.0.0 Main Window   Leave a comment

There have been some changes to Saturn’s Main Window and to the way the fractals are calculated. Prior to version 3.0.0 there was only one method of calculating a bailout (or escape time) fractal and that was to progressively display the whole image every few iterations. For version 3.0.0 there is an additional method of row by row where the image is calculated a row at a time, the number of rows calculated simultaneously is dependent on the CPU, if you have only one core and no hyper-threading then it’ll be only one, for a quad core with hyper-threading it is eight. You can switch between modes except for multi-precision calculation when only row by row is used.

Here is a picture of Saturn calculating a fractal in “progressive” mode.

progressive mode

progressive mode

Note the check box for row by row, when multi-precision is used this check box is not present. Here is a picture of Saturn calculating in row by row mode.

row by row mode

row by row mode

There have also been changes to the status line. During calculation either the iteration or percentage progress is displayed and where multi-precision is employed the number of bits used is added.


Above is status line where a progressive calculation of a bailout fractal has completed, the duration of the calculation is including in brackets. When this mode is in use the maximum number of iterations can be increased and when this is done after calculation has completed the duration in brackets is for the additional calculation.


Above is status line where a row by row calculation has completed, like progressive calculation the duration is shown in brackets, in addition the actual maximum number of iteration calculated is shown. If the maximum number of iterations is changed while in this mode calculation will restart.


Finally, here is a status line where multi-precision is employed showing the number of bits used. Initially Saturn calculates its fractals using “long double” values which equates to 80 bits, there is a limit to the depth you can zoom into a fractal and more bits are required, these are added in 16 bit steps. Saturn determines the precision required when starting calculation so the precision will increase or indeed decrease automatically.

There have been similar changes for Lyapunov fractals, they can be calculated cycle by cycle where the image is updated every cycle or they can be calculated row by row. The status line is similar to bailout fractals but for row by row there is no “maximum iteration” because the same number of calculating cycles is employed for every location in the picture. Multi-precision is also available for Lyapunov fractals.

There have been no changes for orbit plotted fractals and multi-precision is not available.

%d bloggers like this: