This custom HDA (Houdini Digital Asset) tool dynamically generates lily of the valley vines that adaptively climb and conform to any given geometry. The tool offers versatile controls, such as growth patterns, growth progress, branch numbers, leaf scales, etc.
Create Banches
- Base Geometry: Remeshed the input geometry and applied a slight peak operation to create a surface for vine attachment.
- Noise Filtering: Used a noise function to blast away portions of the surface, leaving areas for vine growth.
- Point Scattering: Scattered points on the filtered surface, with density determined by the noise pattern. Points were sorted by height (Y-axis).
- Vine Path Generation: Selected points at the bottom as starting points and randomly chose some as endpoints; Connected points with the Connect Adjacent Pieces node; Generated vine paths using Find Shortest Path; Simplified paths with Resample and Fuse nodes.
- Vine Thickness: Controlled by the path cost, creating a natural variation in vine thickness.
- Secondary Branches: Randomly selected points along the main vines; Added curves to these points as secondary branches using Copy to Points; Adjusted branch direction and size using Orient Along Curve and pscale attributes; Controlled branch thickness with Distance Along Geometry.
- Hanging Branches: Selected points with downward-facing normals; Randomly chose points to attach hanging branches created with Line nodes; Added slight distortion to lines using Mountain for realism; Controlled branch thickness with Distance Along Geometry.
- Leaf Variants: Created a collection of lily of the valley flowers and leaves with different shapes in Blender, assigning variants to each.
- Leaf Placement: Used curve normals and tangents to orient and attach leaves to vine paths; Copied leaf variants to curves and adjusted sizes with pscale attributes for natural variation.
The procedural vine system was packed into an HDA with exposed parameters for user control, allowing customization of: growth distribution and density, branch numbers, leaf coverage and scaling.