HomeArticlesMandelbulb

The Mandelbulb's Power Operation: How a 3D Mandelbrot Set Was Finally Found

The triplex-number generalized power that extends z → z² + c into three dimensions, why n = 8 is the canonical Mandelbulb, and how its analytic distance estimator makes raymarching possible.

mysimulator teamUpdated June 2026≈ 7 min read▶ Open the simulation

Extending the Mandelbrot set into three dimensions

The classic Mandelbrot set is built from one rule applied to complex numbers: repeatedly square a point z and add the starting point c, and watch whether the sequence stays bounded or escapes to infinity. That rule lives naturally in two dimensions because complex numbers are a two-dimensional number system. There is no three-dimensional number system with the same clean algebraic properties, so a direct 3D analogue does not exist by simple extension — which is exactly why a workable 3D version, the Mandelbulb, was not found until 2009, discovered by Daniel White and Paul Nylander after years of the fractal community searching for one.

live demo – a raymarched Mandelbulb rotating under a power-n iteration● LIVE

Triplex numbers and the generalized power

Their solution treats a 3D point as a triplex number in spherical form and defines a generalized power operation on it that reduces to ordinary complex squaring when restricted to a 2D slice. For a point at spherical radius r, polar angle θ and azimuthal angle φ, raising it to the n-th power scales the radius to r^n and multiplies both angles by n, then converts back to Cartesian coordinates:

triplex power (spherical form):
r' = r^n
θ' = n × θ
φ' = n × φ
then: z_next = (triplex power of z) + c,   iterated exactly like the 2D Mandelbrot's z → z² + c

With n = 2 this operation is not identical to quaternion or other historically attempted 3D extensions — it was specifically constructed to produce a visually rich, bulbous, self-similar structure, and the standard, most recognisable Mandelbulb uses n = 8, which produces the bulging, organic lobes most images of it show.

Rendering it: distance estimation, not polygons

There is no way to mesh a Mandelbulb's boundary directly — it is an infinitely detailed fractal surface with no simple polygonal approximation — so it is rendered by raymarching a distance-estimated signed distance function instead of drawing triangles. For each pixel, a ray is cast from the camera and repeatedly advanced by the estimated distance to the nearest surface, which is safe to do because the estimate is a lower bound: taking a step of that size can never overshoot through the surface. For the Mandelbulb, that per-pixel distance estimate is derived analytically from the escape-time iteration:

de = 0.5 × log(r) × r / dr
   r  = current escaped radius |z| after the iteration loop
   dr = running derivative of |z| accumulated alongside each iteration
   step the ray forward by de; repeat until de is smaller than a threshold (hit) or the ray escapes

This is the same class of technique, sphere tracing, used to render every other analytic fractal and implicit surface on this site — it turns a surface defined by an equation into an image without ever needing to know the surface's shape in advance.

What the power slider actually changes

Because n directly scales how fast the radius and both angles grow each iteration, changing n changes both the number of lobes around the shape and how deep the surface detail recurses before escaping to infinity dominates. Low values of n near 2 produce smoother, rounder, less self-similar shapes closer in spirit to a sphere; the canonical n = 8 produces the familiar many-lobed bulb; pushing n higher packs in more, thinner lobes and finer, more repetitive surface detail, at the cost of needing more raymarching steps and a tighter distance threshold to resolve it cleanly, since the surface becomes locally sharper relative to the same iteration count.

Frequently asked questions

Why wasn't a 3D Mandelbrot set found until 2009, decades after the 2D version?

Complex numbers give the 2D Mandelbrot set a natural algebraic structure — squaring and adding are well-defined operations that preserve angles and scale sensibly. No equivalent 3D number system exists with the same properties, so a literal 3D analogue does not fall out of the math the way the 2D version does; the Mandelbulb is a deliberately constructed generalized power operation designed to produce a comparably rich fractal, not a direct algebraic extension.

Why is the Mandelbulb rendered by raymarching instead of building a 3D mesh?

Its boundary is an infinitely detailed fractal surface with no closed-form polygonal approximation, so there is nothing to mesh directly. Raymarching instead advances each pixel's ray by a distance estimate derived from the escape-time iteration, safely approaching the surface step by step without ever needing an explicit list of vertices.

What does changing the power n do to the shape?

It changes how fast the radius and angles grow each iteration, which changes both the number of lobes and how much fine self-similar detail appears before the sequence escapes. The canonical Mandelbulb uses n = 8; lower values look rounder and smoother, higher values pack in more, thinner lobes and finer surface detail.

Try it live

Everything above runs in your browser — open Mandelbulb and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.

▶ Open Mandelbulb simulation

What did you find?

Add reproduction steps (optional)