From MediaWiki
Jump to: navigation, search

Objective of this tutorial

In this tutorial we want to show how to change the color of your fractal by controlling one of the following aspects:

  1. gradient
  2. color index
  3. color speed

To proceed, please load the example flame from the previous tutorial into your editor. In order to do this:

  1. Enter the Appendix of the previous tutorial, look for the text-box with some cryptic text starting with "<flame...". Select this text with your mouse, i.e. starting at "<flame..." until (and including) "</flame>" at the botton. Copy this text into the clipboard (on most platforms pressing <Ctrl+C>).
  2. Enter the main-flame-editor and press the From Clipboard-button. If all went right, you should see a monochrome blue fractal.

How coloring works

Each flame-fractal has a so-called gradient assigned to itself. A gradient is a collection of colors which is used inside your fractal. Most fractals have gradients with contain more or less smooth transitions between certain dominant colors.

During the calculation of the fractal, colors are chosen from this gradient by a certain algorithm. You may both control, how the colors are chosen (at a certain level), and which colors are chosen (by providing a certain gradient).


To see and modify the gradient of your current flame, enter the Gradient-tab at the bottom area of the flame-editor
Flametut02 gradients.jpg

If you enter this tab and play around with some of the controls (you may create a new gradient, or choose another one from the library, for example), you will see, that the color of the fractsal changes, but it is always monochrome.
Flametut02 change gradient.jpg

So, even if we have the largest collection of the coolests gradients ever, we need some more control to actually to be able to use colors inside them!

Color index

We do not want to go into deep detail here, but want to provide at least some basic understanding, because it really counts here.

Each transform has two gradient-related properties assigned (you find them at the Color-tab under the Transformations-tab:

  1. Color: start-position inside the gradient
  2. Speed: diffusion-speed for this position through the gradient (by traversing to other transforms)

It may sound simple and complicated at the same time, and both is true.
Flametut02 color index1.jpg

It is recommended to play with both settings a lot to get a feeling how they work.

Let's do this with example flame. When you add a new transform it will select the zero position on the color slider as it's default, so both of your transforms at the moment have the position of zero, or the same color which created a monochrome image. Activate the first transform and change the Color-property (slider). The fractal should now turn from monochrome into some shape using two different colors from the gradient. This is because our two different transforms now use different start-positions inside the gradient (the first we have changed to something other than 0, the the second transform still uses the original value of 0, so they are different).

Change the Speed-property (slider) to change how those different colors are "blended" into each other. In our case we have two different values: the blending from the first transform to the seconds transform (which is the speed-parameter of the first transform) and vice versa.

Flametut02 color index2.jpg

Don't become overwhelmed

Please note, that it is very hard to understand/control how all this works together in more complicated flames. So, if you feel, that this is overwhelming you (from a theoretical point of view) at this step, just do not try to actually understand it, it is not a shame to not understand it, and in fact, most people don't.

But, you should know, which controls you can use to affect the coloring, and for now those two values Color and Speed together with the Gradient are the most important ones to start with.


We learned that the choice of a gradient is important, but is not sufficient to color your fractal. We also learned that the actual coloring algorithm is quiet complicated (for a beginner, and sometimes even for fractal artist), and we have a lot of controls. The controls to start are Color and Speed at a transform-basis, i.e., the more transforms, the more possibilities.


I have sometimes seen competitions to create "the coolest fractal by using only one transform", using the most coolest special variations/plugins (later more on this) and such. We now have learned that this is not really cool, because a flame-fractal with only one transform will be monochrome.

Previous tutorial | Next tutorial


Params of the final sample flame

<flame smooth_gradient="0" version="JWildfire 2.34 (22.02.2015)" size="643 362" center="0.0 0.0" scale="35.18060589240908" rotate="0.0" filter="0.0" filter_kernel="GAUSSIAN" quality="100.0" background="0.0 0.0 0.0" bg_transparency="0" brightness="4.0" saturation="1.0" gamma="4.0" gamma_threshold="0.01" vibrancy="1.0" contrast="1.0" white_level="220.0" temporal_samples="1.0" cam_zoom="1.0" cam_pitch="0.0" cam_yaw="0.0" cam_persp="0.0" cam_xfocus="0.0" cam_yfocus="0.0" cam_zfocus="0.0" cam_pos_x="0.0" cam_pos_y="0.0" cam_pos_z="0.0" cam_zpos="0.0" cam_dof="0.0" cam_dof_area="0.5" cam_dof_exponent="2.0" cam_dof_shape="BUBBLE" cam_dof_scale="1.0" cam_dof_rotate="0.0" cam_dof_fade="1.0" shading_shading="FLAT" antialias_amount="0.75" antialias_radius="0.36" post_symmetry_type="NONE" post_symmetry_order="3" post_symmetry_centre_x="0.0" post_symmetry_centre_y="0.0" post_symmetry_distance="1.25" post_symmetry_rotation="6.0" frame="1" frame_count="300" mixer_mode="OFF" >
  <xform weight="0.5" color="0.58" mod_gamma="0.0" mod_gamma_speed="0.0" mod_contrast="0.0" mod_contrast_speed="0.0" mod_saturation="0.0" mod_saturation_speed="0.0" symmetry="-0.23" linear3D="1.0" coefs="-0.5508406321094882 0.04653927057861497 -0.04653927057861497 -0.5508406321094882 0.07699810071351487 -0.012833016785585932" chaos="1.0 1.0" />
  <xform weight="0.5" color="0.56" mod_gamma="0.0" mod_gamma_speed="0.0" mod_contrast="0.0" mod_contrast_speed="0.0" mod_saturation="0.0" mod_saturation_speed="0.0" symmetry="0.0" linear3D="1.0" coefs="-0.8910607914984686 -0.17870305633118666 0.17870305633118666 -0.8910607914984686 -3.3365843642523494 -1.0523073764180506" chaos="1.0 1.0" />
  <palette count="256" format="RGB" >