This script was built from the ground up starting with a point. The trunk of the tree is slightly swaying at each level of the tree. The sway, rotation, banding, and the number of levels were editable and randomized. Then the candy canes that hang off each level are randomized in their position, rotation, orientation, color banding, and individual rotation. Several parameters were created to give it procedural functionality, but this was kept relatively constrained to make sure that all of the iterations would fit within a similar styling. A python script was created to easily export all of the geometry by layer and color to OBJ format.