Fractal 092 C – Falling in Love

Part of ENCOUNTER series – 09 2022

attraction . couple . desire . heart . love . red . share . symbiosis
Fractal 092 C | Falling in Love
Fractal 092 C zoom1

Fractal 092 C – zoom level 1

Fractal 092 C zoom2

Fractal 092 C – zoom level 2

Fractal 092 C - Falling in Love - Part of ENCOUNTER series - 09.2022

Fractal 092 C | Falling in Love

Fractal_■■■_C {
fractal:
  title="Fractal_■■■_C" width=■■■■ height=■■■■ layers=■
  credits="Philoxerax;■■/■/■■■■" antialiasing=yes
layer:
  caption="Background" opacity=■■ mergemode=addition method=multipass
mapping:
  center=■■■■.■■■■■■/■.■■■■■■■■■■ magn=■.■■■■■■■■ angle=■■■.■■■
  skew=-■.■■■■
formula:
  maxiter=■■■ percheck=off filename="ldm.ufm" entry="DM■■" f_fn■=sqrt
  f_fn■=cos f_fn■=sin p_p■=■.■/■■
inside:
  transfer=none
outside:
  transfer=linear
gradient:
  smooth=yes rotation=-■■■ index=■■ color=■■■ index=-■■■ color=■
  index=-■■ color=■ index=-■ color=■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Background" opacity=■■ visible=no mergemode=overlay
mapping:
  center=-■.■■■■■■■■■■■■■/■.■■■■■■■■■■■■■■ magn=■■■■.■■■■
  angle=■■.■■■■
formula:
  maxiter=■■■■ filename="dmj.ufm" entry="dmj-BoostMandel" p_start=■/■
  p_power=■/■ p_bailout=■.■E■■ p_boostcenter=■/■ p_boostradius=■.■
  p_boostmode=displace p_boostamount=■/■
inside:
  transfer=cube
outside:
  transfer=sqr
gradient:
  smooth=yes index=■ color=■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■
  color=■■■■■■■■ index=■■■ color=■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Layer ■" opacity=■■ mergemode=darken
mapping:
  center=■.■■■■■■■■■■/■.■■■■■■■■■■ magn=■.■■■■■■ angle=-■■.■■■■
formula:
  maxiter=■■ percheck=off filename="dmj.ufm"
  entry="dmj-PhoenixDNovaMandel" p_start=■■/■ p_power■=■/■
  p_power■=■/■ p_coeff■=■/■ p_coeff■=-■/■ p_induct=-■.■/■
  p_bailout=■.■■■■■■ p_usecritical=no p_relax=■/■.■■
inside:
  transfer=sqr
outside:
  transfer=linear
gradient:
  smooth=yes rotation=-■■ index=■■ color=■■■■■■■■ index=■■ color=■■■■■
  index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Layer ■" opacity=■■ mergemode=softlight
mapping:
  center=-■.■■■■■■■■■■/■.■■■■■■■■■ magn=■.■■■■■■■ angle=-■■.■■■■
formula:
  maxiter=■■ percheck=off filename="dmj.ufm"
  entry="dmj-PhoenixDNovaMandel" p_start=■■/■ p_power■=■/■
  p_power■=■/■ p_coeff■=■/■ p_coeff■=-■/■ p_induct=-■.■/■
  p_bailout=■.■■■■■■ p_usecritical=no p_relax=■/■.■■
inside:
  transfer=sqr
outside:
  transfer=linear
gradient:
  smooth=yes rotation=-■■ index=■■ color=■■■■■■■ index=■■
  color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■
  index=-■■ color=■■■■■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Layer ■" opacity=■■ mergemode=overlay
mapping:
  center=-■.■■■■■■■■■■/■.■■■■■■■■■ magn=■.■■■■■■■ angle=-■■.■■■■
formula:
  maxiter=■■ percheck=off filename="dmj.ufm"
  entry="dmj-PhoenixDNovaMandel" p_start=■■/■ p_power■=■/■
  p_power■=■/■ p_coeff■=■/■ p_coeff■=-■/■ p_induct=-■.■/■
  p_bailout=■.■■■■■■ p_usecritical=no p_relax=■/■.■■
inside:
  transfer=sqr
outside:
  transfer=linear
gradient:
  smooth=yes index=■■ color=■■■■■■■ index=■■ color=■■■■■■■ index=■■
  color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Layer ■" opacity=■■■ mergemode=lighten
mapping:
  center=■.■■■■■■■■■■■■■■■/-■.■■■■■■■■■■■■■■■ magn=■■■■■■.■■
  angle=■■■.■■■■
formula:
  maxiter=■■■ percheck=off filename="lkm.ufm"
  entry="general-tent-mandelbrot" p_manparam=■/■ p_bailout=■■■■.
  p_rtype="real part" p_rottype=none p_rotamount=■■.■
  p_rotunit=degrees
inside:
  transfer=none solid=■■■■■■■■■■
outside:
  transfer=linear
gradient:
  comments="Default Ultra Fractal gradient." smooth=yes rotation=■■
  index=■■■ color=■ index=■■■ color=■■■ index=■■■ color=■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Background" opacity=■■■ mergemode=lighten
mapping:
  center=■.■■■■■■■■■■■■■■■■/-■.■■■■■■■■■■■■■■ magn=■■■■■.■
  angle=■■.■■■■
formula:
  maxiter=■■■ percheck=off filename="lkm.ufm"
  entry="general-tent-mandelbrot" p_manparam=■/■ p_bailout=■■■■.
  p_rtype="real part" p_rottype=none p_rotamount=■■.■
  p_rotunit=degrees
inside:
  transfer=none solid=■■■■■■■■■■
outside:
  transfer=linear
gradient:
  comments="Default Ultra Fractal gradient." smooth=yes rotation=■■
  index=■■■ color=■ index=■■■ color=■■■ index=■■■ color=■■■ index=■■■
  color=■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Background" opacity=■■ mergemode=screen
mapping:
  center=-■.■■■■■■■■■■/■.■■■■■■■■■ magn=■.■■■■■■■ angle=-■■.■■■■
formula:
  maxiter=■■ percheck=off filename="dmj.ufm"
  entry="dmj-PhoenixDNovaMandel" p_start=■■/■ p_power■=■/■
  p_power■=■/■ p_coeff■=■/■ p_coeff■=-■/■ p_induct=-■.■/■
  p_bailout=■.■■■■■■ p_usecritical=no p_relax=■/■.■■
inside:
  transfer=sqr
outside:
  transfer=linear
gradient:
  smooth=yes rotation=■■ index=■■ color=■■■■■■■ index=■■■
  color=■■■■■■■■ index=■■■ color=■■■■■ index=■■■ color=■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Layer ■" opacity=■■■
mapping:
  center=-■.■■■■■■■■■■/■.■■■■■■■■■ magn=■.■■■■■■■ angle=-■■.■■■■
formula:
  maxiter=■■ percheck=off filename="dmj.ufm"
  entry="dmj-PhoenixDNovaMandel" p_start=■■/■ p_power■=■/■
  p_power■=■/■ p_coeff■=■/■ p_coeff■=-■/■ p_induct=-■.■/■
  p_bailout=■.■■■■■■ p_usecritical=no p_relax=■/■.■■
inside:
  transfer=sqr
outside:
  transfer=linear
gradient:
  smooth=yes rotation=-■■ index=■■ color=■■■■■■■■ index=■■
  color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■■
  index=■■■ color=■■■■■■ index=■■■ color=■■■ index=-■■ color=■■■■■■■
opacity:
  smooth=no index=■ opacity=■■■
}

