G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing
Banner Institutions GREYC CNRS ENSICAEN UNICAEN

A Full-Featured Open-Source Framework for Image Processing



Latest stable version: 4.0.4 (2026/08/19)

Reference
Table of Contents  ▸  List of Commands  ▸  Reptorian's Commands  ▸  rep_thorn_fractal◀  rep_form_pixel

rep_thorn_fractal

Arguments:

  • -inf<=style<=57,_escape>0,_iteration>0,_subsampling_level>=1,_dx,_dy,_r_xy>0,_r_x>0,_r_y>0,_r_pi= { 0=r_xy multiplied by 1 | 1=r_xy multiplied by pi },_o_x,_o_y,_function_angle,_vx,_vy,..._vx_n,vy_n    or
  •     or
  • -inf<=style<=47,_escape>0,_iteration>0,_subsampling_level>=1,_dx,_dy,_r_xy>0,_r_x>0,_r_y>0,_r_pi= { 0=r_xy multiplied by 1 | 1=r_xy multiplied by pi },_o_x,_o_y,_function_angle,_vx,_vy,..._vx_n,vy_n,ovx,ovy,overload_freq>=1    or
  •     or
  • -inf<=style<=47,_escape>0,_iteration>0,_subsampling_level>=1,_dx,_dy,_r_xy>0,_r_x>0,_r_y>0,_r_pi= { 0=r_xy multiplied by 1 | 1=r_xy multiplied by pi },_o_x,_o_y,_function_angle,_vx,_vy,..._vx_n,vy_n,ovx,ovy,cfa,cfb,overload_freq>=1

Description:

Thorn Fractal is the fractal attributed to Andrew Wayne Graff, alternatively named the "Secant Sea". The code was adapted from Sample C source code provided by Adam Majewski.

 
Source - http://paulbourke.net/fractals/thorn/#dane
 
Alternating Chaos Formula are alternating formula founded by MadJik and are originally implemented in Fractal Attractor Plugin for Paint.NET. They use overload functions rather than a simple switch.
 

(equivalent to shortcut command rep_tfrac).

style variable is used to define how the thorn fractal will look like with predefined formula. Use a integer value less than 0 to use custom formula, and use a integer value less than -1 to use custom alternating formula. See lists of available style and their corresponding id below.
escape variable is used to define the minimum value to escape from the iterative loop.
iteration variable defines how much repetition of loop used to find the end value.
subsampling_level defines the subsampling level of image.
dx is a number used to add to a variable involving distortion within the x-axis during the loop used for fractal generation.
dy is a number used to add to a variable involving distortion within the y-axis during the loop used for fractal generation.
r_xy defines how much the general infinite line boundary will repeat within the xy axis.
r_x defines how much the general infinite line boundary will repeat within the x axis.
r_y defines how much the general infinite line boundary will repeat within the y axis.
r_pi is used as a multiple to r_xy or to normalize the xmin and xmax to pi ranges.
o_x offset the resulting image within the x-direction.
o_y offset the resulting image within the y-direction.
ang defines the function angle of the thorn fractal.
vx variable is used to define custom formula for vx variable for the thorn fractal formula by default.
vy variable is used to define custom formula for vy variable for the thorn fractal formula by default.
vx_n variable defines a custom formula used for vx variable depending on altern number.
vy_n variable defines a custom formula used for vy variable depending on altern number.
ovx variable defines a custom formula to be used when the altern is greater than the range of cardinality of set of set[vx,vy]. o in ovx stands for overload.
ovx variable defines a custom formula to be used when the altern is greater than the range of cardinality of set of set[vx,vy]. o in ovx stands for overload.
cfa variable defines a variable that is used by overload formulas. Used as a temporary constant for each number that exceed the cardinality of set of set[vx,vy].
cfb variable defines a variable that is used by overload formulas. Used as a temporary constant for each number that exceed the cardinality of set of set[vx,vy].
overload_freq defines how much the ovx,and ovy formula will be applied when altern is greater than the range of cardinality of set of set[vx,vy].
Note on custom formula usage -

Available adjustible variable: v,vx,vy,dx,dy,a,b,cfa,cfb

