Home » Variation Types » Inversion


Variations that invert across various shapes, such as the unit circle.


Combines spherical and linear.

Type: 2D
Author: Tatyana Zabanova (tatasz)
Date: 5 Jun 2017

d_spher_weightWeight of spherical vs linear; 0 is all linear, 1 is all spherical, 0.5 is half and half; should be between 0 and 1


Generalizes 2D circle inversion; same as spherical with the default parameters.

Type: 2D
Author: Gregg Helt (CozyG)
Date: 2017

Like spherical, but adds five additional features: shapes besides the standard circle, restricted inversion, alternative p-norms, including the inversion shape and/or original points in the result, and direct coloring.

scaleHow much the shape is scaled; for a standard circle (shape 0), this is the radius of the inversion
rotationHow much the shape is rotated; 0.5 for 90°, 1 for 180°, etc.
shapeThe shape to invert across, one of the following:
0: circle
1: ellipse
2: hyperbola
3: regular polygon
4: rhodonea
5: superellipse
6: supershape
imodeRestricted inversion mode:
0: standard (not restricted)
1: invert only external points (outside the shape)
2: invert only internal points (inside the shape)
hide_uninvertedHide uninverted points if 1 (true) (has no effect when imode is 0)
a – fParameters to control the selected shape (depends on shape):
circle: (not used)
ellipse: a, b (x and y radii)
hyperbola: a, b (x and y radii)
regular polygon: n (number of sides)
rhodonea: numerator of k, denominator of k, c
superellipse: a, b, n
supershape: a, b, m, n1, n2, n3
ring_modeRestrict inversion to a ring:
0: no ring restriction
1: invert only points inside the ring
2: invert only points outside the ring
ring_scaleControls the size of the restriction ring. It must be something besides 1 to enable ring mode. If scale ≥ 1, set smaller than 1; smaller values increase ring size. If scale ≤ 1, set larger than 1; larger values increase ring size.
pnorm_pointThe p-norm for the input point (2 for standard Euclidean distance)
pnorm_shapeThe p-norm for the shape boundary point (2 for standard Euclidean distance)
pnorm_pmodModifier for the input point; it changes the width of the inversion. Smaller values make it thicker, smaller values thinner. Normally between 0 and 2.
pnorm_smodModifier for the shape boundary point; it changes the distance of the inversion from the shape. Smaller values put it further away, larger values bring it closer (possibly past the boundary).
draw_shapeRelative density of shape outline to the inversion, between 0 (don’t draw shape at all) and 1 (draw only the shape; no inversion)
shape_thicknessThickness of the drawn shape in hundreths of units. Ignored if draw_shape is 0.
passthroughAllows passing through a portion of the uninverted points; passthrough is the relative density of inverted point to original points, between 0 (result contains only inverted points) and 1 (result contains only original points; no inversion)
guides_enabledNot used in this version of the variation
color_measureMeasure to use for direct color:
0: none; don’t use direct color
1: distance of destination point from boundary
2: distance of source point from boundary
3: distance between source and destination points
4: distance of destination point from standard circle inversion
color_gradientHow to apply direct color (not used if color_measure is 0)
1: clamp values less than color_low_threshold to the leftmost gradient color and values greater than color_high_threshold to the rightmost gradient color
2: wrap values outside the range color_low_threshold to color_high_threshold to values inside this range; the result is the same as if the gradient was repeated indefinitely to the left and right.
color_low_thresholdDistance value for the leftmost gradient color
color_high_thresholdDistance value for the rightmost gradient color

Special Considerations

There are two anomalies with shape points (when draw_shape ≠ 0) and passthrough points (when passthrough ≠ 0). First, the variation amount is not used so should be set to 1 when these features are enabled. Second, they don’t honor the Preserve Z setting; the workaround is to disable Preserve Z and add zscale to each transform with 2D variations.

Ring mode has some quirks. First, ring_scale must be something other than 1 for it to work, which causes a glitch when ring_mode is 1 and ring_scale is moved gradually to or from 1. Second, it doesn’t work correctly for some values of scale. To ensure proper operation, set ring_scale smaller than 1 when scale ≥ 1 and larger than 1 when scale ≤ 1.


Spherical with x and y scaling.

Type: 2D
Author: Rob Richards (piritipany)
Date: 21 Feb 2009

xScale factor for x
yScale factor for y


Spherical with x, y, and z scaling.

Type: 3D
Author: Rob Richards (piritipany)
Date: 21 Feb 2009

xScale factor for x
yScale factor for y
zScale factor for z


Reflects the plane across the unit circle. Also post_spherical and pre_spherical.

Type: 2D
Author: Scott Draves
Date: Sept 2003


A 3D version of spherical

Type: 3D
Author: Chris Johns (TyrantWave)
Date: 24 Dec 2008


Another 3D version of spherical

Type: 3D
Author: Andreas Maschke (thargor6)
Date 7 Mar 2012



This information has been created by Rick Sidwell as a guide to the more popular variations used in fractal flames. Not all of the variations are included with JWildfire, but a great many are, so it is worthwhile learning about them here.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Leave a Comment