DM■■ {
init:
  z = pixel
loop:
  a=fn■(z)
  b=a+p■
  c=fn■((a-p■)/b)
  d=c^■/p■
  w=a/b/c■(d+p■)
  z=fn■(w/z^p■)
bailout:
  |z| <= ■
default:
  method = multipass
  periodicity = ■
  param p■
  default=(.■■,■)
  endparam
  
  func fn■
  default=cos()
  endfunc
}

dmj-BoostMandel {
;
; This formula is an implementation of Orbit Boosting,
; an idea by Earl Hinrichs.
;
; The basic idea is that we perform a normal Mandelbrot
; iteration, but if the orbit enters a specified region
; of the complex plane (much like an orbit trap) we
; "boost" it in some fashion. A variety of boosting modes
; are included. Boost regions are ALWAYS circular in this
; implementation.
;
init:
  float d = ■; distance to boost area
  float radius■ = sqr(@boostradius); pre-calc this
  float iradius = ■/@boostradius; pre-calc this
;  complex c = ■

  z = @start
  
loop:
  z = z^@power + #pixel; calculate the M-set

  d = |z - @boostcenter|; distance to boost area
  IF (d < radius■); within threshold
    IF (@boostmode == ■); displace (addition)
      z = z + @boostamount
    ELSEIF (@boostmode == ■); orbit origin (multiply)
      z = z ■ @boostamount
    ELSEIF (@boostmode == ■); orbit boost (multiply)
      z = (z-@boostcenter) ■ @boostamount + @boostcenter
    ELSEIF (@boostmode == ■); flip out (reverse distance)
      d = ■■@boostradius/sqrt(d)-■
      z = @boostcenter + (z-@boostcenter)■d■@boostamount
    ELSEIF (@boostmode == ■); repel (reverse distance squared)
      d = ■-sqr(■-@boostradius/sqrt(d))
      z = @boostcenter + (z-@boostcenter)■d■@boostamount
    ELSEIF (@boostmode == ■); exponentiate origin (exponent)
      z = z ^ @boostamount
    ELSEIF (@boostmode == ■); exponentiate boost (exponent)
      z = (z-@boostcenter) ^ @boostamount + @boostcenter
    ELSEIF (@boostmode == ■); invert
      z = conj(iradius/(z-@boostcenter)) + @boostcenter
    ELSEIF (@boostmode == ■); pass through
      z = z + ■■(z-@boostcenter)■@boostamount
    ELSEIF (@boostmode == ■); pass through ■
      z = z + ■■(@boostcenter-z)/cabs(@boostcenter-z)■@boostradius■@boostamount
    ENDIF
  ENDIF

bailout:
  |z| < @bailout
  
default:
  title = "Orbit Boost (Mandelbrot)"
  helpfile = "dmj-pub\dmj-pub-uf-ob.htm"
  center = (-■.■, ■.■)
  maxiter = ■■■■
  
  param start
    caption = "Starting Point"
    default = (■,■)
    hint = "Starting value for each point.  You can use this to \
            'perturb' the fractal."
  endparam
  param power
    caption = "Exponent"
    default = (■,■)
    hint = "Overall exponent for the equation.  (■,■) gives \
            the classic Julia type."
  endparam
  param bailout
    caption = "Bail-out Value"
    default = ■.■e■■
    min = ■.■
    hint = "Defines how soon an orbit bails out, i.e. doesn't belong \
            to the Julia set anymore."
  endparam

  param boostcenter
    caption = "Boost Center"
    default = (■,■)
    hint = "This is the location of the boost area in the complex plane."
  endparam
  param boostradius
    caption = "Boost Radius"
    default = ■.■
    hint = "This is the size of the boost area."
  endparam
  param boostmode
    caption = "Boost Mode"
    default = ■
    enum = "displace" "orbit origin" "orbit boost" "flip out" "repel" \
           "exponentiate origin" "exponentiate boost" "invert" "pass through" \
           "pass through ■"
    hint = "Sets the type of effect when the orbit enters the boost area."
  endparam
  param boostamount
    caption = "Boost Amount"
    default = (■,■)
    hint = "This is the amount to boost."
  endparam

switch:
  type = "dmj-BoostJulia"
  seed = #pixel
  power = @power
  bailout = @bailout
  
  boostcenter = @boostcenter
  boostradius = @boostradius
  boostmode = @boostmode
  boostamount = @boostamount
}

