Houdini 22.0 Nodes Geometry nodes

Guide Reduce geometry node

Selects a sparse subset of guide curves that best represents a dense groom.

On this page
Since 22.0

Selects the minimum number of guides needed to accurately reconstruct the full groom using Guide Deform's Guide Shape Interpolation mode. The two nodes are designed to work together: Guide Reduce picks which guides to keep, and Guide Shape Interpolation uses those guides to deform the dense renderable curves at animation time.

The algorithm compares every guide against its neighbors using arc-length-sampled curve shapes — the same shape representation used internally by Guide Shape Interpolation. It iteratively adds guides, always picking the one that most improves reconstruction quality across the groom. This means the selected guides are naturally suited for Guide Shape Interpolation capture: they cover the shape space of the full groom as efficiently as possible.

The Density Mask lets you control guide density spatially — for example, keeping more guides in visible or complex regions and fewer in covered or simple areas. The mask is applied probabilistically using a low-discrepancy sequence so the spatial distribution of selected guides remains even within each density region.

Unselected guides are removed by default. Enable Add Selection to Group and Keep Unselected to keep all guides in the output and mark the selected subset with a primitive group instead — useful when downstream nodes need the full set.

Parameters

Group

Primitive group of guide curves to consider for reduction. Leave empty to reduce all guides.

Target Guide Count

Number of guides to select. The algorithm always runs to this count — it is not a quality threshold. When Preselected Guides is set, those guides count toward this total. If the preselected group already meets or exceeds the target, a warning is issued and adaptive selection is skipped entirely; all preselected guides are kept regardless.

Preselected Guides

Primitive group of guides to force-include in the output before adaptive selection runs. Useful for guides manually placed at important features that the algorithm might otherwise skip. If the count of preselected guides meets or exceeds Target Guide Count, all preselected guides are kept and no further selection is performed.

Add Selection to Group and Keep Unselected

When on, all input guides are kept and the selected subset is marked with the group named in Output Group Name. Use this when downstream nodes need the full guide set but you want to identify the reduced subset. When off (default), unselected guides are removed and only the selected subset remains in the output.

Output Group Name

Name of the primitive group written to the output when Add Selection to Group and Keep Unselected is on. Selected guides are added to this group.

Density Mask

Density Mask

Source of a per-guide density value (0–1) that controls how many guides are selected in each region. Guides in low-density regions are less likely to be selected and are spaced farther apart; guides in high-density regions follow the full target density. Leave at None for uniform guide distribution.

None

No mask. All guides are eligible for selection at equal density.

Guide Attribute

Reads the mask value from a primitive attribute on the guide curves. Specify the attribute name in Mask Attrib.

Skin Attribute

Reads the mask value from a point attribute on the skin mesh (second input). Specify the attribute name in Mask Attrib. Each guide samples the skin attribute at its root.

Texture

Reads the mask value from a UV-mapped texture file. Specify the file in Mask Texture. Each guide samples the texture at its root UV.

Texture Primitive

Reads the mask value from a texture painted as a primitive attribute on the skin mesh (third input). Specify the primitive name in Mask Texture.

Mask Options

Controls how the raw mask value is remapped before use. Both options can be active simultaneously. When both are on, Fit applies first and Ramp operates on the fitted result.

Fit

Linearly remaps the mask value from In Range to Out Range.

Ramp

Applies a custom ramp curve to the mask value. If Fit is also on, the ramp receives the already-fitted value.

In Range

Input value range for the linear fit. Values outside this range are clamped. Visible when Fit is enabled.

Out Range

Output value range for the linear fit. The remapped mask is scaled to this range before being used. Visible when Fit is enabled.

Mask Remap Ramp

Custom ramp applied to the mask value. The horizontal axis is the (optionally fitted) input value; the vertical axis is the final density. Visible when Ramp is enabled.

Mask Attrib

Used when Density Mask is Guide Attribute. Name of the primitive attribute on the guide curves that holds the mask value.

Mask Attrib

Used when Density Mask is Skin Attribute. Name of the point attribute on the skin mesh (second input) that holds the mask value. Each guide samples the skin at its root.

Mask Texture

Used when Density Mask is Texture. Path to the texture file used as the density mask. Each guide is sampled at its root UV.

Mask Texture

Used when Density Mask is Texture Primitive. Name of the texture primitive (third input) that holds the painted density mask.

Inputs

Guide Curves

Guide curves to reduce. The reduced subset is selected from these primitives.

Skin Mesh

Skin mesh used when Density Mask is set to Skin Attribute. Each guide samples the skin attribute at its root to determine its local density.

Skin VDB / Texture Primitives

Skin VDB and/or Texture Primitives. Texture primitives are used when Density Mask is set to Texture Primitive. The texture primitive name is specified in Mask Texture.

See also

Geometry nodes