Houdini 20.0 Nodes Geometry nodes

Guide Groom geometry node

Interactively creates and modifies guide curves.

On this page

This node is a tool for creating guide curves for any type of groom.

Grooming radial menu

When using the Guide Groom SOP, make sure to switch to the Grooming radial menu from the top menu bar. This menu lets you quickly switch tools options in the viewport, and is the recommended workflow when using this node.

After switching to the Grooming radial, you can open it by pressing C. This brings up a menu that contains all the Tool options for the Guide Groom SOP, and reflects the options available in the Tool dropdown parameter on the node. It’s a quick way to switch between the options on this node.

For example, if you hover your mouse over Create & Move, you will see the 4 options available for creating and moving hair. You can either choose one, or navigate back to the previous level by hovering your mouse over the double arrows.

Each Tool has a Tool Options menu that is unique to that mode. For example, the tool options available in Draw mode are different than the ones available in Plant mode.


This section documents tools available in Guide Groom’s viewport state via the radial menu described above.

Create & Move


Draw individual hair curves.

Click and drag on the character’s skin and draw out from it to create a hair curve.

Various options are available to modify the drawing behavior. You can draw the entire hair on the character’s skin by enabling Draw on Skin.

Draw parting lines by changing Curve Type to.

The number of curve segments created is governed by the Segment Mode parameter. Set this to Fixed to create hairs with a predefined number of segments. Set it to Adaptive in order to create more segments for longer curves.


Click on the characters skin to create a hair at that point.

To create many hairs, switch to Scatter Mode and set the Radius and Density parameters. MMB Deletes curves under the brush.

To match the shape of surrounding hairs, enable Interpolate Guides. With this disabled (or when there are no hairs), the new hair will simply stick out straight from the surface. Length is then controlled by the Default Length parameter.

Interpolate Relative to Skin will interpolate surrounding hairs but rotate the created hair to match the clicked point’s skin curvature.


Move points around the character skin.

To rotate points with the curvature of the skin, enable Rotate with Skin


Evens out spacing between hairs. You can control the amount of space using the Density parameter.


Deletes hair under the brush.


Deletes hair until the density matches the Density parameter.



Smooths the shape of curves, removing any high frequency detail.

The higher the Smoothness parameter, the more details are smoothed out.


Clumps together any curves under the cursor. You can do this for the entire curve at once or in a more controlled way using Per Point.

MMB Separates the curves.


Sculpt curves by clicking and dragging.

Sculpt with Physics

Brush hair while simulating using Vellum physics.

Enable Live Simulation to run the simulation at all times, even while not actively brushing.

Use Settle Mode to drop hair under gravity.

Use Damped Mode to get the effects of physics simulation, with hair floating weightlessly.


Blends (averages) the shapes of hair under the brush.

Brush & Edit


Attempts to fix skin intersections, where part of the hair dives under the character’s skin.

Transform Handle

Use this tool to move curves or individual points using a transform handle.

Soft Transform softly transforms the entire curve or part of it, depending on the Soft Transform Mode.

⇧ Shift & Drag on the handle to clone curves. You can also clone end points to extend the curve.


After doing this, you may use Shift+D to redistribute points evenly along the curve. Or use Shift+R to resample to a different segment count.


Brushes hair, rotating from the root.

You can also bend hairs by increasing the Bend parameter. The shape of the bend is the controlled by the Bend Falloff.

Adjust Length

In Add / Subtract Mode, LMB to increase length, MMB to decrease.

Set Mode adjusts length until it matches the Length parameter.

With the Scale Method, the hair shape simply scales uniformly.

With the Cut / Extend Method, hairs are extended or trimmed at the tip.


Changes the orientation of hairs relative to the skin plane.

In Add / Subtract Mode, LMB raises and MMB lowers.

In Set Mode, hair is rotated until the angle matches the set Angle parameter.


Straightens the entire hair shape into a straight line, keeping the original length.

Group & Mask

Paint Group Tool

By default, this paints the currently set Active Name onto curves, but you can also change parameters under the Groups header to add brushed curves to a group instead.

Paint Mask Tool

Paint a mask attribute. Other tools use this to limit their effects to the painted region. The mask can be painted per point by enabling Paint Points.