v is the iteration number within loop.
vx is the output of distortion function for x-axis.
vy is the output of distortion function for y-axis.
dx is the distortion-x number.
dy is the distortion-y number.
a defines result of number defined by vx equation based on the number of repeats needed to escape from the iterative loop to check when resulting value is greater than escape number.
b defines result of number defined by vy equation based on the number of repeats needed to escape from the iterative loop to check when resulting value is greater than escape number.
cfa is the output of overload function for x-axis.
cfb is the output of overlload function for x-axis.
 
Multiple expressions are supported, and they are separated by the character semicolon-[;]. Furthermore, the usage of commas-[,] requires you to wrap them around with quotation marks-["]. See example of usage with commas. If it the only expression, then it would be used for calculation of vx or vy. Otherwise, the first expression may be the only one used for calculation of vx or vy.
 
End of Note on custom formula usage -
 
Style List -
 
List here below contains all the list of style. The asterisk or * means the line contains a note.
 
  n<-1* = Custom Alternating Formula
  -1 = Custom Formula
  0  = Normal
  1  = Normal Inverted
  2  = Arcangent
  3  = Tangent
  4  = Tanh Stroke
  5  = Asymphological Vibrato
  6  = Asymphological Basic
  7  = Asymphological Basic 2
  8  = Asymphochaos
  9  = Petallian
  10 = Semi-Thorny Petallian
  11 = Thorny Petal
  12 = Thorny Petal 2
  13 = Inflation
  14 = Inflation 2
  15 = Chaotic Creation
  16 = Earthing
  17 = Acrylic Earthing
  18 = Unearthing Origami
  19 = Cubic Unearthing
  20 = Webbing Cubic Unearthing
  21 = Unearthing Chaotic Hooks
  22 = Chaotic Hooks
  23 = Sinusoidal Liquid
  24 = Cosinusoidal Liquid
  25 = Echo Wide
  26 = Echo Squircle
  27 = Echo Hall
  28 = Echo Hall 2
  29 = Liquid Parabolic
  30 = Chaos-Vibrato
  31 = Chaos Deep-Vibrato
  32 = Chaos Spacetime
  33 = Parabolic
  34 = Parabolic Chaos
  35 = Cubic-Diamond Chaos
  36 = C-Line
  37 = Contour Chaos
  38 = Spiderweb-Diamond
  39 = Acrylica
  40 = Refractive Space
  41 = Smooth-Artistry
  42 = Ferrofluid
  43 = Triangular Interweaving
  44 = Fabric Chaos
  45 = Reverse Tangent Division
  46 = Chaotic Tangent
  47 = Alternating Chaos 0
  48 = Alternating Chaos 1 (Legacy)
  49 = Alternating Chaos 2 (Legacy)
  50 = Alternating Chaos 3 (Legacy)
  51 = Alternating Chaos 4 (Legacy)
  52 = Alternating Chaos 5 (Legacy)
  53 = Alternating Chaos 1
  54 = Alternating Chaos 2
  55 = Alternating Chaos 3
  56 = Alternating Chaos 4
  57 = Alternating Chaos 5
 
= The absolute of value is the numbers of vx,vy next to _function_angle. Per loop, every two different functions are assigned instead.
 
End Style List -
 
Author: Reptorian.

Default values:

_escape=50000,_iteration=255,_subsampling_level=4,_dx=0,_dy=0,_r_xy=1,_r_x=1,_r_y=1,_r_pi=1,_o_x=0,_o_y=0,_function_angle=0,_custom_x=,_custom_y=

Example of use:

1024,1024 rep_thorn_fractal -1,10000,255,4,2.544,-5.2424,1,1,1/2,1,0,0,30,atan2(a"^"2\,b"^"2)/cos(b),b/sin(a)

Command: 1024,1024 rep_thorn_fractal -1,10000,255,4,2.544,-5.2424,1,1,1/2,1,0,0,30,atan2(a"^"2\,b"^"2)/cos(b),b/sin(a)
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing

G'MIC is an open-source software distributed under the CeCILL free software licenses (LGPL-like and/or
GPL-compatible). Copyrights (C) Since July 2008, David Tschumperlé - GREYC UMR CNRS 6072, Image Team.