Detailed information about how variations work, and how they differ between each other.

AMD vs. Nvidia

Every effort has been made to ensure the visual results of all variations are the same regardless of what vendor of GPU you use. However, there are some considerations to keep in mind. It’s no secret that AMD is very much in favor of OpenCL and other similar open standards. It’s also no secret that […]

CPU vs. GPU results

One of the key determining factors of the quality of a GPU renderer is whether the resulting image is the same as it would be when rendering on the CPU. For almost every case, Fractorium will produce identical results on both, however there are a few corner cases where there are differences. If you find […]

Direct color

Direct color variations alter the color index inside of the variation calculation. The final color index used will be a blend of the usual color index calculation along with the one calculated inside of the variation. The blending is specified by the direct color parameter. A value of 0 uses only the the normally computed color index, and […]

Apophysis & Chaotica compatibility

Every effort has been made to produce the same results in Fractorium that you would see in Apophysis/flam3 and Chaotica. There is an area of contention between the two and that is the trigonometric variations. Chaotica has taken a new approach to these and Fractorium matches the Apophysis behavior instead of Chaotica’s by default. So […]

Order with summing vs. assigning

Regular, non-pre/post variations usually sum their outputs. However, not all of them behave this way: some assign their outputs instead. This behavior is non-standard and began showing up in various Apophysis plugins long after it was established that variations should sum their outputs. It is unclear whether this was the actual intent of the plugin […]

Pre and post

When applying an xform to an input point, variations are traditionally applied in between the affine and post affine transforms. Recall that the outputs of the points are normally summed. As the algorithm evolved over time, users realized it would be useful to be able to apply one or more variations in between the output of […]


Flattening is a concept that came from Apophysis when 3D capability was added to the algorithm. With that addition, some new variations altered the Z coordinate while others did not. Using Z can have desirable effects if that’s what the artist intended, however it can also have undesirable effects. Artists needed a way to disable all […]


While traditional iterated function systems used only linear affine transforms for each xform application, flam3 extended this design by adding the ability to use almost any mathematical calculation as well. Flam3 dubbed these new math functions as “variations” which is a catch-all name for an arbitrary math function. Apophysis allowed for users to write their own […]