Fake 3D Mandelbrot Set

  • 7 Replies
  • 309 Views

0 Members and 1 Guest are viewing this topic.

Offline trafassel

  • *
  • Fractal Friend
  • **
  • Posts: 16
« on: August 30, 2018, 10:17:30 PM »
Because the search for the real 3D Mandelbrot Set ist frustrating, I start to create some fake 3D Mandelbrot Fractals by disturbing the Mandelbrot Set with the parameter z.
 
All Formulas are Gestaltlupe fomulas.

Code: [Select]
public double minr;
public int maxi;
public double scale1;
public double scale2;
public double scale3;
public bool usecolors;
public double mrscale;
public double scale1m;
public double z1;
double jx,jy,jz;
public override bool GetBool(double x,double y,double z)
{
  if (_isJulia)
  {
    jx=_jx;
    jy=_jy;
    jz=_jz;
  }
  else
  {
    jx=x;
    jy=y;
    jz=z;
    x=_jx;
    y=_jy;
    z=_jz;
  }
  Red=0;
  Green=0;
  Blue=0;
  double mr=minr;
  double s1=scale1;
  for (int i=1;i<_cycles;  i++)
  {
    double xx=x*x;
    double yy=y*y;
    double zz=z*z;
    double r=xx+yy+scale3*zz;
    if (r>6)return false;
    if(r>0)
    {
      Red+=xx/r;
      Green+=yy/r;
      Blue+=zz/r;
    }
    mr*=mrscale;
    s1*=scale1m;
    if (r<mr && i>maxi)
    {
      return true;
    }
    y=2*x*y+jy;
    x=xx-yy+z1*zz+jx;
    z=s1*z*Math.Pow(r,scale2)+jz;
  }
  return true;
}

public override void Init()
{
  base.Init();
  if(GetString("intern.Formula.TempUpdateVal")!="cbc1199bac7a0e477ce6112cfcbb05b7")
  {
    SetParameterBulk("Formula.Parameters: maxi=22 minr=4E-07 mrscale=1.27 scale1=1.61 scale1m=1.005 scale2=0.461 scale3=0.2 usecolors=0 z1=3 Formula.Static: Cycles=399 Julia=0 jx=0 jy=0 jz=0 Scene: CenterX=0.360349307269346 CenterY=-0.0896839428186666 CenterZ=0.000907168580142697 Radius=0.00239437249839199 Transformation.Camera: AngleX=12.6034368774674 AngleY=-40.6311848461177 AngleZ=-31.5578735989771 IsometricProjection=0 Position=1 intern.Formula: TempUpdateVal=cbc1199bac7a0e477ce6112cfcbb05b7");
  }
}


Offline trafassel

  • *
  • Fractal Friend
  • **
  • Posts: 16
« Reply #1 on: August 30, 2018, 10:27:23 PM »
An inside view.

Code: [Select]
public override void Init(){base.Init();if(GetString("intern.Formula.TempUpdateVal")!="a3efa36bb785d574f75d0e896ce97532"){SetParameterBulk("Formula.Parameters: maxi=222 minr=0.041 mrscale=1 scale1=1.572 scale1m=1.004 scale2=0.461 scale3=0.2 scalez=0.3 usecolors=0 z1=44 z4=0.99 Formula.Static: Cycles=555 Julia=0 jx=0 jy=0 jz=0 Scene: CenterX=-0.747347029826688 CenterY=-0.110663797335455 CenterZ=-0.000147633958289673 Radius=0.000263105188884941 Transformation.Camera: AngleX=-91.4661284939803 AngleY=18.5279605112074 AngleZ=-29.1587133688556 IsometricProjection=0 Position=1 intern.Formula: TempUpdateVal=a3efa36bb785d574f75d0e896ce97532");}}public double minr=0.05;public int maxi=17;public double scale1=2;public double scale2=0.5;public double scale3=0.5;public bool usecolors=true;public double mrscale=0.99;public double scale1m=1;public double z1=0;double jx,jy,jz;public double scalez=1;public double z4=1;public override bool GetBool(double x,double y,double z){if(z<0){}else z=Math.Pow(z,z4);z*=scalez;if (_isJulia){jx=_jx;jy=_jy;jz=_jz;}else{jx=x;jy=y;jz=z;x=_jx;y=_jy;z=_jz;}Red=0;Green=0;Blue=0;double mr=minr;double s1=scale1;double z3=scalez;for (int i=1;i<_cycles;i++){z3*=z4;double xx=x*x;double yy=y*y;double zz=z*z;double r=xx+yy+scale3*zz;if(r>0){Red+=xx/r;Green+=yy/r;Blue+=zz/r;}if (r>6)return false;mr*=mrscale;s1*=scale1m;if (r<mr && i>maxi){return true;}y=2*x*y+jy;x=xx-yy+z1*zz+jx;z=s1*z*Math.Pow(r,scale2)+jz;}return true;}

Offline Sabine62

  • *
  • Fractal Frogurt
  • ******
  • Posts: 459
  • It's just a jump to the left...
    • sabine62.deviantart.com
