COS 126 Recursive Graphics Submissions, Spring 2014


NAME AND DESCRIPTION N = 1 N = 2 N = 3 N = 4 N = 5 N = 6
Cristian Andronic

I've tried to turn the Sierpinski triangle into a pyramid and make it turn and twist (yes - it's animated, but you can only see the still frames). I've used the recursive function on the initial coordinates array with 3 components, and used a function to turn that array into one with only 2 components, to be projected on the flat screen. I would pass along some angles to make the pyramid wobble as it rotates, so you can view it from every possible perspective.
I've tried to turn the Sierpinski triangle into a pyramid and make it turn and twist (yes - it's animated, but you can only see the still frames). I've used the recursive function on the initial coordinates array with 3 components, and used a function to turn that array into one with only 2 components, to be projected on the flat screen. I would pass along some angles to make the pyramid wobble as it rotates, so you can view it from every possible perspective. I've tried to turn the Sierpinski triangle into a pyramid and make it turn and twist (yes - it's animated, but you can only see the still frames). I've used the recursive function on the initial coordinates array with 3 components, and used a function to turn that array into one with only 2 components, to be projected on the flat screen. I would pass along some angles to make the pyramid wobble as it rotates, so you can view it from every possible perspective. I've tried to turn the Sierpinski triangle into a pyramid and make it turn and twist (yes - it's animated, but you can only see the still frames). I've used the recursive function on the initial coordinates array with 3 components, and used a function to turn that array into one with only 2 components, to be projected on the flat screen. I would pass along some angles to make the pyramid wobble as it rotates, so you can view it from every possible perspective. I've tried to turn the Sierpinski triangle into a pyramid and make it turn and twist (yes - it's animated, but you can only see the still frames). I've used the recursive function on the initial coordinates array with 3 components, and used a function to turn that array into one with only 2 components, to be projected on the flat screen. I would pass along some angles to make the pyramid wobble as it rotates, so you can view it from every possible perspective. I've tried to turn the Sierpinski triangle into a pyramid and make it turn and twist (yes - it's animated, but you can only see the still frames). I've used the recursive function on the initial coordinates array with 3 components, and used a function to turn that array into one with only 2 components, to be projected on the flat screen. I would pass along some angles to make the pyramid wobble as it rotates, so you can view it from every possible perspective. I've tried to turn the Sierpinski triangle into a pyramid and make it turn and twist (yes - it's animated, but you can only see the still frames). I've used the recursive function on the initial coordinates array with 3 components, and used a function to turn that array into one with only 2 components, to be projected on the flat screen. I would pass along some angles to make the pyramid wobble as it rotates, so you can view it from every possible perspective.
Amandeep Saini

My artistic creation is a rainbow ice-cream cone that continuously changes flavor (changes cone and top color) for extended periods of time, depending on how large of an integer is fed into the command line. It takes advantage of a recursive function's ability to perform excessive computations to allow the cone to change color for an exponential amount of time. By randomizing the pen color with each loop, I ensured that the cone's many colors also keep changing. As an added touch, for command line values greater than 4, pink circles form around the circle, suggesting that the ice cream cone is beginning to drip because of the extended time. At values smaller than 4, however, the cone is not yet fully developed, and so, does not drip, as there is not enough ice-cream within it to drip.
My artistic creation is a rainbow ice-cream cone that continuously changes flavor (changes cone and top color) for extended periods of time, depending on how large of an integer is fed into the command line. It takes advantage of a recursive function's ability to perform excessive computations to allow the cone to change color for an exponential amount of time. By randomizing the pen color with each loop, I ensured that the cone's many colors also keep changing. As an added touch, for command line values greater than 4, pink circles form around the circle, suggesting that the ice cream cone is beginning to drip because of the extended time. At values smaller than 4, however, the cone is not yet fully developed, and so, does not drip, as there is not enough ice-cream within it to drip. My artistic creation is a rainbow ice-cream cone that continuously changes flavor (changes cone and top color) for extended periods of time, depending on how large of an integer is fed into the command line. It takes advantage of a recursive function's ability to perform excessive computations to allow the cone to change color for an exponential amount of time. By randomizing the pen color with each loop, I ensured that the cone's many colors also keep changing. As an added touch, for command line values greater than 4, pink circles form around the circle, suggesting that the ice cream cone is beginning to drip because of the extended time. At values smaller than 4, however, the cone is not yet fully developed, and so, does not drip, as there is not enough ice-cream within it to drip. My artistic creation is a rainbow ice-cream cone that continuously changes flavor (changes cone and top color) for extended periods of time, depending on how large of an integer is fed into the command line. It takes advantage of a recursive function's ability to perform excessive computations to allow the cone to change color for an exponential amount of time. By randomizing the pen color with each loop, I ensured that the cone's many colors also keep changing. As an added touch, for command line values greater than 4, pink circles form around the circle, suggesting that the ice cream cone is beginning to drip because of the extended time. At values smaller than 4, however, the cone is not yet fully developed, and so, does not drip, as there is not enough ice-cream within it to drip. My artistic creation is a rainbow ice-cream cone that continuously changes flavor (changes cone and top color) for extended periods of time, depending on how large of an integer is fed into the command line. It takes advantage of a recursive function's ability to perform excessive computations to allow the cone to change color for an exponential amount of time. By randomizing the pen color with each loop, I ensured that the cone's many colors also keep changing. As an added touch, for command line values greater than 4, pink circles form around the circle, suggesting that the ice cream cone is beginning to drip because of the extended time. At values smaller than 4, however, the cone is not yet fully developed, and so, does not drip, as there is not enough ice-cream within it to drip. My artistic creation is a rainbow ice-cream cone that continuously changes flavor (changes cone and top color) for extended periods of time, depending on how large of an integer is fed into the command line. It takes advantage of a recursive function's ability to perform excessive computations to allow the cone to change color for an exponential amount of time. By randomizing the pen color with each loop, I ensured that the cone's many colors also keep changing. As an added touch, for command line values greater than 4, pink circles form around the circle, suggesting that the ice cream cone is beginning to drip because of the extended time. At values smaller than 4, however, the cone is not yet fully developed, and so, does not drip, as there is not enough ice-cream within it to drip. My artistic creation is a rainbow ice-cream cone that continuously changes flavor (changes cone and top color) for extended periods of time, depending on how large of an integer is fed into the command line. It takes advantage of a recursive function's ability to perform excessive computations to allow the cone to change color for an exponential amount of time. By randomizing the pen color with each loop, I ensured that the cone's many colors also keep changing. As an added touch, for command line values greater than 4, pink circles form around the circle, suggesting that the ice cream cone is beginning to drip because of the extended time. At values smaller than 4, however, the cone is not yet fully developed, and so, does not drip, as there is not enough ice-cream within it to drip.
Carolyn Edelstein

This program makes reference to the grammatical warning we heard in lecture that the verb form of "recursion" is not "recurse," but "recur." It presents the same lesson as an XKCD-inspired animated strip, in which characters use the word "recurse" and it produces a re'curse'ive tree using comic strip characters for cursing (#@! etc) to trace the tree. The symbols help show the different levels of re-cursion. I first drew the two cartoons I would use as the panel.jpg files. Then, I coded a stick figure and using recursion drew branches, ending each branch with text symbols (@#%! etc). I used trigonometry to adjust the relationship between my lines.
This program makes reference to the grammatical warning we heard in lecture that the verb form of This program makes reference to the grammatical warning we heard in lecture that the verb form of This program makes reference to the grammatical warning we heard in lecture that the verb form of This program makes reference to the grammatical warning we heard in lecture that the verb form of This program makes reference to the grammatical warning we heard in lecture that the verb form of This program makes reference to the grammatical warning we heard in lecture that the verb form of
Chad Powers

I looked through Google images of fractals to get inspiration and came across both a 2D and 3D interpretation of the repeating square design. This is what my program outputs, in three shades of gray, 1 for each side. After much trial and error, I figured out that I had to make two separate recursive calls, one to draw the middle hole of a face and one to color the actual face. Each level uses this same recursive tree, drawing holes and faces in proper order. Each hole is composed of the the faces of two other sides at one-third the size. I created two separate methods for each of three sides for a total of 6 recursive methods. The methods to draw the face of a side only calls itself. The methods to draw the holes of each face call 5 of the 6 recursive methods. Note: I only use StdDraw and not StdDraw3D even though the output has the appearance of 3-dimensions.
I looked through Google images of fractals to get inspiration and came across both a 2D and 3D interpretation of the repeating square design. This is what my program outputs, in three shades of gray, 1 for each side. After much trial and error, I figured out that I had to make two separate recursive calls, one to draw the middle hole of a face and one to color the actual face. Each level uses this same recursive tree, drawing holes and faces in proper order. Each hole is composed of the the faces of two other sides at one-third the size. I created two separate methods for each of three sides for a total of 6 recursive methods. The methods to draw the face of a side only calls itself. The methods to draw the holes of each face call 5 of the 6 recursive methods. Note: I only use StdDraw and not StdDraw3D even though the output has the appearance of 3-dimensions. I looked through Google images of fractals to get inspiration and came across both a 2D and 3D interpretation of the repeating square design. This is what my program outputs, in three shades of gray, 1 for each side. After much trial and error, I figured out that I had to make two separate recursive calls, one to draw the middle hole of a face and one to color the actual face. Each level uses this same recursive tree, drawing holes and faces in proper order. Each hole is composed of the the faces of two other sides at one-third the size. I created two separate methods for each of three sides for a total of 6 recursive methods. The methods to draw the face of a side only calls itself. The methods to draw the holes of each face call 5 of the 6 recursive methods. Note: I only use StdDraw and not StdDraw3D even though the output has the appearance of 3-dimensions. I looked through Google images of fractals to get inspiration and came across both a 2D and 3D interpretation of the repeating square design. This is what my program outputs, in three shades of gray, 1 for each side. After much trial and error, I figured out that I had to make two separate recursive calls, one to draw the middle hole of a face and one to color the actual face. Each level uses this same recursive tree, drawing holes and faces in proper order. Each hole is composed of the the faces of two other sides at one-third the size. I created two separate methods for each of three sides for a total of 6 recursive methods. The methods to draw the face of a side only calls itself. The methods to draw the holes of each face call 5 of the 6 recursive methods. Note: I only use StdDraw and not StdDraw3D even though the output has the appearance of 3-dimensions. I looked through Google images of fractals to get inspiration and came across both a 2D and 3D interpretation of the repeating square design. This is what my program outputs, in three shades of gray, 1 for each side. After much trial and error, I figured out that I had to make two separate recursive calls, one to draw the middle hole of a face and one to color the actual face. Each level uses this same recursive tree, drawing holes and faces in proper order. Each hole is composed of the the faces of two other sides at one-third the size. I created two separate methods for each of three sides for a total of 6 recursive methods. The methods to draw the face of a side only calls itself. The methods to draw the holes of each face call 5 of the 6 recursive methods. Note: I only use StdDraw and not StdDraw3D even though the output has the appearance of 3-dimensions. I looked through Google images of fractals to get inspiration and came across both a 2D and 3D interpretation of the repeating square design. This is what my program outputs, in three shades of gray, 1 for each side. After much trial and error, I figured out that I had to make two separate recursive calls, one to draw the middle hole of a face and one to color the actual face. Each level uses this same recursive tree, drawing holes and faces in proper order. Each hole is composed of the the faces of two other sides at one-third the size. I created two separate methods for each of three sides for a total of 6 recursive methods. The methods to draw the face of a side only calls itself. The methods to draw the holes of each face call 5 of the 6 recursive methods. Note: I only use StdDraw and not StdDraw3D even though the output has the appearance of 3-dimensions. I looked through Google images of fractals to get inspiration and came across both a 2D and 3D interpretation of the repeating square design. This is what my program outputs, in three shades of gray, 1 for each side. After much trial and error, I figured out that I had to make two separate recursive calls, one to draw the middle hole of a face and one to color the actual face. Each level uses this same recursive tree, drawing holes and faces in proper order. Each hole is composed of the the faces of two other sides at one-third the size. I created two separate methods for each of three sides for a total of 6 recursive methods. The methods to draw the face of a side only calls itself. The methods to draw the holes of each face call 5 of the 6 recursive methods. Note: I only use StdDraw and not StdDraw3D even though the output has the appearance of 3-dimensions.
Daniel Gift

I wanted to do something with a star, and so when I came across a picture online of a star in a hexagon like this, I tried to figure out how to do it. I used 6 hexagons within the hexagon to create the star from the outline of the hexagon. I wasn't happy with the extra triangles they left, though, so I put hexagons in the leftover triangles and used hexagonal recursion inside those hexagons. Thus, double recursion!
I wanted to do something with a star, and so when I came across a picture online of a star in a hexagon like this, I tried to figure out how to do it. I used 6 hexagons within the hexagon to create the star from the outline of the hexagon. I wasn't happy with the extra triangles they left, though, so I put hexagons in the leftover triangles and used hexagonal recursion inside those hexagons. Thus, double recursion! I wanted to do something with a star, and so when I came across a picture online of a star in a hexagon like this, I tried to figure out how to do it. I used 6 hexagons within the hexagon to create the star from the outline of the hexagon. I wasn't happy with the extra triangles they left, though, so I put hexagons in the leftover triangles and used hexagonal recursion inside those hexagons. Thus, double recursion! I wanted to do something with a star, and so when I came across a picture online of a star in a hexagon like this, I tried to figure out how to do it. I used 6 hexagons within the hexagon to create the star from the outline of the hexagon. I wasn't happy with the extra triangles they left, though, so I put hexagons in the leftover triangles and used hexagonal recursion inside those hexagons. Thus, double recursion! I wanted to do something with a star, and so when I came across a picture online of a star in a hexagon like this, I tried to figure out how to do it. I used 6 hexagons within the hexagon to create the star from the outline of the hexagon. I wasn't happy with the extra triangles they left, though, so I put hexagons in the leftover triangles and used hexagonal recursion inside those hexagons. Thus, double recursion! I wanted to do something with a star, and so when I came across a picture online of a star in a hexagon like this, I tried to figure out how to do it. I used 6 hexagons within the hexagon to create the star from the outline of the hexagon. I wasn't happy with the extra triangles they left, though, so I put hexagons in the leftover triangles and used hexagonal recursion inside those hexagons. Thus, double recursion! I wanted to do something with a star, and so when I came across a picture online of a star in a hexagon like this, I tried to figure out how to do it. I used 6 hexagons within the hexagon to create the star from the outline of the hexagon. I wasn't happy with the extra triangles they left, though, so I put hexagons in the leftover triangles and used hexagonal recursion inside those hexagons. Thus, double recursion!
Fabian Lindfield Roberts

In my artistic creation I wanted to explore the idea of an eternel spiral. I decided to use a diamond as my base shape because it allowed for three distinct points to work from. I used 2 of the parameters to make the angle of rotation of the far right and far left diamonds greater when the diamonds which are not on the far left or far right of their branch.
In my artistic creation I wanted to explore the idea of an eternel spiral. I decided to use a diamond as my base shape because it allowed for three distinct points to work from. I used 2 of the parameters to make the angle of rotation of the far right and far left diamonds greater when the diamonds which are not on the far left or far right of their branch. In my artistic creation I wanted to explore the idea of an eternel spiral. I decided to use a diamond as my base shape because it allowed for three distinct points to work from. I used 2 of the parameters to make the angle of rotation of the far right and far left diamonds greater when the diamonds which are not on the far left or far right of their branch. In my artistic creation I wanted to explore the idea of an eternel spiral. I decided to use a diamond as my base shape because it allowed for three distinct points to work from. I used 2 of the parameters to make the angle of rotation of the far right and far left diamonds greater when the diamonds which are not on the far left or far right of their branch. In my artistic creation I wanted to explore the idea of an eternel spiral. I decided to use a diamond as my base shape because it allowed for three distinct points to work from. I used 2 of the parameters to make the angle of rotation of the far right and far left diamonds greater when the diamonds which are not on the far left or far right of their branch. In my artistic creation I wanted to explore the idea of an eternel spiral. I decided to use a diamond as my base shape because it allowed for three distinct points to work from. I used 2 of the parameters to make the angle of rotation of the far right and far left diamonds greater when the diamonds which are not on the far left or far right of their branch. In my artistic creation I wanted to explore the idea of an eternel spiral. I decided to use a diamond as my base shape because it allowed for three distinct points to work from. I used 2 of the parameters to make the angle of rotation of the far right and far left diamonds greater when the diamonds which are not on the far left or far right of their branch.
Joshua Burd

This program is based on the Cesaro Fractal. It includes two different recursive methods. First recursive method, called littleCesaro, decreases the size of the shape drawn K number of times. K is fixed for this assignment. Each iteration gets smaller by a factor of 1/K. The second recursive method actually draws the fractal. I essentially draw fractals with every number of iterations up to the user specified amount. The fractal iterates by placing an arrow head that is formed by two sides of an equilateral triangle on each line segment drawn. I remembered from class that I could pass and edit an array back and forth between methods so I thought it would work best to fill an array with all the points that I would need to draw, then using the polygon methods.
This program is based on the Cesaro Fractal.   It includes two different recursive methods.   First recursive method, called littleCesaro, decreases the size of the shape drawn K number of times.   K is fixed for this assignment. Each iteration gets smaller by a factor of 1/K.   The second recursive method actually draws the fractal.   I essentially draw fractals with every number of iterations up to the user specified amount.  The fractal iterates by placing an arrow head that is formed by two sides of an equilateral triangle on each line segment drawn. I remembered from class that I could pass and edit an array back and forth between methods so I thought it would work best to fill an array with all the points that I would need to draw, then using the polygon methods. This program is based on the Cesaro Fractal.   It includes two different recursive methods.   First recursive method, called littleCesaro, decreases the size of the shape drawn K number of times.   K is fixed for this assignment. Each iteration gets smaller by a factor of 1/K.   The second recursive method actually draws the fractal.   I essentially draw fractals with every number of iterations up to the user specified amount.  The fractal iterates by placing an arrow head that is formed by two sides of an equilateral triangle on each line segment drawn. I remembered from class that I could pass and edit an array back and forth between methods so I thought it would work best to fill an array with all the points that I would need to draw, then using the polygon methods. This program is based on the Cesaro Fractal.   It includes two different recursive methods.   First recursive method, called littleCesaro, decreases the size of the shape drawn K number of times.   K is fixed for this assignment. Each iteration gets smaller by a factor of 1/K.   The second recursive method actually draws the fractal.   I essentially draw fractals with every number of iterations up to the user specified amount.  The fractal iterates by placing an arrow head that is formed by two sides of an equilateral triangle on each line segment drawn. I remembered from class that I could pass and edit an array back and forth between methods so I thought it would work best to fill an array with all the points that I would need to draw, then using the polygon methods. This program is based on the Cesaro Fractal.   It includes two different recursive methods.   First recursive method, called littleCesaro, decreases the size of the shape drawn K number of times.   K is fixed for this assignment. Each iteration gets smaller by a factor of 1/K.   The second recursive method actually draws the fractal.   I essentially draw fractals with every number of iterations up to the user specified amount.  The fractal iterates by placing an arrow head that is formed by two sides of an equilateral triangle on each line segment drawn. I remembered from class that I could pass and edit an array back and forth between methods so I thought it would work best to fill an array with all the points that I would need to draw, then using the polygon methods. This program is based on the Cesaro Fractal.   It includes two different recursive methods.   First recursive method, called littleCesaro, decreases the size of the shape drawn K number of times.   K is fixed for this assignment. Each iteration gets smaller by a factor of 1/K.   The second recursive method actually draws the fractal.   I essentially draw fractals with every number of iterations up to the user specified amount.  The fractal iterates by placing an arrow head that is formed by two sides of an equilateral triangle on each line segment drawn. I remembered from class that I could pass and edit an array back and forth between methods so I thought it would work best to fill an array with all the points that I would need to draw, then using the polygon methods. This program is based on the Cesaro Fractal.   It includes two different recursive methods.   First recursive method, called littleCesaro, decreases the size of the shape drawn K number of times.   K is fixed for this assignment. Each iteration gets smaller by a factor of 1/K.   The second recursive method actually draws the fractal.   I essentially draw fractals with every number of iterations up to the user specified amount.  The fractal iterates by placing an arrow head that is formed by two sides of an equilateral triangle on each line segment drawn. I remembered from class that I could pass and edit an array back and forth between methods so I thought it would work best to fill an array with all the points that I would need to draw, then using the polygon methods.
Kevin Tang

I decided to draw two trees using recursion. The first iteration involved drawing 4 branches at the end of the trunk. Each subsequent iteration would draw 4 smaller branches on the old branches. I allowed the branches to change color depending on iteration. The new branches would bend away from the old branches at a constant angle. Finally, I included a background with a picture of a hammock.
I decided to draw two trees using recursion.  The first iteration involved drawing 4 branches at the end of the trunk.  Each subsequent iteration would draw 4 smaller branches on the old branches.  I allowed the branches to change color depending on iteration.  The new branches would bend away from the old branches at a constant angle.  Finally, I included a background with a picture of a hammock. I decided to draw two trees using recursion.  The first iteration involved drawing 4 branches at the end of the trunk.  Each subsequent iteration would draw 4 smaller branches on the old branches.  I allowed the branches to change color depending on iteration.  The new branches would bend away from the old branches at a constant angle.  Finally, I included a background with a picture of a hammock. I decided to draw two trees using recursion.  The first iteration involved drawing 4 branches at the end of the trunk.  Each subsequent iteration would draw 4 smaller branches on the old branches.  I allowed the branches to change color depending on iteration.  The new branches would bend away from the old branches at a constant angle.  Finally, I included a background with a picture of a hammock. I decided to draw two trees using recursion.  The first iteration involved drawing 4 branches at the end of the trunk.  Each subsequent iteration would draw 4 smaller branches on the old branches.  I allowed the branches to change color depending on iteration.  The new branches would bend away from the old branches at a constant angle.  Finally, I included a background with a picture of a hammock. I decided to draw two trees using recursion.  The first iteration involved drawing 4 branches at the end of the trunk.  Each subsequent iteration would draw 4 smaller branches on the old branches.  I allowed the branches to change color depending on iteration.  The new branches would bend away from the old branches at a constant angle.  Finally, I included a background with a picture of a hammock. I decided to draw two trees using recursion.  The first iteration involved drawing 4 branches at the end of the trunk.  Each subsequent iteration would draw 4 smaller branches on the old branches.  I allowed the branches to change color depending on iteration.  The new branches would bend away from the old branches at a constant angle.  Finally, I included a background with a picture of a hammock.
Kelly Zhou

I started by looking at previous student submissions from Spring '12, and Christina Efthimion's design with the tilted squares. I modified the design to make it my own. My artistic creation consists of four squares inside a square with each inner square tilted so that its corners are at the midpoint of the larger square. To produce the program, I made several methods that called each other recursively (indirect recursion). The program starts with one filled square in the regular orientation and calls several different recursive methods to split the square into four parts and create filled tilted squares inside each regular square. The program uses indirect recursion and different methods to make the tilted and regular squares alternate. Finally, I generated random colors to fill in the initial tilted square and the inner regular squares.
I started by looking at previous student submissions from Spring '12, and Christina Efthimion's design with the tilted squares. I modified the design to make it my own. My artistic creation consists of four squares inside a square with each inner square tilted so that its corners are at the midpoint of the larger square. To produce the program, I made several methods that called each other recursively (indirect recursion).  The program starts with one filled square in the regular orientation and calls several different recursive methods to split the square into four parts and create filled tilted squares inside each regular square.  The program uses indirect recursion and different methods to make the tilted and regular squares alternate.  Finally, I generated random colors to fill in the initial tilted square and the inner regular squares. I started by looking at previous student submissions from Spring '12, and Christina Efthimion's design with the tilted squares. I modified the design to make it my own. My artistic creation consists of four squares inside a square with each inner square tilted so that its corners are at the midpoint of the larger square. To produce the program, I made several methods that called each other recursively (indirect recursion).  The program starts with one filled square in the regular orientation and calls several different recursive methods to split the square into four parts and create filled tilted squares inside each regular square.  The program uses indirect recursion and different methods to make the tilted and regular squares alternate.  Finally, I generated random colors to fill in the initial tilted square and the inner regular squares. I started by looking at previous student submissions from Spring '12, and Christina Efthimion's design with the tilted squares. I modified the design to make it my own. My artistic creation consists of four squares inside a square with each inner square tilted so that its corners are at the midpoint of the larger square. To produce the program, I made several methods that called each other recursively (indirect recursion).  The program starts with one filled square in the regular orientation and calls several different recursive methods to split the square into four parts and create filled tilted squares inside each regular square.  The program uses indirect recursion and different methods to make the tilted and regular squares alternate.  Finally, I generated random colors to fill in the initial tilted square and the inner regular squares. I started by looking at previous student submissions from Spring '12, and Christina Efthimion's design with the tilted squares. I modified the design to make it my own. My artistic creation consists of four squares inside a square with each inner square tilted so that its corners are at the midpoint of the larger square. To produce the program, I made several methods that called each other recursively (indirect recursion).  The program starts with one filled square in the regular orientation and calls several different recursive methods to split the square into four parts and create filled tilted squares inside each regular square.  The program uses indirect recursion and different methods to make the tilted and regular squares alternate.  Finally, I generated random colors to fill in the initial tilted square and the inner regular squares. I started by looking at previous student submissions from Spring '12, and Christina Efthimion's design with the tilted squares. I modified the design to make it my own. My artistic creation consists of four squares inside a square with each inner square tilted so that its corners are at the midpoint of the larger square. To produce the program, I made several methods that called each other recursively (indirect recursion).  The program starts with one filled square in the regular orientation and calls several different recursive methods to split the square into four parts and create filled tilted squares inside each regular square.  The program uses indirect recursion and different methods to make the tilted and regular squares alternate.  Finally, I generated random colors to fill in the initial tilted square and the inner regular squares. I started by looking at previous student submissions from Spring '12, and Christina Efthimion's design with the tilted squares. I modified the design to make it my own. My artistic creation consists of four squares inside a square with each inner square tilted so that its corners are at the midpoint of the larger square. To produce the program, I made several methods that called each other recursively (indirect recursion).  The program starts with one filled square in the regular orientation and calls several different recursive methods to split the square into four parts and create filled tilted squares inside each regular square.  The program uses indirect recursion and different methods to make the tilted and regular squares alternate.  Finally, I generated random colors to fill in the initial tilted square and the inner regular squares.
Kellie Swadba

My artistic creation centers around a black square with a white outline with a blue diamond inside. This is repeatedly drawn inside itself and in the corners of the previous black square.
My artistic creation centers around a black square with a white outline with a blue diamond inside. This is repeatedly drawn inside itself and in the corners of the previous black square. My artistic creation centers around a black square with a white outline with a blue diamond inside. This is repeatedly drawn inside itself and in the corners of the previous black square. My artistic creation centers around a black square with a white outline with a blue diamond inside. This is repeatedly drawn inside itself and in the corners of the previous black square. My artistic creation centers around a black square with a white outline with a blue diamond inside. This is repeatedly drawn inside itself and in the corners of the previous black square. My artistic creation centers around a black square with a white outline with a blue diamond inside. This is repeatedly drawn inside itself and in the corners of the previous black square. My artistic creation centers around a black square with a white outline with a blue diamond inside. This is repeatedly drawn inside itself and in the corners of the previous black square.
Jonathan Liebman

My artistic creation is a model thunderstorm, that uses recursion two different times to be created. First, I created the initial shape of a lightning bolt in a function boltShape. Then, I used recursion to call that function two times to create an full lightning bolt, drawing smaller boltshapes on top and bottom of the middle part of the original boltshape to create a more realistic lightning bolt. Finally, I create N bolts, to create an effect of a larger thunderstorm.
My artistic creation is a model thunderstorm, that uses recursion two different times to be created. First, I created the initial shape of a lightning bolt in a function boltShape. Then, I used recursion to call that function two times to create an full lightning bolt, drawing smaller boltshapes on top and bottom of the middle part of the original boltshape to create a more realistic lightning bolt. Finally, I create N bolts, to create an effect of a larger thunderstorm. My artistic creation is a model thunderstorm, that uses recursion two different times to be created. First, I created the initial shape of a lightning bolt in a function boltShape. Then, I used recursion to call that function two times to create an full lightning bolt, drawing smaller boltshapes on top and bottom of the middle part of the original boltshape to create a more realistic lightning bolt. Finally, I create N bolts, to create an effect of a larger thunderstorm. My artistic creation is a model thunderstorm, that uses recursion two different times to be created. First, I created the initial shape of a lightning bolt in a function boltShape. Then, I used recursion to call that function two times to create an full lightning bolt, drawing smaller boltshapes on top and bottom of the middle part of the original boltshape to create a more realistic lightning bolt. Finally, I create N bolts, to create an effect of a larger thunderstorm. My artistic creation is a model thunderstorm, that uses recursion two different times to be created. First, I created the initial shape of a lightning bolt in a function boltShape. Then, I used recursion to call that function two times to create an full lightning bolt, drawing smaller boltshapes on top and bottom of the middle part of the original boltshape to create a more realistic lightning bolt. Finally, I create N bolts, to create an effect of a larger thunderstorm. My artistic creation is a model thunderstorm, that uses recursion two different times to be created. First, I created the initial shape of a lightning bolt in a function boltShape. Then, I used recursion to call that function two times to create an full lightning bolt, drawing smaller boltshapes on top and bottom of the middle part of the original boltshape to create a more realistic lightning bolt. Finally, I create N bolts, to create an effect of a larger thunderstorm. My artistic creation is a model thunderstorm, that uses recursion two different times to be created. First, I created the initial shape of a lightning bolt in a function boltShape. Then, I used recursion to call that function two times to create an full lightning bolt, drawing smaller boltshapes on top and bottom of the middle part of the original boltshape to create a more realistic lightning bolt. Finally, I create N bolts, to create an effect of a larger thunderstorm.
Mihaela Curmei

A circular pattern that resembles a crocheted detail. Inside the circle there is a flower with N petals. The circle is composed of N equally angled binary trees. The base case for the tree is rectangular. The angle between recursive ramifications is not constant, it increases non-linearly with N. The appropriate formula was found empirically. Since the pattern starts resembeling a crocheted detail after ~~8-9 recursions, but the testing runs only up to 7, when calling the recursive function the argument is changed to 2*N-1. For each tree the color of the branches gradually transitions between red and white. Source of inspiration : Annual Moldovan holiday that is celebrated in the begining of March, we wear red and white crocheted ornaments.
A circular pattern that resembles a crocheted detail. Inside the circle there is a flower with N petals. The circle is composed of N equally angled binary trees. The base case for the tree is rectangular. The angle between recursive ramifications is not constant, it increases non-linearly with N. The appropriate formula was found empirically. Since the pattern starts resembeling a crocheted detail after ~~8-9 recursions, but the testing runs only up to 7, when calling the recursive function the argument is changed to 2*N-1. For each tree the color of the branches gradually transitions between red and white. Source of inspiration : Annual Moldovan holiday that is celebrated in the begining of March, we wear red and white crocheted ornaments. A circular pattern that resembles a crocheted detail. Inside the circle there is a flower with N petals. The circle is composed of N equally angled binary trees. The base case for the tree is rectangular. The angle between recursive ramifications is not constant, it increases non-linearly with N. The appropriate formula was found empirically. Since the pattern starts resembeling a crocheted detail after ~~8-9 recursions, but the testing runs only up to 7, when calling the recursive function the argument is changed to 2*N-1. For each tree the color of the branches gradually transitions between red and white. Source of inspiration : Annual Moldovan holiday that is celebrated in the begining of March, we wear red and white crocheted ornaments. A circular pattern that resembles a crocheted detail. Inside the circle there is a flower with N petals. The circle is composed of N equally angled binary trees. The base case for the tree is rectangular. The angle between recursive ramifications is not constant, it increases non-linearly with N. The appropriate formula was found empirically. Since the pattern starts resembeling a crocheted detail after ~~8-9 recursions, but the testing runs only up to 7, when calling the recursive function the argument is changed to 2*N-1. For each tree the color of the branches gradually transitions between red and white. Source of inspiration : Annual Moldovan holiday that is celebrated in the begining of March, we wear red and white crocheted ornaments. A circular pattern that resembles a crocheted detail. Inside the circle there is a flower with N petals. The circle is composed of N equally angled binary trees. The base case for the tree is rectangular. The angle between recursive ramifications is not constant, it increases non-linearly with N. The appropriate formula was found empirically. Since the pattern starts resembeling a crocheted detail after ~~8-9 recursions, but the testing runs only up to 7, when calling the recursive function the argument is changed to 2*N-1. For each tree the color of the branches gradually transitions between red and white. Source of inspiration : Annual Moldovan holiday that is celebrated in the begining of March, we wear red and white crocheted ornaments. A circular pattern that resembles a crocheted detail. Inside the circle there is a flower with N petals. The circle is composed of N equally angled binary trees. The base case for the tree is rectangular. The angle between recursive ramifications is not constant, it increases non-linearly with N. The appropriate formula was found empirically. Since the pattern starts resembeling a crocheted detail after ~~8-9 recursions, but the testing runs only up to 7, when calling the recursive function the argument is changed to 2*N-1. For each tree the color of the branches gradually transitions between red and white. Source of inspiration : Annual Moldovan holiday that is celebrated in the begining of March, we wear red and white crocheted ornaments. A circular pattern that resembles a crocheted detail. Inside the circle there is a flower with N petals. The circle is composed of N equally angled binary trees. The base case for the tree is rectangular. The angle between recursive ramifications is not constant, it increases non-linearly with N. The appropriate formula was found empirically. Since the pattern starts resembeling a crocheted detail after ~~8-9 recursions, but the testing runs only up to 7, when calling the recursive function the argument is changed to 2*N-1. For each tree the color of the branches gradually transitions between red and white. Source of inspiration : Annual Moldovan holiday that is celebrated in the begining of March, we wear red and white crocheted ornaments.
Margaret Tait

My art is a picture of a giraffe eating leaves off of a recursively growing tree. I separated the branches and the trunk which is drawn at the very end. I also draw leaves. Instead of making the tree round, I kept it triangular and it reminds me of trees in the African Savannah so I added the picture in the back of the giraffe who is supposed to look like he's eating the leaves once the tree grows out.
My art is a picture of a giraffe eating leaves off of a recursively growing tree. I separated the branches and the trunk which is drawn at the very end. I also draw leaves. Instead of making the tree round, I kept it triangular and it reminds me of trees in the African Savannah so I added the picture in the back of the giraffe who is supposed to look like he's eating the leaves once the tree grows out. My art is a picture of a giraffe eating leaves off of a recursively growing tree. I separated the branches and the trunk which is drawn at the very end. I also draw leaves. Instead of making the tree round, I kept it triangular and it reminds me of trees in the African Savannah so I added the picture in the back of the giraffe who is supposed to look like he's eating the leaves once the tree grows out. My art is a picture of a giraffe eating leaves off of a recursively growing tree. I separated the branches and the trunk which is drawn at the very end. I also draw leaves. Instead of making the tree round, I kept it triangular and it reminds me of trees in the African Savannah so I added the picture in the back of the giraffe who is supposed to look like he's eating the leaves once the tree grows out. My art is a picture of a giraffe eating leaves off of a recursively growing tree. I separated the branches and the trunk which is drawn at the very end. I also draw leaves. Instead of making the tree round, I kept it triangular and it reminds me of trees in the African Savannah so I added the picture in the back of the giraffe who is supposed to look like he's eating the leaves once the tree grows out. My art is a picture of a giraffe eating leaves off of a recursively growing tree. I separated the branches and the trunk which is drawn at the very end. I also draw leaves. Instead of making the tree round, I kept it triangular and it reminds me of trees in the African Savannah so I added the picture in the back of the giraffe who is supposed to look like he's eating the leaves once the tree grows out. My art is a picture of a giraffe eating leaves off of a recursively growing tree. I separated the branches and the trunk which is drawn at the very end. I also draw leaves. Instead of making the tree round, I kept it triangular and it reminds me of trees in the African Savannah so I added the picture in the back of the giraffe who is supposed to look like he's eating the leaves once the tree grows out.
Ricardo Gabriel de los Reyes

I made a radiating fractal that repeats a simple geometric shape, specifically a diamond. I decided to have the diamonds come out of the corners of the root diamonds, resulting in a leaf-like pattern. This program makes use of vectors, transformation matrices, and linear algebra, to determine the dimensions and direction of branch diamonds based on the dimensions and direction of the root diamond.
I made a radiating fractal that repeats a simple geometric shape, specifically a diamond. I decided to have the diamonds come out of the corners of the root diamonds, resulting in a leaf-like pattern. This program makes use of vectors, transformation matrices, and linear algebra, to determine the dimensions and direction of branch diamonds based on the dimensions and direction of the root diamond. I made a radiating fractal that repeats a simple geometric shape, specifically a diamond. I decided to have the diamonds come out of the corners of the root diamonds, resulting in a leaf-like pattern. This program makes use of vectors, transformation matrices, and linear algebra, to determine the dimensions and direction of branch diamonds based on the dimensions and direction of the root diamond. I made a radiating fractal that repeats a simple geometric shape, specifically a diamond. I decided to have the diamonds come out of the corners of the root diamonds, resulting in a leaf-like pattern. This program makes use of vectors, transformation matrices, and linear algebra, to determine the dimensions and direction of branch diamonds based on the dimensions and direction of the root diamond. I made a radiating fractal that repeats a simple geometric shape, specifically a diamond. I decided to have the diamonds come out of the corners of the root diamonds, resulting in a leaf-like pattern. This program makes use of vectors, transformation matrices, and linear algebra, to determine the dimensions and direction of branch diamonds based on the dimensions and direction of the root diamond. I made a radiating fractal that repeats a simple geometric shape, specifically a diamond. I decided to have the diamonds come out of the corners of the root diamonds, resulting in a leaf-like pattern. This program makes use of vectors, transformation matrices, and linear algebra, to determine the dimensions and direction of branch diamonds based on the dimensions and direction of the root diamond. I made a radiating fractal that repeats a simple geometric shape, specifically a diamond. I decided to have the diamonds come out of the corners of the root diamonds, resulting in a leaf-like pattern. This program makes use of vectors, transformation matrices, and linear algebra, to determine the dimensions and direction of branch diamonds based on the dimensions and direction of the root diamond.
Rachel Xu

I drew a Heighway dragon curve, which replaces each segment with a right angle and rotates 45 degrees to the left and right, alternatively. I started from Wikipedia's list of fractals. I thought the boundary of the dragon curve looked neat, so I referenced the Wikipedia page to figure out the math behind the rotation and translation. I spent some time playing around with methods that input/output arrays, too. Finally, I doubled the command line argument and changed the colors to make things prettier.
I drew a Heighway dragon curve, which replaces each segment with a right angle and rotates 45 degrees to the left and right, alternatively. I started from Wikipedia's list of fractals. I thought the boundary of the dragon curve looked neat, so I referenced the Wikipedia page to figure out the math behind the rotation and translation. I spent some time playing around with methods that input/output arrays, too. Finally, I doubled the command line argument and changed the colors to make things prettier. I drew a Heighway dragon curve, which replaces each segment with a right angle and rotates 45 degrees to the left and right, alternatively. I started from Wikipedia's list of fractals. I thought the boundary of the dragon curve looked neat, so I referenced the Wikipedia page to figure out the math behind the rotation and translation. I spent some time playing around with methods that input/output arrays, too. Finally, I doubled the command line argument and changed the colors to make things prettier. I drew a Heighway dragon curve, which replaces each segment with a right angle and rotates 45 degrees to the left and right, alternatively. I started from Wikipedia's list of fractals. I thought the boundary of the dragon curve looked neat, so I referenced the Wikipedia page to figure out the math behind the rotation and translation. I spent some time playing around with methods that input/output arrays, too. Finally, I doubled the command line argument and changed the colors to make things prettier. I drew a Heighway dragon curve, which replaces each segment with a right angle and rotates 45 degrees to the left and right, alternatively. I started from Wikipedia's list of fractals. I thought the boundary of the dragon curve looked neat, so I referenced the Wikipedia page to figure out the math behind the rotation and translation. I spent some time playing around with methods that input/output arrays, too. Finally, I doubled the command line argument and changed the colors to make things prettier. I drew a Heighway dragon curve, which replaces each segment with a right angle and rotates 45 degrees to the left and right, alternatively. I started from Wikipedia's list of fractals. I thought the boundary of the dragon curve looked neat, so I referenced the Wikipedia page to figure out the math behind the rotation and translation. I spent some time playing around with methods that input/output arrays, too. Finally, I doubled the command line argument and changed the colors to make things prettier. I drew a Heighway dragon curve, which replaces each segment with a right angle and rotates 45 degrees to the left and right, alternatively. I started from Wikipedia's list of fractals. I thought the boundary of the dragon curve looked neat, so I referenced the Wikipedia page to figure out the math behind the rotation and translation. I spent some time playing around with methods that input/output arrays, too. Finally, I doubled the command line argument and changed the colors to make things prettier.
Christie Jiang

I am interested in the way fractals often lend themselves in processes of making images that are more realistic, due to many repeated layers. Thus I wanted to produce an image whose "true" form emerged after several iterations. My artistic creation is a spiral composed of squares of decreased size, increased angle of rotation, and transition of color from light to dark pink. I went about doing this by thinking of these squares as cards in a deck - further iterations inserted more "cards" between the existing ones, smoothing out their transition. Using that idea and recurring averages to produce such intermediate "cards," I wrote the code and then played around with specific values that affected centering the image and making the most aesthetically pleasing spiral that resembled a seashell.
I am interested in the way fractals often lend themselves in processes of making images that are more realistic, due to many repeated layers. Thus I wanted to produce an image whose I am interested in the way fractals often lend themselves in processes of making images that are more realistic, due to many repeated layers. Thus I wanted to produce an image whose I am interested in the way fractals often lend themselves in processes of making images that are more realistic, due to many repeated layers. Thus I wanted to produce an image whose I am interested in the way fractals often lend themselves in processes of making images that are more realistic, due to many repeated layers. Thus I wanted to produce an image whose I am interested in the way fractals often lend themselves in processes of making images that are more realistic, due to many repeated layers. Thus I wanted to produce an image whose I am interested in the way fractals often lend themselves in processes of making images that are more realistic, due to many repeated layers. Thus I wanted to produce an image whose