I think I found noteworthy formula.
Idea is like abox, but julia sets are very dissimilar, and mset alsou are different, throught my abox alsou was a bitt non ordinary. 4 variables IMHO is enought and here alsou negative min Radius values can be used. Only negative trait is strong dependancy on bailout value. I coined the name "baguabox" becouse sometimes it looks like bagua on korean flag and becouse then in my file it stands second after amazingbox;)
Mset:
Some side zoom:
Julia set
(My monitor have some problems with red colour.)
Baguabox (quaternion) {
// Mandelbox alternative.
// By Edgar Malinovsky 25.07.2012.
// don't forget credits.
parameter real bailout;
parameter quaternion julia;
quaternion C;
real zx, zy, zz, temp, modulus, radius;
parameter real add, Min_R, Scale, lenght;
parameter int settype;
void init(void)
{
if (settype=="Julia Set")
{
z = pixel;
C = julia;
}
else
{
z= 0;
C= pixel;
}
}
void loop(void)
{
zx=real(z);
zy=imag(z);
zz=part_j(z);
//Folding by pow 8 modulus having unit circle shaped as octagon pillow.
modulus =((zx)^8 + (zy)^8+ (zz)^8)^0.125;
if (modulus != 0)
{
if (zx > lenght)
{
zx=-zx/modulus -add;
}
else if (zx < -lenght)
{
zx=-zx/modulus +add;
}
if (zy > lenght)
{
zy=-zy/modulus -add;
}
else if (zy < -lenght)
{
zy=-zy/modulus +add;
}
if (zz > lenght)
{
zz=-zz/modulus -add;
}
else if (zz < -lenght)
{
zz=-zz/modulus +add;
}
}
//spherefold. Similar to TGlads original, but allows to use a negative radius.
radius =sqr(zx) + sqr(zy) + sqr(zz);
if (radius < abs(Min_R) )
{
temp = Scale/Min_R;
}
else
{
temp = Scale;
}
//generating z value.
z = quaternion(zx, zy, zz, 0)* temp + C;
}
bool bailout(void)
{
return( |z| < bailout );
}
void description(void)
{
this.title = "Baguabox";
bailout.caption = "Bailout Value";
bailout.default = 15.0;
bailout.min = 0.5;
settype.caption = "Set type";
settype.enum = "Mandelbrot Set\nJulia Set";
settype.default = 0;
separator.label1.caption = "Shape depends on folding parameters and bailout.";
add.caption = "Add value";
add.default = 0.1;
lenght.caption = "Lenght";
lenght.default = 1.8;
Min_R.caption = "Radius";
Min_R.default = 0.5;
Scale.caption = "Scale";
Scale.default = 1.5;
julia.caption = "Julia Parameter";
julia.default = (0.35,-0.35,2.3,0);
julia.hint = "4th value is not used";
julia.visible = (settype=="Julia Set");
}
}
p.s.
More about this in here:
http://www.fractalforums.com/new-theories-and-research/new-3d-pattern-box/The same here:
https://sites.google.com/site/3dfractals/baguaboxAnd at the bottom of my formula file:
http://www.chaospro.de/formulas/display.php?fileid=222Edited: changed spherefold, so result is wqithout messy regions.