Archive for the ‘Saturn & Titan’ Tag

The Blunt End   1 comment


The Mandelbrot has a sharp end, the “needle”, and a blunt end. The blunt end is the home to some spectacular structures, just choose a bud near the cleft at the blunt end and start zooming.

I hadn’t explored the regions of the blunt end until I came across this thread on fractal forums. As thread goes on the depth of zoom gets very deep indeed which is why I’ve added multi-precision calculation to my software (not available until version 3 is released).

Since there are such spectacular structures located at the blunt end of the full sized Mandelbrot it follows that similar structures exist in Mandelbrot islands that crop in the Mandelbrot itself, Novas and many other fractal types.

From a Nova fractal

The fractal for the following pictures has the following formula and parameters:

Cczcpaczp - Settings

One curl and five variations of the same Mandelbrot island using different colour maps (gradients) and colouring methods.

All these pictures were produced with the current release version of Saturn & Titan. I’ve started a sequence of progressively deeper zooms into the blunt end of a Mandelbrot island on one of the tendrils from the uppermost bud of the the Mandelbrot, I’ll start posting them as full size versions have been produced.

In an earlier post I mentioned the poor performance of Saturn in terms of speed, I’ve improved performance significantly but it is still sluggish in comparison with other fractal programs. Work on improving performance has adversely affected progress on version 3 of Saturn and Titan, so I’m postponing further attempts to improve performance until after the rest of the changes to Saturn and Titan have been completed.

Saturn and Titan Version 2.1.1 and a new requirement for version 3.0   Leave a comment


There are new packages for Windows and Linux which fix several bugs that I found after I’d released version 2.1.0, this time both Saturn and Titan were affected so both have new version numbers.

Below is a picture of what happens when zooming to far into a fractal using Saturn.

ZoomLimit2

The reason for this is that the precision of the numbers used is limited by type used to hold the numbers. The program can’t tell the difference between one location in the picture and the locations next to it. There is a solution to the problem and that is switching to higher precision types provided by multi-precision libraries.

For version 3 I’ve added a requirement to automatically increase the precision as necessary as the image zoom gets deeper and deeper, conversely the precision will be reduced as necessary when zooming out. The time required to calculate a fractal will increase as calculation switches to multi-precision and as the precision increases, so the way that Saturn updates the images will change for multi-precision calculations such that the image is calculated on a row by row basis instead of calculating and updating the entire image every few iterations.

Work on version 3 is progressing, conversion of several parts of the software so that they are common to both Saturn and Titan has been completed which means that bugs in those parts of the software will only have to fixed once. I’ve also modified the code that calculates the fractal so that the same same code can be used for both normal precision and for multi-precision values. I’ve successfully tried out the multi-precision libraries on Linux, however, I’ll need to confirm that they build and work on Windows but I don’t anticipate any serious problems.

As this post only has a boring image of detail of 4th power Mandelbrot where the detail has been lost due the limits of the precision of the long double type I’ve added a picture of a Mandelbrot to brighten an otherwise dull post.

Mandelbrot and Red Berries

Mandelbrot and Red Berries

The Mandelbrot shown above is detail from a Nova fractal which is a convergent fractal rather than the divergent Mandelbrot, i.e. calculation is deemed to be complete when the result of an iteration is below a bailout limit, typically 0.0001 instead of above a bailout limit, typically 4.

What I find fascinating about this image is that the structures surrounding the Mandelbrot are associated more with Julia fractals than with the Mandelbrot.

Saturn and Titan version 2.1.0   Leave a comment


The delay in releasing the new version of Saturn & Titan was nice and short. The main purpose of this release is the addition of 16 fractal types new to Saturn & Titan, the secondary purpose is to fix a few bugs. The software is available for download via the software menu along with the release notes.

There is a new splash window produced using one of the new fractal types.

version 2.1.0 splash window

Each release, except for bug fix releases, has a new pair of icons.

Saturn 2.1.0

Titan 2.1.0

Here are some examples of pictures produced using the new formulae:

High Beam


Three Islands


At the Edge


Mandelbrot and Associates


A Mixture of Forms


Mandelbrot Isle


Altered


Inverse Altered


A Fancy Spiral


Altered 2 Orbit Plotted


Nibbled

Posted 17 May 2012 by element90 in Fractal, Software

Tagged with , ,

