Julia Vase - 3D Prints Generated Using Fractals
A while ago I took a fractals and chaos course. One of the fractals we learned about was the Mandelbrot Set and its respective Julia Sets. The Julia Sets have some interesting properties which make them very easy to 3D print. I made a MATLAB program that generates Julia Set fractals and exports a 3D printable stl file based equations describing a path through the Mandelbrot Set.
The Mandelbrot Set is the set of all complex numbers c that converge when repeatedly plugged into the equation f(c) = z^2 + c starting at z = 0. This deceptively simple equation creates an infinitely complex shape centered roughly around (0,0) in the complex plane.
The colors in the Mandelbrot set represent how fast a point diverges |
Every point on the Mandelbrot set also has a respective Julia Set. The equation is the same except that c is held constant and the Julia Set is determined by which values of z diverge when c is held constant. The Julia sets generated by groups of points on the Mandelbrot set have some very useful properties:
1. Points near each other will have similar Julia Sets, in other words, the shape of the Julia Set changes "smoothly" if you travel through the Mandelbrot set.
2. Julia sets inside the main bulb of the Mandelbrot set will form one continuous albeit infinitely complex region.
Example of the changing Julia Sets as you travel through the Mandelbrot Set |
I was able to approximate the Mandelbrot Set and Julia Sets by checking every point in a grid and plotting it, then removing the internal points. For my 3D print, I used a small elliptical path in the middle of the main bulb of the Mandelbrot Set. The path equation is 0.32*(sin(t*2*pi)) + .3*(cos(t*2*pi)-1)*1i. Code available here.
MATLAB script generating the Julia Sets and a point cloud |
Using this point cloud I exported an stl file to 3D print. This turned out to be the hardest part of the project; getting MATLAB to properly generate a shape around the point cloud and make a stl file was very difficult. The file also required a good bit of post-processing, I used Meshmixer to smooth out the top and bottom and fix any errors in the stl file.
Sliced using vase mode in Cura |