A bit more about Mandelbulb, Mandelbrot, Hopfbrot and discrete Mandelstuff. Some slides [PDF]. To be pure to the discrete, we also have a short part on Mandelbrot sets in finite rings …
Update September 15, 2022: Mandelbulbs in Mathematica in 3 lines. I worked this morning to get this down to a tweetable size. Remember in about 1992 when two line mathematica implementations of the Manelbrotset were possible? For mandelbulbs, one more line is necessary! Well, spherical coordinates do take a few more bytes than just using complex numbers. The degree 2 case is the Mandelbug which already Daniel White defined. The higher order bulbs were first looked at by Paul Nylander. I tried in this presentation to hunt down a bit more the history of the Mandelbulb. Mathematica as a universal computer algebra system is of course much slower than the mandelbulber. Producing good pictures in Mathematica with nice textures would be quite a task. One of the things one can try to do is to investigate the surfaces produced by the property that the m’th iterate reaches the sphere rho=2. In the tweet, I look at the 5th iterate. These regions form a nested sequence of solids and the intersection of all these regions is the mandelbulb. It would be really surprising if at some point the regions would bubble off. It is mathematically not excluded yet. It is also not excluded that either the outside or the inside of the Mandelbulb will allow non-contractible loops. The most likely situation would be that both the Mandelbulb and the exterior are contractible and that we are in a Schoenfliess type situation. The fact that a slice of a mandelbulb produces a mandelbrot set shows also that the question whether the boundary of the Mandelbulb is a quotient of a topological sphere must be difficult. In the Mandelbrot set it is still an open problem whether the boundary is the quotient of a Jordan curve. External rays might not necessarily land.
Update September 21, 2022: The Hopfbrot in 4 lines. To get the 4D mandelbulb implementation tweetable, more hacks were necessary like redefining Cos as c to save some chars. Here is a bit more sane version: still a bit crazy
G[X_,m_,n_]:=Module[{Y=X},T:=Block[{r=Sqrt[Y.Y],
u=Arg[Y[[1]]+I*Y[[2]]],v=Arg[Y[[3]]+I*Y[[4]]],
t=Arg[Y[[1]]/Cos[u]+I*Y[[3]]/Cos[v]]},
Y=r^m{Cos[m*u]*Cos[m*t],Sin[m*u]*Cos[m*t],
Cos[m*v]*Sin[m*t],Sin[m*v]*Sin[m*t]}+X];
Do[T,{n}];Y.Y];R=1.5; H[z_]:=RegionPlot3D[
G[{x,y,z,w},2,5]<=R^4,{x,-R-1.5,R+0.1},{y,-R,R+.1},
{w,-R,R+0.1},PlotPoints->50,ColorFunction->Hue];H[0]