Concept for Mandelbrot set render in 3D:
Interior disc-like hyperbolic components are made 3D sphere-like balls, cardioid-like also made 3D in a similar way. Use a transparent material like glass.
Atom domain boundaries outside the Mandelbrot set (mostly circle-like) are made into 3D sphere-like balls using a thin-film soap bubble material.
The opaque ground plane intersects the structure, and is coloured in a monochrome fractal checkerboard pattern using bitwise XOR of X and Y coordinates.
The height of the interior components could be computed using the size estimate for the atom and the interior coordinate (multiplier map). Maybe |size| sqrt(1-|d/dz|^2)?
A distance estimate for this height field could be found for disc-like components by assuming the nearest point on the surface of the component is on the ray to the nucleus of the component, not sure how it would work for cardioid-like components...
Atom domain coordinates can be calculated to construct a height field too, but I think a "distance estimate to nearest atom domain boundary" algorithm will work out to be an O(N^2), where N is the maximum iteration count, because you need to check all the other periods for each period.
The interior is easier because all the components are disjoint (except at single points). Atom domains overlap.
So it remains a concept for now, too hard for me...
Distance estimates for height fields only work if the height field is well-behaved (eg: height is a constant factor times 2D exterior distance estimate of Mandelbrot set) so you can bound the distance to the surface from a point by a constant factor times the vertical distance from the surface.
My desired height field for interior as solid balls is not well-behaved (in fact the magnitude of the gradient tends to infinity at the boundaries), so the height field approach is doomed to fail.
This one binary searches for the surface of each component from its nucleus to far exterior in the direction of the target point. Finding the distance estimate in this solution is easy (just `length(point - nucleus) - length(surface - nucleus)`).
Finding the surface normal is harder: for circle-like components that become sphere-like the binary search ray direction is a close approximation, but cardioids are not sphere-like. One tangent is `i d/dz` at the boundary, but in the wrong frame...