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.
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...
I have more derivatives available (d/dz, d/dc, d/dz d/dz, d/dc d/dz) but I don't know yet how to combine them in the right way to get the result I need... more diagrams need drawing...
Welcome to post.lurk.org, an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that.