LMB Adds to the mask, MMB removes.

For more information, see the Creating and styling guide hair with Guide Groom page.



Clears all edits, which resets back to the unmodified input or no geometry at all if no input is connected.


The currently selected elements to be groomed.

Group Type

The element type of the current selection.


The currently selected tool. The most convenient way to switch between tools is by using the Grooming Radial Menu.

Ray Bias

The thickness of the collision layer around the character’s skin. The Guide Groom SOP prevents curves from passing through this outer layer while you edit them.

The ideal value would be something like 1/10th or 1/100th of the shortest segment length in a groom. Making it much larger would keep curve points at a large distance from the skin. Making it too small would make it easier for curves to end up inside the skin.

Edit Selection as Clump

Brushing the selection will modify it as a whole, as if all selected curves were clumped together. This makes it easier to preserve the volume of existing clumps while sculpting.

Collide with Skin

Prevents guides from passing through the character’s skin. It can be useful to turn this off in certain situations. For example, when guide are already stuck inside the skin and you want to move them back out.

Use Mask

Reduces the effect of brushes and tools based on a painted mask. Use the Paint Mask tool to modify this mask.

You’ll also find mask related tools in the Grooming Radial Menu


Create & Output Feathers

Outputs curves with feather attributes needed to draw as feathers in the viewport.

Feather Draw Mode


Draw feathers as curves, without any barbs displayed.

Curve with Barbs

Draw feathers with barbs drawn as individual curves.


Draw feathers as polygon surfaces.

Set Feather Settings

Sets typical parameter settings needed for working with feathers.

This is currently only sets Create and Maintain orient Attribute under the Orientation Attributes header. The name of orientation attribute is set to the standard barborient needed for feathers.

Template Geometry SOP

The geometry to fetch feather templates from.

Template Group

The current template to assign to newly created feathers and to use with template assignment brushes & tools.

Auto Assign Side

Feathers are assigned a side attribute automatically, either left or right depending on their position. Templates will be flipped when they also have left or right side set, and their side doesn’t match the curve they're assigned to.

Selected to Left Side

Explicitly set the selected feathers to be “left” feathers.

Selected to Center

Explicitly set the selected feathers to be “center” feathers. Templates assigned to such a feather will never be flipped.

Selected to Right

Explicitly set the selected feathers to be "right feathers.

Brush Options

Surface Brush

Brush on the character’s surface. When this checkbox is turned off, the brush is in screen space. Most tools work either way, but for some tools such as Plant, this is always enabled since it only makes sense to plant guides on the surface of the skin.

Respect Parting Lines

When this checkbox is turned on, a brush will only affect guides on the cursor’s side of a parting line. This only works when Surface Brush is turned on, because the brushes' projected skin location is used to determine which side it is on.

Screen Radius

The brush radius in pixels, when Surface Brush is turned off.

Object Radius

The brush radius in Houdini units, when Surface Brush is turned on.


The strength of the brush effect.


The softness of the brush shape.


When this is non-zero, the brush will be splatted at regular pixel intervals, regardless of how fast you move the cursor. This only works when Surface Brush is turned off.

Per Point

Apply operation per point rather than per curve.

Maintain Length

The amount the the length of curves is preserved while brushing. Values lower than 1 allow you to modify curve lengths by brushing along the curve.


Values over 0 cause curves to bend more as you brush them, rather than just rotating from the root.

Bend Falloff

Higher values cause curves to bend more at the tip, lower values cause them to bend more easily at the root.

Rotate with Skin

Rotates curves with the skin curvature as you move them.

Constrain Length

Constrain the length of curve segments as you sculpt.

Lock Root

Locks the root in place as you sculpt.



Add / Subtract

Continuously lifts the curve of the skin as you keep brushing.


Lifts to a set amount.

Paint Points

Paint the mask values for individual points rather than curves as a whole.


The target angle for the lift tool.


Add / Subtract

Continuously Add to LMB or Subtract from MMB the curve length.


Adjust towards a predetermined absolute length as you brush.


The value to adjust by.


The length to adjust towards.


Cut / Extend

Cuts or extents at the tip, matching the tip direction.


Scales the entire curve, maintaining its shape.



Plants a single curve at the initial click location.


Scatters curves in a radius