Saturn and Titan version 2.0.3 and more…   Leave a comment


An other minor bug fix release fixing two bugs, the first caused the expansion of any seed file that had a transform defined to fail on multi-processor computers and the second was the failure to release memory allocated on the completion of expansion of a seed file. The memory release problem was not so noticeable when expanding ordinary escape time and Lyapunov fractals but was obvious when expanding orbit plotted fractals. I develop the software on a virtual machine which has 1280Mb allocated to it so when I expanded an orbit plotted fractal to 12000×8000 and then attempted to expand a second orbit plotted fractal to the same dimensions Titan would display a “not enough memory” dialogue box.

The new release can be downloaded from the download page, found on the Software menu.

Since I released Saturn and Titan as release 1.0 I’ve had to produce several bug fix releases, the majority of bugs were in Titan and usually in code that really ought to be common to Saturn and Titan. The code used in Saturn and Titan has developed independently, starting when they were called Mars and Phobos. When I introduced transforms to Mars and Phobos resulting in a major reworking of the code and a name change I should have taken the opportunity to identify the areas of code that could be shared between the two programs, I didn’t. I should have also addressed the issue when I introduced orbit plotting for all fractal types (except Lyapunov) for version 2.0, again, I didn’t. Finally for version 3.0 I’m converting those parts of Saturn that can be used by Titan into a form that can be used by both programs, there is a distinct advantage in completing this work and that is that the common work only has to be done once and any bugs fixed in common code are automatically fixed for both programs. I started the work of isolating the common code when I split development into two branches for 2.x and 3.x, I discovered the Titan bug that failed to expand seed files that have transforms after the first stage of introducing Saturn code to Titan. To fix the code that used transforms in Titan such that it worked correctly with multiple threads looked tricky, however I’d already solved the problem in Saturn so it was easier to convert the version 2.0.2 code to use the common code from Saturn.

The upshot of all this is that from a software engineering point of view it is worth the effort using common code where possible, initially it may not be obvious but as software is developed periodic reviews should be performed to see whether similar code can be made common. Mars and Phobos (and Saturn and Titan after them) had two very different sets of requirements regarding the way the fractals were calculated, Mars calculated the fractals a few iterations at a time and updated the image after each group of iterations, Phobos calculated each location from start to finish and was to perform the task as quickly as possible. The consequences of the differing requirements was that Phobos used OpenMP which produces multi-threaded code without the programmer having to do any of the synchronisation that would normally be required, so at the start the code for generating the fractals was radically different, additionally I also experimented with x86_64 assembler and OpenCL. Initially the OpenMP code worked well but as time went on and more and more features were added it became more and more difficult to keep OpenMP working until eventually it wasn’t worth the effort, so in turn I stopped using assembler, OpenCL and OpenMP and the similarity between the code in Saturn and the code in Titan increased so that common code could be introduced. Because Mars and Phobos, Saturn and Titan had been developed separately for so long it continued in that way much longer than was necessary.

Progress on version 2.1 has been slow as I’ve been working on version 3.0 more than version 2.1, so far I’ve added 6 fractal types new to Saturn and Titan. The fractal types are:

  • Cczcpaczcp
  • Cczcpaczcp Julia
  • Onion 4F
  • Onion 4F Julia
  • Combination 3
  • Combination 4

I’ve already posted some examples of the first fractal type. There will follow some examples of Onion 4F, Combination 3 and Combination 4, but first a note on the names, the Onion name refers to the structure of the fractal formula which as four layers of function parameters which put me in mind of the structure of onions, Combination 3 and 4 are similar formulae to the already existing Combination and Combination 2 formulae. The most significant thing about Onion 4F and Onion 4F Julia is the introduction of complex function parameters.

Onion.4F.settings

Onion 4F

Onion 4F

Combination.3.settings

Combination 3 Example

Combination 3 Example

Combination.4.settings

Combination 4 Example (Altered)

Combination 4 Example (Altered)

Combination 3 and Combination 4 have no accompanying Julias this is because the Saturn 2.x branch only supports 6 complex parameters. For version 3.0 these two formulae will be merged together and the resulting fractal type renamed, I could increase the number of available complex parameters, however since the complex function parameters are going to be enhanced for version 3.0 the formula will become:

z = f1(alpha*f2(z) + beta) + f3(gamma*f4(z) + delta)

