Procedural Flower Tool



Documentation on this tool can be seen in the viewer on the right.

Demo video can be found by hovering and clicking arrow to the right.

This exercise focused on the use of copy stamps, hscript expressions, and user defined parameters.

The pattern, as observed from the natural world such as in the center of sunflowers, is based off of the Golden Ratio. The base expression, created by Vogel, in reference to copy stamp used in this exercise is 

sqrt($CY) * sin($CY * 137.508)


The petals were created using curves (three different types for the user to choose from) and then mirror, join, and skin. I then used several twist nodes (operation bend) to add curling to the petals. I did this same process with the leaves.

In order to achieve the look of one petal getting larger than the previous (exponential), I used the expressions sqrt($CY) within the rotation and/or scale of the copy stamp, as seen in the image below. Another way to achieve a similar but different effect was to use the expression $CY/$NCY

For the center, I was able to create a dome from the group of spheres multiplying the entire equation by a negative value for the amplitude o the dome. As for the stalk, sweep was used to extend a circle along a line.


I struggled with developing methods for connecting the user interface to certain channels and options. For instance, I realized that because I included two toggle boxes for "Exponential Size" and "Exponential Angle", this would also result in a third option which entails both options being toggled on. With little experience in UI, I had some difficulty with this challenge, but eventually figured it out by using maybe one too many switches, as seen in the image below.

Whenever I had only "Exponential Angle" toggled, the first Copynum looked to be not affected. As seen in the image to the left, one of the petals has not angled as the others have. To (temporarily) combat this, I created a delete node to delete the first Copynum, as seen at the bottom of the image above.

In terms of look development, I could not get textures to appear on each individual petal despite using UVTexture or UVProject; the texture appeared in the viewport, but did not render out. I have yet to troubleshoot this. 

Final Thoughts

Despite struggling, I thoroughly grew from this project as it has revealed to me that I truly enjoy creating UI and procedural tools. I have lots to improve upon the aspects I have listed within my troubleshooting, such as collision detection, or having the petals bloom one after the other instead all at the same time.


Deborah Fowler

Daniel Soo

January 17 2018