Sierpinski Pentagon IFS project

Sierpinski Pentagon IFS project

thingiverse

In 1981, John E. Hutchinson introduced a concept known as iterated function systems (IFS) and was published in Fractals Everywhere by Michael Barnsley. An iterated function system (IFS) is a finite set of contractive mappings or constructions on a complete metric space. Let (M,f) be a metric space. A mapping T: M → M is a contruction if there exists a constant c , with 0 ≤ c ≤ 1,such that f(T(x), T(y)) ≤ cf(x, y) for all x, y contained in M. https://www.math.ucdavis.edu/~hunter/book/ch3.pdf Constructions bring points closer together and so, make shapes smaller. Fractals are complex patterns that are self-similar across different scales created by a repeated process like IFS. Thus, the shape of an IFS fractal is made up of copies of itself, each of which are made up of smaller copies of itself, going further and further towards infinity. The most well-known example of this is the Sierpinski triangle (or gasket), an overall equilateral triangle subdivided recursively into smaller equilateral triangles. Another example of IFS is the Sierpinski pentagon, which is similar to the Sierpinski triangle, which scales a pentagon and translates five smaller pentagons to fit inside the larger one. The scale factor for each function is r= (3-√5)/2 =0.381966. http://larryriddle.agnesscott.org/ifs/pentagon/details.htm I wanted to focus my project on creating the Sierpinski pentagon using an iteration function in OpenSCAD. First, I started with the base shape using a length of 50 and height of 5 (all in mm). len=50; h=7; module shape(){ linear_extrude(height=h) circle(r=len, $fn=5);} Before I started with the iteration function, I played around with the translate function to find a good layout for the smaller pentagons. Since I had length specified as the size of the pentagon, I simply modified the length for the translate inputs until I liked where they were. Next, I created a module for the iterate function using if else statements, with n being the number of iterations. module iterate(n){ if (n>0){…} else shape(); I put in the if clause the code for each pentagon using color, translate, and scale. For color, since I wanted to be able to see each level of iteration, I used RGB color values instead of the color name, modifying each level of color with n so the lighter colors are the higher levels. Here is the code for one of the pentagons: //red color([(n+1)/8, 0, 0]) translate([0.2*len, 0.6*len, h]) scale(0.381966) iterate(n-1); Once I had my code all set and ready to go, I printed iterate 5 times (n = 0, 1, 2, 3, 4) until the computer could not handle rendering any further. Due to Covid-19 restrictions at my university, I am unable to print myself and do not have a physical copy of the project to show.

Download Model from thingiverse

With this file you will be able to print Sierpinski Pentagon IFS project with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Sierpinski Pentagon IFS project.