For our upcoming project, we’re planning on exploring the mandelbrot set and some of the math around it. The mandelbrot set is defined by the set of complex numbers which preserve the following property:
For a given value c, we define a recurring relationship
xn+1 = xn2 + c, where xn remains bounded (does not explode exponentially) and x0 = c
(see Wolfram Alpha)
Our initial idea was to learn to use the laser cutter and use it to make a visual 3D representation of the set. Visual representations of the set are generated experimentally, by taking a pixel’s location and running it repeatedly through the recurrence relationship and testing if it explodes. (For most practical purposes, this is defined as a magnitude greater than 2). The set varies based on the number of trials taken, shrinking as trials increase and revealing more of the fractal nature of the shape. We want to use the laser cutter to trace out the edges of some of these sets, letting us stack them successively and reveal how the mandelbrot set takes shape over many iterations.
In the first week of our project, we were able to accomplish a good amount of this. We wrote some code that generates a set of images from the set for each threshold, and were able to convert these rasterized images into an svg drawing and cut them out.
A full set with n=100
An svg generated with n=6 (holes cut out from the center for alignment of the pieces)
Here is the result of our first actual cut, which shows a set of increasingly large iteration values.
The size of this first piece means we miss out on a lot of the interesting details though. Here’s a more zoomed in section of the set in an interesting valley centered around the point -1.148 – 0.264i
The Mandelbrot set recurrence relation is actually not the only one in its family which generates interesting fractals, though. Take for example the Julia set. While the Mandelbrot set sets x0 and c to the same complex value, Julia sets fix a c and lets only x0 vary. Take for example
f(z) = z2 – 1
[3]
This has a Fractal dimension of 1.2683 [4]. Fractal dimension can be measured by a method called box counting. To do this, we cover the edge of a fractal using boxes of side length epsilon. Then, the fractal dimension is given by
The Mandelbrot set and Julia sets share an interesting relationship. Since each Julia set has a fixed complex value c, we can relate each point on the Mandelbrot set to a corresponding Julia set. A generator point which is within the Mandelbrot set will always generate a Julia fractal which is fully connected, while any point outside of the set will generate a non-connected “dust” pattern. Here are a few of the examples from our code:
We decided to cut out another set of layers of Julia sets. However, rather than making a stack using increasing iterations, we changed it up a bit. Keeping n at 30, we instead varied the generator point for each image. If the generator point is moved slowly through the Mandelbrot set, the Julia sets themselves morph slowly as well.
When we first tried to make this, the laser cutter was having some issues. One of the lenses broke, so they switched to a spare which limited the power we could use when cutting. Below is a picture of a failed cutting attempt.
In the future, we could try playing with the recurrence relation. Wolfram Mathworld gives another example of a different kind recurrence function
Which also produces interesting fractals [2].
[1] Explanation of Julia Sets
https://www.karlsims.com/julia.html
[2] Worlfram Mathword Mandelbot Sets:
https://mathworld.wolfram.com/MandelbrotSet.html
[3] Explore Mandelbrot Set online:
[4] Wikipedia Fractal Dimension
https://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimension
Leave a Reply