If you shift by pi/2 s and t before the sin(), you obtain a set where the empty slots are filled in by new "cactuses"

Can it be done in automatic please?

Mandelbulb3Dv17{

P.....S....O/...w....2...............1.......s1E................................

........................................kz1........A./..................y.2.....

................/ME//....6Eo....U.....E2.....omEQgisq6rD/..........c./...w1....U

z.....kD32../..........wz..................................2.....y1...sD...../..

.w1...sDYsAIxzzzjz1..........WAbUdisqcljRRxgCKosEwnYRydIKa5uzwPN9SaPRGyDFHQlSHA1

Iw1iNMIOip7tzqF/G0ZZtVyD......YP..............kD.2....sD..kz....................

.............................UTRU4.Yq/O.cQ5c/.wRU4.Ks/O.kX5c/UMSU4..............

.....................wzzz1.U..6.P....M4...EB....W....61....F....8/...I1....UJl32

...U.iVFwxDE./ozPM2Tzz7lz16.mc..zXCc.El18XGQeGyDjvIRhrVAkz1............28.kFrA0.

FWb96aAIVzvh1se7Umvxz0........../6U0.wzzz1................................E.0c..

zzzz.................................2U.8.kzzzD.................................

/6U0.wzzz1...................................2CcN/UvNP6.eeWCNq0.yRii.EJJUk1f..XR

S1.mx3CcN/UvNP6.QsLsUa3.ibhV..bTV1OK.sSq40.ly3CcN/UvNP6.MwLsUa3.ibhV.kqTV1OK.sSq

40.kz3CcN/UvNP6...EsUa3.eeWCNq0.IJ36wk8.wyLsUa3.................................

E6...6....E.....I....c....UIdJKPVtaPm.kPrJaQ.........................MU/4.......

...................................................wz..........kTIsuFVf5tzn53iSI

suFyz.........zD................................................................

.....................2.....3....8....6JOZpKMitaA................................

4MU/..........................................................zD..........A.....

........................kz1.....................................................

................................}

my "optimized" version of your formula with the "goodies"...

(rotate xyz)

r=scale/sqrt(z*z+y*y+x*x);

x=x*r;z=z*r;y=y*r;r=fabs(r);

s = z/(1-x);

t = y/(1-x);

w=1+s*s+t*t;

s=fabs(sin(pi*s+ssh));

t=fabs(sin(pi*t+tsh));

r=-0.25+pow(r,rp*w);w=2/(1+s*s+t*t);

*// It pretends rp=-2 and not +2, why? I've found the answer, since I use 1/r instead of r * // originally; w=1+s*s+t*t;z=r*2*s/w;y=r*2*t/w;

// x=r*(-1+s*s+t*t)/w=r*(1-2/w); optimized & subst...

x=r*(1-w);

y=r*t*w;z=r*s*w;

x+=xsh;y+=ysh;z+=zsh;

norm = z*z+y*y+x*x;