dmj-PhoenixDNovaMandel {
;
; This is the DoubleNova fractal (Mandelbrot form),
; a modified Newtonian-style fractal.
;
; This variant includes an inductive component similar
; to the Phoenix fractal.
;
init:
  complex zold = (■,■)
  complex y = (■,■)
  
  z = @start
  IF (@usecritical)
    z = ( -((@power■-■)■@power■■@coeff■) / \
           ((@power■-■)■@power■■@coeff■) ) ^ (■/(@power■-@power■))
  ENDIF
  
loop:
  y = zold
  zold = z
  z = z - (@coeff■■z^@power■ + @coeff■■z^@power■ - ■) ■ @relax / \
          (@coeff■■@power■■z^(@power■-■) + @coeff■■@power■■z^(@power■-■)) + #pixel + @induct■y
  
bailout:
  |z - zold| > @bailout
  
default:
  title = "PhoenixDoubleNova (Mandelbrot)"
  helpfile = "dmj-pub\dmj-pub-uf-pdn.htm"
  maxiter = ■■■■
  periodicity = ■
  center = (-■.■,■)
  magn = ■.■
  
  param start
    caption = "Start Value"
    default = (■,■)
    hint = "Starting value for each point.  You can use this to \
            'perturb' the fractal."
  endparam
  param power■
    caption = "Primary Exponent"
    default = (■,■)
    hint = "Defines the primary exponent for the equation."
  endparam
  param power■
    caption = "Secondary Exponent"
    default = (■,■)
    hint = "Defines the secondary exponent for the equation."
  endparam
  param coeff■
    caption = "Primary Scale"
    default = (■,■)
    hint = "Defines the coefficient (multiplier) for the \
            primary exponent term."
  endparam
  param coeff■
    caption = "Secondary Scale"
    default = (-■,■)
    hint = "Defines the coefficient (multiplier) for the \
            secondary exponent term."
  endparam
  param induct
    caption = "Phoenix Distortion"
    default = (-■.■,■)
    hint = "Sets how 'strong' the previous iteration's effect should be \
            on the fractal."
  endparam
  param bailout
    caption = "Bailout"
    default = ■.■■■■■
    hint = "Bailout value; smaller values will cause more \
            iterations to be done for each point."
  endparam
  param usecritical
    caption = "Use Critical Point"
    default = false
    hint = "If set, a critical point for the function will \
            be used in place of the Start Value."
  endparam
  param relax
    caption = "Relaxation"
    default = (■,■)
    hint = "This can be used to slow down the convergence of \
            the formula."
  endparam

switch:
  type = "dmj-PhoenixDNovaJulia"
  seed = #pixel
  power■ = @power■
  power■ = @power■
  coeff■ = @coeff■
  coeff■ = @coeff■
  bailout = @bailout
  relax = @relax
}

