BranchOut is a Maya plugin that I created along with another student as part of a course on advanced topics in animation. The tool was created using a combination of MEL scripting, C++ programming, and 3D modelling.
The plugin allows users to generate tree models using algorithms that mimic natural growth. Using a large set of customizable parameters, users can create different shaped trees meshes that will ‘grow’ according to their environment.
The simulation attempts to maximize collected resources based on available free space and light collection opportunities (aka space colonization and shadow propagation), then resources are redistributed throughout the system to drive branch size and generation. The BranchOut plugin is based on concepts presented in the 2009 SIGGRAPH paper Self-Organizing Tree Models for Image Synthesis.