Deep Chains on top of Brokat3D

Andreas Maschke’s Brokat3D script is a great script to create a very beautiful type of fractal that resembles cloth brocade patterns.

With FA4, you can create a Variant script list that is applied to every fractal created by the main script.

Lets see what this Variant script list does on top of the Brokat3D main script:

  • prependNewPreGroup
  • addPreLinear
  • prependNewPreGroup
  • addPreLoonie

A script list is a list of 1 or more variant scripts that will all be applied (in order) to the fractals created by the main script.

The script list is easily created by simply selecting a script in the table and clicking the Add script to List button.

This script list randomly adds (66% chance) 2 Pre variation groups to some of the transforms created by the main script.

You can see that the Deep chain approach, using Variant script lists, is a simple, easy way to get exciting new fractals based on other random fractal creation scripts.

Power of Lua Variant Script Lists

Its so easy to explore Deep variation chains, by using a Custom Lua script list.

Pick a handful of variant scripts and just add them to the Script list. The variant scripts will be run from top-to-bottom.

To add a script to the list, select the script name to add, then click the Add Selected Script to List button.

See how I have created a list of 7 scripts to apply to every fractal produced by the main Lua script.

You will be amazed how powerful this technique is.


The coup-de-grace is to add a randomizeChains script to the end of the list. This script scrambles the variation group chain and can find some really different fractals.

With this fractal:


I ran some variants using Color gradient and the randomizeChains script. Result:


Matrix Variations

Matrix variations work just like ordinary transform Pre and Post transformation matrixes. They allow you to avoid linked transforms. Linked transforms require special Xaos matrix configuration, which is so easy to mess up in practice.

Special Support in Triangle Editor

If you select Variation for Which Matrix, and select the matrix variation instance in the Variations table, you can manipulate the Triangle representing that matrix variation.

Matrix Variation Types

  • matrix2d – embed in its own group
  • pre_matrix2d – embed in group containing other variations
  • post_matrix2d – embed in group containing other variations

For 3D variation sets, these are available:

  • matrix3d, pre_matrix3d, post_matrix3d

No special transform editing support in the Triangle editor  is available yet for the 3D matrix variations.

The best way to use matrix2d variations is to embed them in their own variation group and insert them between two other variation groups.


As you can see in this image, the second transform has a chain of 5 variation groups.

The Post #1 group has a transformation Matrix variation, matrix2d.

Note how the Triangle editor allows you to manipulate that matrix variation just like a standard Pre or Post transformation matrix.

Using these inline transform matrixes is so much simpler, than traditional linked transforms.



Compositing Examples

There are 4 Render Modes:

  • Standard
  • Transparent
  • Composite over Color
  • Composite over Background Image

These render modes are available all throughout the app.

These are all composited inside the Fractal Architect app. The radial gradient background images were created with the Acorn app.

You can use the Transparent render mode to create images suitable for compositing in another app like Photoshop.

First fractal is a standard render. Next one is composited over white color.

Version 4.3.0 Submitted to Apple for Review

New Features

New Render Modes

  • Normal, Transparent, Composite over Background Image, Composite Over Color

Drag and Drop any image (even other fractals) to make it the Background image (for compositing).

Control transparent image’s alpha mask using new AlphaGamma parameter.

Preview window has fixed aspect ratio for fractals with composited background image – same aspect ratio as the background image.

