This short tutorial covers how to render a Mandelbulb via a .ass file. We are generating a "Mandelbulb" 3D version of the Mandelbrot and Julia sets. For more information about how to generate the Mandelbulb, see the Large Datasets from Procedurals tutorial.
_{A closeup of the Mandelbulb. You can clearly see that it is formed of thousands of tiny spheres.}
A Julia set is the set of points on the complex plane that when squared and added iteratively to a constant (C), the 'prisoner' points fail to leave a circle of radius 2. There is a full Julia set for all possible values of C; C is a 2dimensional value on the complex plane.
Julia sets come in 2 different types:
1. Completely connected.
2. A disconnected Cantor dust of points (for more on Cantor dust  http://en.wikipedia.org/wiki/Cantor_set
If the center point (0,0) of a Julia set is a prisoner point, then the Julia set is completely connected; if it is not a prisoner point the Julia set is a Cantor dust.
The Mandelbrot set is the set if all fully connected Julia sets. It is generated by sampling the center point of all possible Julia sets. That means, for every point on a mandelbrot set, you can generate a Julia set. Although both sets are continuous functions in the complex plane, they are usually rendered by sampling an even grid (pixels), and if the point is a prisoner point, it is rendered black.
The Mandelbulb extends this math into three dimensions. This generator works by sampling all points in a regular grid, and if the point is a prisoner point, it adds it to an AiPoints geometry node for rendering.
You will need the following files to create and render the Mandelbulb:


Ensure that you are using an up to date version of Arnold before following this tutorial. Otherwise, you may encounter problems when rendering the Mandelbulb.
This tutorial is divided into 2 parts. The first covers the procedural node and adding parameters to the UI. The second discusses the effect of changing those parameters.