This adds a new Interpolate Curves node. It allows generating new curves between a set of existing guide curves. This is essential for procedural hair.
Usage:
- One has to provide a set of guide curves and a set of root positions for the generated curves. New curves are created starting from these root positions. The N closest guide curves are used for the interpolation.
- An additional up vector can be provided for every guide curve and root position. This is typically a surface normal or nothing. This allows generating child curves that are properly oriented based on the surface orientation.
- Sometimes a point should only be interpolated using a subset of the guides. This can be achieved using the Guide Group ID and Point Group ID inputs. The curve generated at a specific point will only take the guides with the same id into account. This allows e.g. for hair parting.
- The Max Neighbors input limits how many guide curves are taken into account for every interpolated curve.
Below is a set of regressions tests that cover 96.4% of the new node code.
Related todos:
- Provide access to corner normals (D16980: Mesh: Support computing custom/loop normals lazily (WIP). + access in nodes).
- Provide access to original geometry to distribute child hair before deformation.
- Try tangent space interpolation.


