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.


Metal Rendering On OS X El Capitan

Version 4.2.0 of Fractal Architect 4 adds GPU rendering support for Metal on OS X El Capitan.

Lets be honest about the state of Metal Compute on Mac OS X in the initial release of El Capitan OS X. There are a lot of critical issues on all of the GPU platforms, AMD, Nvidia, and Intel. Only the Intel platform is stable enough to support this app’s flame fractal rendering algorithm. But it has significant issues too.

Render Performance using Metal on OS X El Capitan GM

(Mips is Millions of Iterations per Second an internal app measure, that is directly related to render performance)

2013 Macbook Air using Intel HD 5000 GPU

CPU: 10.01 Mips
GPU: 87.60 Mips     8.75X faster than  using  CPU

2015 Macbook Pro with Intel Iris Pro

CPU:  25.68 Mips
GPU: 124.09 Mips   3.42X faster than using CPU

The 2015 Macbook Pro also has a AMD Radeon R9 M370X GPU. Here are the rendering speeds for it on OpenCL:

Yosemite 10.10.5      AMD GPU:        157.83 Mips
El Capitan 10.11 GM   AMD GPU:          87.92 Mips

Note that the OpenCL driver performance went down 45% from Yosemite to El Capitan – NOT good!

Important Note: We are experiencing GPU hangs with some fractals  using Metal Compute.  GPU Hangs are the bomb. Entire Mac acts like it has frozen for about 10 secs until GPU resets. This behavior is unique to Metal Compute.

Metal Compute Stability seen in testing

GPU Family Test Results
Intel Iris Pro GOOD:
+ Intel HD 5000   Performance 9 to 12X faster than CPU
  GPU Hangs on about 10% of fractals
  OpenCL drivers have no problems with this
Intel HD 4000 BAD: Very slow kernel compiles
GOOD: Performance 1.4X faster than CPU
AMD BAD: Kernel compile failure at 2 min 20 secs
Nvidia 650M GOOD: Kernel compiles in 5 secs
BAD: Garbage Output

FA 4 4.0.3 release submitted to Apple

A new update release of FA 4 is on the way.

  1. Fixed camera rotation animation
  2. Updated Intel GPU quarantine for new Mac models
  3. Made random generator’s garbage filter settings less confusing
  4. Random generator now has Reset Settings to Defaults button
  5. Random generator now has limit of 200 random fractal retries
  6. Animation configurator’s video preview popover stays open now
  7. Changing Sequencer segments’ offset an/or duration now works correctly
  8. GPU Trial window now always reports performance multiple as GPU Mips/ CPU Mips
  9. Render State window now reports the Initial Mips performance (so you don’t have to go to the Render Status Log to find it)

Random Generator – the Garbage filter

Some of you have been confused over the Garbage fractal filter used by the Random fractal generator. This important filter plays a very important role and that is to eliminate garbage fractals created from randomly created fractals.

But some of you have unknowingly set some of the filter settings so ALL fractals are filtered out.
What is happening is that the program is rejecting the random fractals. The garbage filter uses several parameter settings to determine the amount of fractal rejection. It also rejects fractals when the image produced is mostly the background color.
Version FA 4.0.3 has changes to make it less confusing and to show you WHY a fractal has been rejected.
Troubleshooting Garbage Fractal Rejection
First step:
Turn off the Filter checkbox. This will show all of the random fractals and turns off the fractal rejection.
Case 1:   If the random fractals now shown are either poor or uninteresting, that means the combination of variations you chose are not working well.  Try a different combination of variations. You can click on one of the Variation Blends to get a better set of variations to work with.
Also some variation combinations produce a lot of uninteresting fractals but with a handful of good ones.Some of the predefined Variation Blends do this.
Case 2:  The random fractals look good but they are being rejected.  Turn on the Show Render Info checkbox. Now you will see the Fuse % and Retain % for each rejected fractal. Version 4.0.3 shows why the fractal was rejected.
Unfused Cutoff and Unretained Cutoff  (or Min Fuse Cutoff / Min Retained Cutoff)
The two settings that are used for fractal rejection are:   Unfused Cutoff and Unretained Cutoff.  The default values are 25% and 10% respectively. These settings are found in the Random Generation Settings  panel.
 If the actual Fuse % is less than the Unfused Cutoff, the fractal will be rejected. If the actual Retain % is less than the Unretained Cutoff, the fractal will be rejected.
You may need to decrease one or both values so that fewer fractals are rejected.
If too many fractals are filtered out, the Unfused Cutoff and Unretained Cutoff settings on the Random Generator can be adjusted to tune the filter.
Use the Show Render Info checkbox on the Make New tab to see the Fuse and Retained percentages of the unfiltered random fractals.
Some Fractals Render Better on CPU than GPU — Need higher Render Quality at Preview quality levels
There are some fractals that do not render well with GPU at low quality settings. Those fractals need a higher render quality setting.
So for those fractals, they will not look good at render quality of 50, but will be good at say 200.
Some of the Lua scripts create fractals that need a higher preview render quality setting.
The quality for the Random Generator comes from the Grid Thumbnails quality in Preferences.
Rather than change the Grid Thumbnails quality in Preferences, use the Quality Adjust setting at the bottom of the Make New window. (Its default value is 1, which is 1X multiplier)
That is a multiplier.  So if Grid Thumbnails Quality is 50.
A value of 1 on Quality Adjust  means the random generator will use   1 X 50   =  50
A value of 4 on Quality Adjust  means the random generator will use   4 X 50   = 200
The Variants Editor has the same Quality Adjust setting.
The Quality Adjust setting is saved in the fractal definition, so Quicklook will use it too. That is why it takes Quicklook longer to render.
GPU rendering is not as “random” as CPU rendering – which leads to slightly lower quality. You cannot see any difference at quality of 1000, but at quality 50 you can see a difference with a few fractals.

FA 4 Version 4.02 Released

Release Notes ===============

Bug Fix: for Loop/Morph Basic Animations being classified as Complex animations
Bug Fix: for Gallery fractals not rendering
Bug Fix: for final assembly of movie failing with sandbox exception
Bug Fix: for Quicktime Player not opening after movie rendered
Bug Fix: for Make Video not working with either variation weights or variation parameters

Fractaling Across the Universe