Formula will be up tomorrow. Formula at bottom of post...
For now, a few small random pics as it's late. First, a 5th order "deep" zoom (11 or 12 iterations) to some sandstone cliffs at sunset:
2nd order rotated 90 degrees (straight on isn't interesting until 4th or 5th order, or maybe I didn't zoom enough), this resembles type D2 a bit, except when you zoom and increase iterations it is far more complex:
5th order rotated 90 (picked random "full" shots):
6th straight on (developing complexity even for straight on shot):
10th order rotated 90... different straight on though. The odds (3,5,7,9,11...) might be same straight and rotated, or maybe its 5,9,13... dunno, but the evens seem to be different when rotated:
Those are the previews. Pretty simple, it's a corrected rewrite of type C2 in the benesi set.
This code is simplified (eliminated a few options which make the fractal even more chaotic, will probably put them in updated benesi set):
r2= (sqr(sx)+sqr(sx2)+sqr(sy)+sqr(sy2)+sqr(sz)+sqr(sz2))^(n/2);
// setting r2= (sx^2+sy^2+sz^2) ^ (n/2) gives a very mandelbrotesque fractal when you don't take the absolute values of pixels
// however it doesn't result in as... beautiful fractals (in my opinion) for lower z^n, of course you decide for yourself
theta=atan2(sx+flip(sy));
tango=atan2(sx2+flip(sz));
whiskey=atan2(sy2+flip(sz2));
sx=r2*cos(theta*v)+(pixelr); //julia mode not implemented in this quick write up- haven't tried it yet
sx2=r2*cos(tango*v)+(pixelr); //
sy=r2*sin(theta*v)+abs(pixeli); //
sy2=r2*cos(whiskey*v)+abs(pixeli); // set abs for the y components.... just like a real 2d mandy y is reflected which eliminates distortions
sz=r2*sin(tango*v)+(pixelj); // in the z^n with even n...
sz2=r2*sin(whiskey*v)+(pixelj); //
bail=abs(sx)+abs(sy)+abs(sz)+abs(sx2)+abs(sy2)+abs(sz2);
And here is a quick bit of the type B1 correction (it works decently, but is distorted due to imbalanced variables (2 x, 1 y, and 1 z instead of C2's balanced 2 x, 2 y, and 2 z variables)... You can correct distortion with a scalar (.5 seems fine if you multiply sx and sx2 before taking (.5*(sx^2+sx2^2)+sy+sz)^(n/2)), but I think Type C2, while not as immediately pretty as type B1, is the more chaotic, interesting, and balanced fractal (especially after z^5: a few fractally sections in z^2, more as you increase n above 5, gets more interesting as you increase it beyond 10...). Over all it's up to you, but c2 is crazy.
Also, I believe (must recheck a bit) C2 has more variety: in the 11th order, type b1 has 4 symmetric sides, plus top/bottom symmetry, type c2 has 3 different "types" of sides (each having a matching opposite).
UPDATED VERSION BELOW THIS ONE... TYPE B3D (the D is added because for some reason I can't use type B3 without getting an error).
if (r2mode) {
r2=(sqr(sx)+sqr(sy)+sqr(sz))^(n/2); // this is for the less distorted mandy, of course it sacrifices y/z symmetry
} else {
r2=(sqr(sx)+sqr(sx2)+sqr(sy)+sqr(sz))^(n/2); // distorted, but y/z symmetry intact.... you decide
}
theta=atan2(sx+flip(sy));
tango=atan2(sx2+flip(sz));
nx=r2*cos(theta*v);
nx2=r2*cos(tango*v);
ny=r2*sin(theta*v);
nz=r2*sin(tango*v);
if (juliaMode) {
sx=nx+cr;
sx2=nx2+cr;
sy=ny+ci;
sz=nz+cj;
} else {
sx= nx + pixelr;
sx2= nx2 + pixelr;
sy= ny +abs(pixeli); //actually don't think absolute value effects it... should check however :D
sz= nz +abs(pixelj);
}
z=quaternion (sx,sy,sz,0);
bail=abs(sx)+abs(sy)+abs(sz)+abs(sx2);
Use r2mode for the more (not quite perfect... but as close as I've seen) Mandelbroty version.
It even has fractallyness in seahorse valley! (all other 3d "mandys" aren't as fractally in that area... AFAIK at the moment)
UPDATE OF TYPE B1: TYPE B3D:
if (r2mode) {
r2=(sqr(sx)+sqr(sy)+sqr(sz))^(n/2);
r3=(sqr(sx2)+sqr(sy)+sqr(sz))^(n/2);
} else {
r2=(sqr(sx)+sqr(sx2)+sqr(sy)+sqr(sz))^(n/2);
}
theta=atan2(sx+flip(sy));
tango=atan2(sx2+flip(sz));
if (r2mode) {
if (pixelr>0) {
nx=r3*cos(theta*v);
} else {
nx=r2*cos(theta*v);
}
if (pixelr>0) {
nx2=r2*cos(tango*v);
} else {
nx2=r3*cos(tango*v);
}
ny=r2*sin(theta*v);
nz=r3*sin(tango*v);
} else {
nx=r2*cos(theta*v);
nx2=r2*cos(tango*v);
ny=r2*sin(theta*v);
nz=r2*sin(tango*v);
}
if (juliaMode) {
sx=nx+cr;
sx2=nx2+cr;
sy=ny+ci;
sz=nz+cj;
} else {
sx=nx+(pixelr);
sx2=nx2+(pixelr);
sy=ny+abs(pixeli);
sz=nz+abs(pixelj);
}
z=quaternion (sx,sy,sz,sx2);
if (bailcontrol) {
bail=abs(sx)+abs(sy)+abs(sz)+abs(sx2);
} else {
bail=abs(sx)+abs(sy)+abs(sz);
}
}