Render to File dialog boxes show the compositing background images width and height (and sets the output image’s width and height to the same values.

Continue reading Version 4.3.0 Submitted to Apple for Review

Apple – Are you going to fix OpenCL & Metal Compute in El Capitan?

I received this email from an angry customer:

“I have purchased FA2, FA3d, and FA4+gpu Module” 

“All programs rendered ok on the gpu’s ,  now this El Capitan has arrived  and none of the FA’s render on GPU  anymore .”

“They all render on the CPU ok, but the slow speed  defeats the  object of paying “

“So whats the score , do we have to wait for apple to update their drivers? “

“My Gpu  amd ati radeon hd 6770m – 2011 27inch imac”

At this point, both OpenCL and Metal Compute shaders are unusable for most GPUs incorporated in Mac products on El Capitan.

Back in Mountain Lion, the OpenCL drivers worked on EVERY GPU model shipped with Macs.

Does Apple test OpenCL/Metal with real world applications?

It is very, very easy with Fractal Architect 4.

  1. Download the free app.
  2.  Click the GPU Trial button to open the GPU Trial window.
  3. Turn off the Enforce Quarantine, pick a GPU, then click the button under a fractal to render it.

Is this the new status quo – advertise big new features at WWDC like Metal Compute Shaders on OS X only to find them unusable when released??

Please consider that the OpenCL compiler for all Intel GPUs was unable by this app since Mavericks (due to compile issues as reported in a bug report to Apple 2 years ago).

Metal Compute shaders have no problem compiling the app’s kernels for Intel GPUs but do cause GPU hangs – never seen before on OpenCL with Nvidia/AMD GPUs. We believe these hangs are caused by debug asserts in Apple’s Metal math library when NaN values are encountered.

I have recently successfully implemented CUDA rendering for the app for Nvidia GPUs on El Capitan, but of course CUDA is not available to customers on the Mac App store. (Important because the OpenCL + Metal drivers are now broken in El Capitan)

CUDA drivers are meticulously maintained by Nvidia and are the closest thing we have to Reference GPU compute API. And they work very well on OS X.

Neither the developer nor customers have any idea if these bugs will ever be addressed. We are all totally in the dark.

When the OpenCL/Metal drivers work, they deliver huge performance increases.

We have released multiple versions of Fractal Architect using OpenCL on the Mac App Store since 2011. Today we offer rendering on OpenCL, Metal, and CUDA (but not on Mac App store).

FA4 version 4.20 released


  1. Metal rendering support for Intel Iris and Intel HD GPUs on OS X El Capitan.
  2. Metal rendering does not work for all fractals.
  3. Metal rendering not supported for AMD and Nvidia GPUs at this time.
  4. Added Gpu Compatibility Report to GPU Trial Window
  5. Removed color matching code not compatible with OS X El Capitan
  6. Removed color out-of-gamut check and soft proofing from Preview window not compatible with OS X El Capitan
  7. GPU Trial window now has Enforce Quarantine checkbox.
    Turning it off allows you to do trial renders on quarantined GPUs.
    Alert shown when you turn off the quarantine.

Metal rendering can cause GPU hangs for certain fractals (about 10% of them). GPU hangs cause your Mac to freeze for about 10 seconds (while the GPU restarts).

Normally, we would not have released this enhancement with the potential GPU hang issue, EXCEPT that on Intel GPUs the render speed performance is really good.

For those of you on Macbook Airs, we are getting 9 to 12X faster renders. You will experience GPU hangs with some fractals, but you always have the option of rendering those on the CPU — slower but robust.

Because of this GPU hang issue, Metal rendering is ONLY used in the app where you render a single fractal at a time – Preview window, Render to file, Quicklook.

Note: Intel HD 4000 (an older GPU) Metal rendering does not work on El Captitan 10.11, but it does work on 10.11.1 Beta. Its a slow GPU, so the performance is only 40% faster than on CPU.

OpenCl Rendering On OS X El Capitan

Lets be frank. Apple’s OpenCL drivers are in terrible shape in El Capitan.

On a 2015 Macbook Pro with AMD Radeon M9 370X GPU, renders are 45% slower than Yosemite 10.10.5. Metal is no alternative as its compilers can’t handle the app’s kernels on AMD GPUs.

On a 2012 Retina Macbook Pro with Nvidia 650M GT GPU, the OpenCL driver crashes the app in a function named LaunchGrid. In earlier OS X versions 10.7 through 10.10, the OpenCL drivers on this Mac were rock solid. Also Metal does not work for this GPU either.

OpenCL on Intel GPUs have never been able to compile the app’s kernels (except during Mavericks 10.9 Beta).  Metal does work on recent Intel GPUs, but a persistent GPU hang issue caused by that implementation, is a serius critical issue.

I apologize to my customers. I have no control over the quality of Apple’s OpenCL and Metal drivers.


Fractaling Across the Universe