I'm trying to build out an idea for an HDA that would create a vine along a surface based on a find shortest path SOP and some controllers for where the start and end points would be to control how long the vine is. This is mostly intended to be a tool in a realtime engine with the idea that it would be cooked into a static mesh (so it doesnt need to animate).
I have the main branch generating fine but I am attempting to create some branching points from the main curve to create child branches from this main branch. However, I'm fairly new to Houdini and kind of stumped where to go from here.
Currently I'm scattering points from the main branch and attempting to drive them away from the main branch while following along the surface normal of the underlying mesh. I've got something really basic(just sending them out at a random vector direction and snapping them to the surface) but I feel as though this method doesnt give me any control.
I thought about trying to make the branches use a find shortest path as well but Im not sure how to control where the start and end points would be procedurally, hence why I was trying to create curves along the surface normals in an attribute wrangle instead.
I attached a .hip file for anyone willing to take a look. Thanks for any advice, I appreciate any pointers in understanding VEX better.
IvyGrowing.hip