Fractal Art Experiment Using VEX Code:

Updated: Mar 22, 2023

My first attempt at recreating Entagma's Mandelbulb and Mandelbrot Fractal design (https://vimeo.com/176911687). 

After spending some time studying Python and C++, I was finally able to wrap my head around VEX and attempt a few more complex tutorials. Entagma's VEX tutorials have always been great to understand better applications of Coding in Houdini and this was a good opportunity to understand the Volume Wrangle as well.

I am writing the code for anyone who would like to take a look at it and probably add a few more twists and takes to it. 

//--- function ---

function int Mandel(float x0, y0, z0; int imax)
 

 
{
 

 
    float x = 0, y = 0, z = 0, xnew = 0, ynew = 0, znew = 0, n = ch("n"), r = 0, theta = 0, phi = 0;
 

 

 
    for(int i = 0 ; i < imax; i++)
 

 
    {
 

 
        //xnew = x*x - y*y + x0;
 

 
        //ynew = 2*x*y + y0;
 

 

 
        r = sqrt(x*x + y*y+ z*z);
 

 
        theta = atan2(sqrt(x*x + y*y), z);
 

 
        phi = atan2(y,x);
 

 

 
        xnew = pow(r, n) * sin(theta*n) * cos(phi*n) + x0;
 

 
        ynew = pow(r, n) * sin(theta*n) * sin(phi*n) + y0;
 

 
        znew = pow(r,n) * cos(theta*n) + z0;
 

 

 
        if(xnew*xnew + ynew*ynew + znew*znew > 8)
 

 
        {
 

 
            return(i);
 

 
        }
 

 
        x = xnew;
 

 
        y = ynew;
 

 
        z = znew;
 

 

 
    }
 

 
    return(imax);
 

 
}

//---main---
 

 
int maxiter = chi("maxiter");

if(Mandel(@P.x, @P.y,@P.z,maxiter) < maxiter)
 

 
{
 

 
    @density = 0.0;
 

 
}
 

 
else
 

 
{
 

 
    @density = 1.0;
 

 
}

    1