« Reply #2 on: August 31, 2018, 09:05:16 AM »
 :thumbs: Really nice looking results, fake or not  ;)
To thine own self be true

Offline trafassel

  • *
  • Fractal Friend
  • **
  • Posts: 16
« Reply #3 on: August 31, 2018, 07:56:00 PM »
Thanks.

Code: [Select]
public double minr=0.05;
public int maxi=17;
public double scale1=2;
public double scale2=0.5;
public double scale3=0.5;
public bool usecolors=true;
public double mrscale=0.99;
public double scale1m=1;
public double z1=0;
double jx,jy,jz;
public double scalez=1;
public double z4=1;
public override bool GetBool(double x,double y,double z)
{
  if(z<0)
  {
  }
  else z=Math.Pow(z,z4);
  z*=scalez;
  if (_isJulia)
  {
    jx=_jx;
    jy=_jy;
    jz=_jz;
  }
  else
  {
    jx=x;
    jy=y;
    jz=z;
    x=_jx;
    y=_jy;
    z=_jz;
  }
  Red=0;
  Green=0;
  Blue=0;
  double mr=minr;
  double s1=scale1;
  double z3=scalez;
  for (int i=1;i<_cycles;  i++)
  {
    z3*=z4;
    double xx=x*x;
    double yy=y*y;
    double zz=z*z;
    double r=xx+yy+scale3*zz;
    if(r>0)
    {
      Red+=xx/r;
      Green+=yy/r;
      Blue+=zz/r;
    }
    if (r>6)return false;
    mr*=mrscale;
    s1*=scale1m;
    if (r<mr && i>maxi)
    {
      return true;
    }
    y=2*x*y+jy;
    x=xx-yy+z1*zz+jx;
    z=s1*z*Math.Pow(r,scale2)+jz;
  }
  return true;
}

public override void Init()
{
  base.Init();
  if(GetString("intern.Formula.TempUpdateVal")!="df56cd74d98255c12094e43f12595f8c")
  {
    SetParameterBulk("Formula.Parameters: maxi=3 minr=0.0002 mrscale=1.13 scale1=1.61 scale1m=1.004 scale2=0.461 scale3=0.2 scalez=0.5 usecolors=0 z1=44 z4=0.99 Formula.Static: Cycles=555 Julia=0 jx=0.33 jy=0 jz=0 Scene: CenterX=0.340957877178389 CenterY=-0.0655349282756132 CenterZ=-0.000219581400425134 Radius=0.000361429050226264 Transformation.Camera: AngleX=-90 AngleY=0 AngleZ=0 IsometricProjection=0 Position=1 intern.Formula: TempUpdateVal=df56cd74d98255c12094e43f12595f8c");
  }
}

Offline trafassel

  • *
  • Fractal Friend
  • **
  • Posts: 16
« Reply #4 on: September 02, 2018, 05:39:05 PM »
Code: [Select]
public double minr;
public int maxi;
public double scale1;
public double scale2;
public double scale3;
public bool usecolors;
public double mrscale;
public double scale1m;
public double z1;
double jx,jy,jz;
public double scalez;
public double z4;
public override bool GetBool(double x,double y,double z)
{
  if(z>0)
  z=Math.Pow(z,z4);
  z*=scalez;
  jx=x;
  jy=y;
  jz=z;
  x=_jx;
  y=_jy;
  z=_jz;
  double mr=minr;
  double s1=scale1;
  double z3=scalez;
  for (int i=1;i<_cycles;  i++)
  {
    z3*=z4;
    double xx=x*x;
    double yy=y*y;
    double zz=z*z;
    double r=xx+yy+scale3*zz;
    if(r>0)
    {
      Red+=xx/r;
      Green+=yy/r;
      Blue+=zz/r;
    }
    if (r>6)return false;
    mr*=mrscale;
    s1*=scale1m;
    if (r<mr && i>maxi)
    {
      return true;
    }
    y=2*x*y+jy;
    x=xx-yy+z1*zz+jx;
    z=s1*z*Math.Pow(r,scale2)+jz;
  }
  return true;
}
public override void Init()
{
  base.Init();
  if(GetString("intern.Formula.TempUpdateVal")!="5a4283c35e74937b66cd6d965fd0eebf")
  {
    SetParameterBulk("Formula.Parameters: maxi=153 minr=0.17 mrscale=1 scale1=1.61 scale1m=1.004 scale2=0.461 scale3=0.2 scalez=0.1 usecolors=0 z1=21 z4=0.99 Formula.Static: Cycles=555 Julia=0 jx=0 jy=0 jz=0 Scene: CenterX=-0.703712616888288 CenterY=-0.34861488460146 CenterZ=-0.0110999789388717 Radius=0.00601311740030147 Transformation.Camera: AngleX=-71.7061323840061 AngleY=8.89341587538425 AngleZ=-15.8132056705929 IsometricProjection=0 Position=1 intern.Formula: TempUpdateVal=5a4283c35e74937b66cd6d965fd0eebf");
  }
}

