Generative: Curves, Straps, and Trim

22 August 2024

A collection of procedural tools created with Blender’s Geometry Nodes system in order to ease my workflow on hobby game art projects, with a focus on powerful nondestructive workflows. These two examples serve to recreate and extend the functionality of Blender’s built-in methods for generating a mesh from a bezier curve.

The first example is applied to a bezier curve and takes as input a second ‘profile’ bezier curve, a sample count, and a radius. The profile makes up the cross section of the generated geometry, the radius is used to control the size of the cross section, and the sample count is used to resample the initial bezier curve to create even mesh density. Furthermore the node network includes an algorithm for calculating clean mesh seams from any profile and sample count, producing an immediately usable, squared, automatic UV unwrap on both cyclical and acyclical curves.

The second tool is a sort of custom extrude operation used to generate a trim perpendicular to the border of another mesh. A vertex group is used as input to mark the edge loop that makes up the border, which is then duplicated and turned into a bezier curve. The direction for the extrusion is calculated by taking cross product of the normal vector from the mesh instance of the vertex and the tangent vector from the bezier copy.

The straps on my motorcycle boots project were created using a derivative of the first example here. The nondestructive nature of the nodes enabled the creation of procedural skinning helpers, which allowed me to preview later steps of development while retaining the flexibility to adjust the configuration of the straps.