The number of curves to scatter per square unit.

Default Length

The length of planted curves. This is ignored when Interpolate Guides is turned on, as the curves will match the shape and length of nearby guides.

Blur Relative to Skin

Preserve the orientation of curves relative to the skin.

Segment Count

Plant curves with this number of segments.

Interpolate Guides

Interpolate the shape of nearby guide curves.

Interpolate Relative to Skin

When interpolating guides, also maintain the shape’s orientation relative to the character’s skin.

Curve Type


Draw regular guide curves.

Parting Line

Draw parting line on the character’s skin.

Draw on Skin

Draw guides on the character’s skin. With this turned off, the first point drawn will sit on the skin, but subsequent points are drawn in the screen plane.

Segment Mode


Draw guides with a fixed number of segments.


Create more segments as you draw longer curves, trying to match the Segment Length set below.

Segment Count

The number of segments when Segment Mode is set to Fixed.

Segment Length

Simulation Mode


Bend & stretch constraints are computed, but hair doesn’t drop under gravity.


Full physics simulation including dropping under gravity.

Live Simulation

Simulate even while not actively brushing

Time Scale

An overall scale applied to the simulation timestep. Greater values slow down the simulation.


The gravity vector.

Constrain Root Orientation

Constrains the orientation of the first curve segment.


The strength of the physics brush.

Bend Stiffness

Controls the bend resistance of the simulated hair.

Stretch Stiffness

Controls the stretch resistance of the simulated hair.

Set Rest State

Sets the rest state to the current simulation state. Once you do this, you can jump back to other tools and back to Sculpt with Physics, and hair will not drop or settle further.

Clear Rest State

Clears any set rest state.

Utility Options

Segment Mode


Resample with a fixed number of segments per curve.


Resample such that a given segment length is matched, placing as many curve segments as necessary.

Add Point

Adds a new point between two existing points.

Remove Point

Removes all points except root and tip and results in a straight line.

Segment Count

The number of desired segments.

Segment Length

The desired segment length.


The overall angle in degrees.


Enable live mirroring.

Mirror Group

The group of primitives to mirror.


Origin point used for mirroring.


Direction vector of the mirror plane.


Preview the result of the utility.


Bake the result of the current parameter values into the groom.


Invert Mask

Invert mask values.

Clear Mask

Delete the mask attribute, clearing any previously painted values.

Curve Mask Ramp


Add New Curves to Group

Add newly created primitives to a group.

Active Group

The group to add newly created primitives to.

Add Selection to Group

Add the current selection to the Active Group.

Delete Group

Delete the Active Group. This does not delete the curves contained in the group.

Hide Selection

Hide curves in the current selection.

Unhide All

Unhide all curves.

Set Name on New Curves

Set a name attribute on newly created curves.

Name Attribute

The name of the name attribute itself. The actual name of curves (i.e. the values of the attribute) are set using the Active Name parameter.

Active Name

Newly created primitives will be set to this name when Set Name on New Curves is turned on.

Set Name on Selected Primitives

Sets selected primitives to the Active Name.

Select Primitives With This Name

Selects any primitives whose name matches Active Name.

Color Primitives by Name

Randomly colors primitives based on their name.

Random Color Seed

A seed value for the randomly generated colors.


Override with Detail Attribute

When a detail attribute width is found, use this as the width of the output curves.


Set a global width for output curves. This is ignored when Override with Detail Attributes is enabled and a width detail attribute is present.

Orientation Attributes

Create and Maintain orient Attribute

Creates an orient point attribute on newly created curves. Grooming tools will update this orient to keep the z-vector of the orientation parallel to the curve tangent.

Orient Attribute Name

The name of the created orientation attribute. For feathers this should be barborient.

Flip Up Vector Attribute

Flip values of the up vector attribute specified below.

Orient Up Vector

A global up vector, used when the up vector attribute specified below isn’t present.

Orient Up Vector Attribute

An skin up vector attribute used to align orientation on newly created curves.


Enable Callback Scripts

Enable the callback scripts below.

Start Stroke

This python script will be executed whenever you start a brush stroke.


This python script will be executed whenever the brush is moved during a stroke.

End Stroke

This python script will be executed whenever a brush stroke is finished.

Geometry nodes