Offline quaz0r

  • *
  • Strange Attractor
  • ******
  • Posts: 96
« Reply #5 on: September 03, 2018, 11:06:23 AM »
nice! i really like some of these that seem to have a bit more going on than the usual whipped cream stuff

Offline trafassel

  • *
  • Fractal Friend
  • **
  • Posts: 16
« Reply #6 on: September 10, 2018, 01:38:28 AM »
Another way to fake the 3D mandelbrot: Design the shape of the mandelbrot by disturbing another 3D fractals. Here is use escape time algorithm for Kleinian group limit sets from JosLeys and Knighty. (http://www.fractalforums.com/index.php?topic=24728.0)

Code: [Select]
public double KleinR;
public double KleinI;
public double minBailout;
public bool useLineOfSeparation;
public double losXScale;
public double losYScale;
public bool classicFolding;
// Escape time algorithm for Kleinian group limit sets from JosLeys and Knighty.
// http://www.fractalforums.com/index.php?topic=24728.0
public override bool GetBool(double x, double y, double z)
{
  double losXScaleFactor = losXScale*2.0*Math.PI;
  double jx, jy, jz;
  if (_isJulia)
  {
    jx = _jx;
    jy = _jy;
    jz = _jz;
  }
  else
  {
    jx = x;
    jy = y;
    jz = z;
    x = _jx;
    y = _jy;
    z = _jz;
  }
  for (int i = 0;i < _cycles;  i++)
  {
    if(classicFolding)
    {
      x=x%2;
      z=z%2;
      while(Math.Abs(x)>0.5)
      {
        if(x>0.5) x = 1-x;
        if(x<-0.5) x = -1-x;
      }
      while(Math.Abs(z)>0.5)
      {
        if(z>0.5) z = 1-z;
        if(z<-0.5) z = -1-z;
      }
    }
    else
    {
      x = x-Math.Floor(x+0.5);
      z = z-Math.Floor(z+0.5);
    }
    if(useLineOfSeparation)
    {
      if ( y >= KleinR*(0.52+losYScale*Math.Sin(losXScaleFactor*x)) )
      {
        x = KleinI-x;
        y = KleinR-y;
        z = -z;
      }
    }
    double xx=x*x,yy=y*y,zz=z*z;
    double r=xx+yy+zz;
    if(r>0)
    {
      x /= r;
      y /= r;
      z /= r;
      if(r>0.00000000001 && i>2)
      {
        Red+=xx/r;
        Green+=yy/r;
        Blue+=zz/r;
      }
      if(r<minBailout) return false;
    }
    x = KleinI + x;
    y = KleinR - y;
    z = -z;
    x+= jx;
    y+= jy;
    z+= jz;
  }
  return true;
}

Parameters:
Code: [Select]
public override void Init()
{
  base.Init();
  if(GetString("intern.Formula.TempUpdateVal")!="0256d0e4fc8d06ab3e756ce1ac354af8")
  {
    SetParameterBulk("Formula.Parameters: classicFolding=1 KleinI=0.009828904647462 KleinR=1.95409610447188 losXScale=0.6 losYScale=-0.22 minBailout=0.2 useLineOfSeparation=1 Formula.Static: Cycles=166 Julia=1 jx=0.019 jy=-0.034 jz=0 Scene: CenterX=6.08180264629283 CenterY=0.637672507930825 CenterZ=-3.21305014645458 Radius=0.000147989238364178 Transformation.Camera: AngleX=64.0933881879361 AngleY=-46.0090366814574 AngleZ=141.449287633522 IsometricProjection=0 Position=1 intern.Formula: TempUpdateVal=0256d0e4fc8d06ab3e756ce1ac354af8");
  }
}

Offline gforce

  • *
  • Fractal Friend
  • **
  • Posts: 11
« Reply #7 on: September 10, 2018, 03:15:46 AM »
Very cool, i guess that's what I have been trying to do for a while :)


clip
M-brot distance estimation versus Claude's "fake" DE

Started by gerrit on Fractal Mathematics And New Theories

8 Replies
498 Views
Last post October 14, 2017, 05:25:36 AM
by gerrit
xx
(Mandelbrot / Burning Ship / Mandelbrot / Mandelbrot) Hybrid

Started by claude on Fractal movie gallery

15 Replies
520 Views
Last post February 06, 2018, 04:56:54 AM
by claude
xx
Mandelbrot Burning Ship Mandelbrot Mandelbrot hybrid

Started by claude on Fractal Image Gallery

0 Replies
170 Views
Last post January 16, 2018, 11:30:30 PM
by claude
xx
Mandelbrot Burning Ship Mandelbrot Mandelbrot hybrid 2

Started by claude on Fractal Image Gallery

0 Replies
155 Views
Last post January 17, 2018, 12:10:56 AM
by claude
xx
Mandelbrot Burning Ship Mandelbrot Mandelbrot hybrid 3

Started by claude on Fractal Image Gallery

0 Replies
181 Views
Last post January 17, 2018, 12:26:38 AM
by claude