Skip to content

Differences from flame

Zoltán Dócs edited this page Dec 26, 2023 · 2 revisions

The project takes inspiration from the flame algorithm. The produced fractals look similar because the same log-density tonemapping is used, but the process differs in many aspects (and therefore no compatibility is possible with flame programs). This article lists some of the differences:

  • Different starting distribution: half of the points start inside the unit sphere, half outside of it - contrary to flame's uniform bi-unit square.


  • There are no pre/post affines/transforms. One iterator holds one transform. Affine is just one of the tranforms, use the node editor to chain it to act as a flame pre/post-affine:


  • The Start Weight on an iterator controls the probability that it will start the iteration process. Sometimes useful when the warmup value (fuse-count) is 0.


  • It is possible to use iterators that have no out-going weights, in which case the iteration will simply restart.
  • Syntropy/Entropy: This is an idea introduced to me by zy0rg, but in IFSRenderer it's only partially implemented. For now, the iteration depth is not defined by a constant (such as 10.000 in flame) but there's a (global) probability that the point is terminated in each iteration.
  • The warmup value (a.k.a. fuse count), which is constant 20 in flame can be adjusted by the user and it's 0 by default. This, along with the smooth starting distribution and relatively high entropy results in a "glowing" effect around the fractal. (which also seems to hide some of the noise!)


  • The camera has a focus distance, which can be used along the fog effect slider to control what the camera sees and hide objects in the foreground/background.
  • The tonemapping differs in a bit that it doesn't calculate a 'good' brightness by looking up the maximum density in the histogram. Instead, the artist must adjust the brightness manually. This is by design - to prepare animations, where this would result in sometimes "flashing" frames when high density areas move in and out of frame.
  • The Anti-aliasing: it works without super-sampling, which would require lots of video memory and wouldn't allow high-resolution renders. Rather broken atm.
  • Xaos: it's the same under the hood, but there's a fancy node editor gui, which is more intuitive and user-friendly.
  • Split operation: in flame when you duplicate an iterator it'll often change the whole look of the fractal. Using the split operation IFSRenderer tries to keep the original look by modifying the right weights. The well known duplicate operation is also available.
Clone this wiki locally