A Rose for Rose

Brought to you by the Ministry of Hack



So late one night, I was sitting around browsing the web as per usual, and I decided to take a gander at one of my favorite bands' website. I started paging through the interviews section, when I came across this interview of Rose Marshack.

In one of the questions, Rose is asked to describe something. So she describes an iterative process on a triangle that yields an object with infinite parameter that can be encased inside a circle with finite parameter. (For those too lazy to check the interview link, you divide each side of the triangle into thirds, and in the middle third of each, you make an equilateral triangle. You continue to repeat this on all external sides of all triangles).

It being a Saturday night, I of course had nothing but time on my hands. So I went through the trouble of verifying this to try to brush up on some high school math. After some work, I came to the realization that the parameter is in fact infinite. Verrrry infinite. Each iteration n adds 4n-1/3n-1 units of parameter to the figure. Clearly even this itself is greater than one, so in an infinite sum of all of these (ie the parameter "after" infinite iterations of the process), you end up with Infinity. In fact, despite the fact that your added triangles are becoming more and more microscopic with each iteration, the parameter added in each continues to increase without bound. That's pretty cool.

So after this, I still had nothing better to do, so I decided to draw the beast on an old version of Mathematica to see what it would look like. It soon hit me that I could do something incredibly corny. If I rotated each iteration of the triangle generation some amount of degrees around the side of the previous triangle, maybe I could get something like a rose! A rose for Rose! Since I'm taking a 3D graphics class in the fall, and am going to need to brush up on my 3D vector math anyways, I decided to go for it. Sure enough, that night I completed a sketch of the rose and a crude triangle-filled version of it.

Two weeks later, I came back to it and decided to finish it off. I added some sine waves of varying phase, rotation, and curl as a stem, and completed the polygon fill of the rose. In the meantime, Rob Raguet-Schofield (aka Rob Ragfield, as he likes to be called) had pointed me to a nice Java 3D viewer so yall can look at it.

So here are the finished products. The first is the simple trace I completed the first night with a stem attached. The second is a simple red fill of that trace, and the third is a more complicated mess of triangles that fill it all in. Finally, I realized that a true rose should have the petals waaay more curled inwards, producing the fourth image. I've decided I definitely like the last image the best of the four, but saved them all to show the progression.

Drag your mouse to rotate, press shift and move your mouse up and down to zoom, and press shift and move your mouse side to side to spin it. Enjoy!


And here is the Mathematica source code in text (kind of sucks), html (really sucks), and Notebook (requires a free download of MathReader, which sucks).