
This project explores procedural generation in architecture and computational design by using native C# scripts within Rhino Grasshopper to model organic systems. By replacing rigid geometric formulas with a recursive branching engine that interacts with environmental forces, the script simulates real-time biological growth patterns and morphogenetic adaptations.
Parameters:
Trunk Length
This parameter establishes the baseline scale of the primary trunk, serving as the foundation for the tree’s overall height. It defines the initial structural volume before recursive scaling dictates the proportions of downstream limbs.

Branch Angle
Operating in radians, this value dictates the structural spread and silhouette profile of each node split. Tight values generate slender, upright species like poplars, whereas wider angles mimic the sprawling, horizontal canopy structures of oaks.

Generations
This variable defines the recursion depth, controlling how many consecutive generations the tree will branch out from the main trunk. Lower values keep the model limited to heavy primary limbs, while higher values generate dense networks of delicate twigs and complex canopy details.

Branch Jittering
By injecting localized, non-uniform mathematical noise into individual node rotations, this variable breaks perfect fractal symmetry. It introduces organic imperfections, ensuring that no two forks split identically and giving the tree its naturalistic character.

Split vs Straight
This metric sets the probability of a node bypassing a standard symmetrical “Y” split to form a primary dominant leader branch instead. It mimics botanical apical dominance, allowing one shoot to continue straight along the parent axis while its sibling diverges as a side branch.

Sun Weight
This parameter simulates phototropism by pulling the growth direction of upper limbs toward the light source, using live solar data from the Ladybug plugin. Higher weights cause the canopy to lean dynamically toward the sky, mimicking how real trees warp to maximize photosynthesis.

Wind Weight
This setting introduces an environmental force that pushes the branches along a specific horizontal vector to simulate localized wind loads. It allows you to model trees that look organically sculpted or windswept by their microclimate.

Grasshopper Script Structure

EPW Preparation

Sun Vectors

Wind Vectors

C# Script


Conclusion
While native Grasshopper components excel at linear data workflows, they traditionally struggle with complex feedback loops where an operation needs to reference its own previous output. Implementing recursion via C# breaks this limitation, allowing designers to script behaviors that repeat, scale, and evolve dynamically over multiple generations.
**Runtime Notes: The Script needs EPW file that cannot be uploaded here, any EPW would work.