Slightly modified my baguabox formula, so that unit vector is not reversed. Realy just used + instead of -.
Didn't explored much, but I got this 3D chessbord.
Then switched to normal power 2 modulus function and got this. This is the same parameter with the same zoom ake wiewport and the same colour method. A bitt more chaotic:
Here is Chaos Pro code:
Baguabox (quaternion) {
// Mandelbox alternative.
// Based on work of TGlad, Traffasel, Kali, M Benesi and LucaGen.
// By Edgar Malinovsky 25.07.2012.
// You may redistribute this algorithm, modify, derivate or use comercialy as you wish as long as you atribute proper credits.
// 10.08.2012 + smoother spherefold.
// 23.09.2012 + changeable factor for inversion addition.
// 04.10.2012 + fold using positive (non inverted) unit vector.
// 04.10.2012 + and fold using normal power 2 modulus.
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;
parameter int baguafold, modulustype;
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);
if (modulustype == 0)
{ //Folding by pow 8 modulus having unit circle shaped as octagon pillow.
modulus =((zx)^8 + (zy)^8+ (zz)^8)^0.125 ;
}
else if (modulustype == 1)
{//normal, are faster and less detailed.
modulus =sqrt(sqr(zx) + sqr(zy)+ sqr(zz));
}
if (baguafold == 0)
{
//more chaotic pattern.
if (modulus != 0)
//formula works even without this conditional.
{
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;
}
}
}
else if (baguafold == 1)
{
//more solid shape
if (modulus != 0)
//formula works even without this conditional.
{
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;
}
//scaling and 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;
bailout.hint = "Larger number increases fractal";
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 = 2.0;
Min_R.caption = "Radius";
Min_R.default = 0.5;
Scale.caption = "Scale";
Scale.default = 1.5;
modulustype.caption = "Modulus for Folding";
modulustype.default=0;
modulustype.enum="Power 8 (detailed)\nPower 2 (faster)";
baguafold.caption = "Bagua Fold vector";
baguafold.default=0;
baguafold.enum="Negative\nPositive";
julia.caption = "Julia Parameter";
julia.default = (0.35,-0.35,2.0,0);
julia.hint = "4th value is not used";
julia.visible = (settype=="Julia Set");
}
}
And here is Chaos pro parameter file of second fractal. Start a quaternion and past this in Chaos pro
Chessboard_of_Space3 {
credits="Asdam1;10/5/2012/12/38" commentTemplate="Saved on $month$\
, $day$ $year$ at $hour$:$min$:$sec$\nDate: $date$\nTime: $time$\nR\
esolution: $xdots$ x $ydots$\nCalculation time: $calctime$\nVersion\
: $version$"
CommentText="Saved on Oct, 7 2012 at 14:18:59\nDate: Oct 7, 2012\nT\
ime: 14:18:59\nResolution: 480 x 360\nCalculation time: 00:07:44.20\
8\nVersion: 4.0"
creationTime=2012/10/5/12/38/48 saveTime=2012/10/7/14/18/59
Creator="Asdam1" ModifiedBy="Asdam1" calcTime=464208 version=4.0
Type=Quaternion Subtype=0 Width=480 Height=360 DisplayDepth=24
roughness=+0.015 DOFEnabled=+1 DOFAperture=+1.25
DOFFocalLength=+0.436665978603351
DOFPlaneDistance=+0.873331957206702 FogEnabled=+1 FogRed=255
FogGreen=255 FogBlue=255 FogFront=+0.766960983401948
FogBack=+2.542169739843 FogDensity=+0.516159425503928
FogLinear=+0.05 FogSquare=+0.05 FogExp=+0.2
formula:
filename="Malinovsky3D.cfm" entry="Baguabox" p_bailout=15
p_settype="Mandelbrot Set" p_add=0.09 p_lenght=2 p_Min_R=0.5
p_Scale=1.5 p_modulustype="Power 8 (detailed)"
p_baguafold="Positive" p_julia=0.35/-0.35/2/0 p_addw1=0
p_addinverse=0 p_coefInv=0.125 p_coefInv2=0 p_coefInv3=0
p_vectored="None" p_coefVector=0.1/0.4 maxiter=12 highresmult=15
backtrace=4
inside:
filename="NumberSeekerColouring.ccl" entry="LogTrichrome"
p_pallete="Mixed Harmonic" p_posneg=0/0
p_lgtype="2- Smoother Triple log" p_darkness=2.5 p_postfn="1- None"
p_switchRB=0 p_baseR=1.35 p_baseG=1.55 p_baseB=1.65 solid=0
background=16777215
dimensional:
observer=0.48773243501017/-0.73956094850916/-0.49209625976303
topview=0.52265166928109/0.67338495891164/-0.52286511617172
viewpoint=-0.17697342729415/0.30453086102332/0.18812906173448
backClippingPlane=1.412316522135
lighting:
lightModel=0 light0Shadow=yes light1Enabled=yes light1Shadow=yes
light2Shadow=yes light3Enabled=yes light3Shadow=yes
light4Enabled=yes light4Shadow=yes
gradient:
smooth=yes colormodel=CM_RGB knotmode=all dragknotmode=global
Offset=0 knotrgb=(0,243,243,243) knotrgb=(32,0,90,220)
knotrgb=(64,190,190,190) knotrgb=(96,220,60,0)
knotrgb=(128,255,255,255) knotrgb=(160,0,34,160)
knotrgb=(192,243,243,243) knotrgb=(224,240,34,0)
}
https://sites.google.com/site/3dfractals/baguabox/baguaboxvariationsp.s.
Still, a bitt chaotic. This fractal were a superb if it was bit more orderly. Maybe I should try to look for julia sets, they should be more orderly.