In version 3.0 any combination of the parameters can be substituted with the location in the complex plane (or c) and the functions f1 to f4 can be defined as having power functions which means that both Combination 3 and Combination 4 can be implemented in one formula. Of course any of the available functions can be used so the new formula will be much more flexible. In version 3.0 the functions available to the complex function parameters and transforms will be the same, the only difference will be that transforms can be defined in a number of transform sets where each transform set can have a number of functions defined.

To finish here are a couple more Combination 4 examples:

Altered Detail

Altered Detail


Altered Detail 2

Altered Detail 2

NOTE: while preparing this post I discovered an other bug in Titan, it is a very minor bug which only affects the value given for the maximum number of iteration on the summary tab, the value shown is 5000 irrespective of the actual value. It is unlikely that it will be fixed before version 2.1.

Version 2.0.2 and more …   Leave a comment


There has been a minor update to Saturn & Titan fixing a single bug in Titan available for download as version 2.0.2.

A new issue of the Saturn User Guide is now available, it is still no where near comprehensive but it will give users of Saturn some guidance especially with regard to those fractals which initially present the user with a blank rectangle.

There are major changes proposed to Saturn & Titan, development is likely be time consuming so development is being split into two branches, the version 2.x branch and the version 3.x branch. I’m doing this so that there can be interim releases of Saturn & Titan with additional fractal types, it is unlikely that there will be be any other changes.

Proposed changes for version 3.0:

  • Merging of escape time fractals in their Mandelbrot and Julia forms, there will be a common formula allowing substitution of parameters with the location in the complex plane.
  • Transforms are to be broken down into their basic forms, currently several transforms include position and rotation, these options will be removed from the transform definition, where transforms had included position and rotation values other than zero, additional transforms will be required.
  • The user interface for zoom in, zoom out, centre and rotation will be revised.
  • Allow the definition of additional transform sets instead of being restricted to just A & B, for example if there are 3 sets they would defined as A, B & C and the transform sequence will contain As, Bs and Cs.
  • Undo option for zoom in, zoom out, centre and rotation.
  • Additional transform functions.
  • Revision of colour methods.
  • Additional colour methods.
  • Additional fractal types.
  • The parameter data in pre-version 3.0 seed and parameter files will be converted into version 3.0 parameter data.
  • Anything else I can think of …

I haven’t included pictures in my posts for a while so there will now follow some pictures using a fractal type new to Saturn & Titan and will be included in version 2.1.x. The formula is:

Cczcpaczcp.Settings

Here are examples using this formula.

Image using default settings

Image using default settings


Orbit plot using default settings

Orbit plot using default settings


Mandelbrot and Metal Flowers

Mandelbrot and Metal Flowers


Tricorn and Shiny Loops

Tricorn and Shiny Loops

Note: all the fractal pictures were rendered at 12000 by 9000 pixels and have been scaled to 900×600 for presentation here.

Saturn and Titan version 2.0.0 Released   2 comments


I haven’t added a post for a while as I’ve been busy getting Saturn & Titan version 2.0.0 ready for release. Work on version 2.0.0 is complete and the Linux source package and the Microsoft installer for Windows are available for download. For this release it may be possible to install Saturn & Titan on Vista and XP in addition to Windows 7, I have don’t have either Vista or XP to test the installation on. I tried out a test installer for version 1.1.1 with support for XP with the help of user in China and it was reported to work.

I’ve also created a combined user manual by merging the previous two manuals and it as been updated in line with the changes for version 2.0.0. The user guide hasn’t yet been updated, a new issue should be released in about a week or so.

A new feature of Saturn is the ability to export colour maps either as native .scm (Saturn Colour Map) or .ugr files. I’ve made available all the colour maps I’ve personally created in two files: a .scm file and a .ugr file, there are 63 colour maps in the first file and 68 in the second, the .ugr file includes the 5 built in default colour maps. The .scm file should be used for import into Saturn as they include several “auto” colour maps which are defined using waveforms. The .ugr file can be used by any software that understands .ugr files such as Ultra Fractal, Apophysis, Gnofract4D etc.

For a summary of changes to Saturn & Titan see the release notes (subpage of Software).

I expect I’ve missed some bugs which will need fixing in due course, please let me know if you find any.

Now that version 2.0.0 is out I can now consider the next post.

Posted 31 March 2012 by element90 in Fractal, Software

Tagged with , ,