3D fractal
Mandelbulb
Live turntable captured from Spiralyst Lab.
The Mandelbulb is the most famous three-dimensional answer to the Mandelbrot set, built by raising points to a power in spherical coordinates and iterating. The result is an organic, bulbous, cauliflower-skinned planet, dense with surface detail that rewards flying in close.
The Cauliflower Planet
The Mandelbulb is the most famous attempt to drag the Mandelbrot set into three dimensions. The catch is that there is no true 3D number system that behaves like the complex plane, so for years a genuine 3D Mandelbrot seemed impossible. In 2009 Daniel White and Paul Nylander found a beautiful workaround: describe a 3D point by its length and two angles (spherical coordinates), and define 'raising it to a power' as multiplying its length by the power and multiplying both of its angles by the power. Iterate that and add the starting point back each time, exactly as the 2D Mandelbrot does.
The result is not mathematically 'pure' the way the 2D set is — it is an analogy rather than a true generalisation — but it is breathtaking. An organic, bulbous, cauliflower-skinned planet emerges, dense with surface detail that rewards flying in close. The exponent, or 'power', controls everything: the standard Mandelbulb uses power 8, a value White and Nylander chose purely because it produced the most beautiful, intricate skin.
Because the surface is defined implicitly — a point is either inside or outside after iterating — it is drawn by ray-marching: each pixel shoots a ray that creeps forward in safe steps sized by a 'distance estimator', a formula that says how far the ray can advance without punching through the surface. That trick, due to Hubbard and Douady, is what makes these objects renderable in real time at all.
Convert the 3D point v = (x,y,z) into spherical coordinates: a length r and two angles.
The 'power' operation — scale the length to the n-th power and multiply both angles by n. The standard Mandelbulb uses n = 8.
Iterate the power map (c is the starting point), and render with the Hubbard–Douady distance estimate, which tells each ray how far it may safely step.
In Spiralyst Lab
Spiralyst Lab implements exactly this canonical formula in a GLSL ray-marching shader, with power defaulting to 8, the distance estimate 0.5·ln(r)·r/dr, and a bailout radius of 2. Power is the headline dial (the gallery sweeps it 5.5→10 to morph the lobes while orbiting the camera); iterations add surface detail; the surface-ε and ray-step controls trade sharpness for frame rate. Lighting, fog and glow are added by the renderer and are not part of the fractal math.
Every parameter below is a live control — set it by hand, map it to a frequency band, or let it ride a smooth animation. These ranges are the actual in-app slider limits.
| Parameter | Range (in-app) |
|---|---|
| Power | 2 – 16 |
| Iterations | 3 – 20 |
| Bailout | 1.5 – 6 |
| Surface ε | 0.0001 – 0.005 |
| Ray steps | 16 – 200 |
Audio-reactive by default: power 5.5→10, fov 0.8→1.6. Any control can be mapped to audio or animation.
Plus the universal 3D controls every ray-marched type shares: camera (yaw, pitch, distance, FOV) and lighting (light direction, ambient, fog density, glow falloff).
Watch it in action
assets/video/fractals/15-mandelbulb.mp4
Did you know: There is nothing magic about the number 8 — White and Nylander simply tried many powers and found 8 produced the most beautiful, detailed surface. Lower powers look smoother; higher powers grow more lobes.