general-tent-mandelbrot { ; Kerry Mitchell ■■oct■■■■
;
; Variation on the standard tent map
;
init:
  z=@manparam
  c=pixel
  float r=■.■
  if(@rotunit==■)            ; radians
    r=@rotamount
  else                       ; degrees
    r=@rotamount■#pi/■■■
  endif 
  rot■=cos(r)+flip(sin(r))
  rot=rot■
  temp=(■,■)
loop:
;
; rotate the map
;
  if(@rottype==■)            ; constant rotation
    temp=rot■■z
  elseif(@rottype==■)        ; progressive rotation
    rot=rot■rot■
    temp=rot■z
  elseif(@rottype==■)        ; oscillating rotation
    rot=rot■/rot
    temp=rot■z
  else                       ; no rotation
    temp=z
  endif
;
; choose the map variable
;
  if(@rtype==■)              ; real part
    r=real(temp)
  elseif(@rtype==■)          ; imag part
    r=imag(temp)
  elseif(@rtype==■)          ; real■imag
    r=imag(temp)■real(temp)
  elseif(@rtype==■)          ; imag/real
    r=imag(temp)/real(temp)
  else                       ; magnitude
    r=cabs(temp)
  endif
;
; execute tent map
;
  if(r<=■.■)
    z=c■temp
  else
    z=c■(■-temp)
  endif
bailout:
  |z|<@bailout
default:
  title="General Tent Mandelbrot"
  helpfile="lkm-help\lkm-tent.html"
  maxiter=■■■
  periodicity=■
  center=(■,■)
  magn=■.■
  angle=■
  param manparam
    caption="initial z"
    default=(■,■)
    hint="Use (■,■) for the standard map."
  endparam
  param bailout
    caption="bailout"
    default=■■■■.
  endparam
  param rtype
    caption="r type"
    default=■
    enum="magnitude" "real part" "imag part" "real■imag" "imag/real"
    hint="Determines the r value used in the tent map."
  endparam
  param rottype
    caption="rotation type"
    default=■
    enum="none" "constant" "progressive" "oscillating"
    hint="In 'constant' mode, the same angle is used every iteration. \
      In 'progressive' mode, the angle is increased by the amount every \
      iteration. In 'oscillating' mode, the map is rotated forward, then \
      back, then forward, etc."
  endparam
  param rotamount
    caption="rotation amount"
    default=■■.■
    hint="How much the map is rotated."
  endparam
  param rotunit
    caption="rotation units"
    default=■
    enum="degrees" "radians"
    hint="Units in which the rotation is expressed."
  endparam
switch:
  type="general-tent-julia"
  julparam=#pixel
  bailout=bailout
  rtype=rtype
  rottype=rottype
  rotamount=rotamount
  rotunit=rotunit
}
not generated by AI logo