Clumping Modifier
The Clumping modifier groups strands together into natural bundles, like wet hair or tight curls. This is the most essential modifier for realistic hair - almost all real hair clumps naturally.
What is Clumping?
Clumping pulls strands toward "clump centers" (either guides or procedurally generated points), creating distinct bundles with gaps between them. This is how real hair behaves - individual strands stick together due to oils, moisture, or natural curl patterns.
Visual effect: Strands group into bundles. Instead of uniform hair, you get distinct clumps with visible gaps between them.
When to use: Almost always! Natural hair, wet hair, tight curls, any realistic hair styling.
Clump Source
Where clump centers come from.
Use Guides as Clump Centers
When on, each guide becomes a clump center and strands gather to their nearest guide. When off, clump points are scattered procedurally and the three controls below take over.
Density
Clump points per unit UV area. Drives how many procedural clumps are placed, and scales with surface size so the same value behaves consistently across differently-sized meshes. 0 uses the default count.
Only used when Use Guides is off.
Radius Var
Per-clump radius jitter.
- 0 — uniform clump sizes
- 1 — strong size variation
Uniform clump sizes are one of the clearest tells of CG hair. A little variance goes a long way.
Randomness
Clump point distribution randomness.
- 0 — uniform spacing
- 1 — fully scattered placement
Clump Effect
Clump Amount
Strength of the clumping effect — XGen's Clump.
Accepts a plain value or an inline expression, for example
rand3(0.6, 1.0, clump_id) to vary strength per clump. The brush,
save and load buttons beside it paint a per-area mask that multiplies the
amount.
Clump Scale
A profile curve controlling clumping strength along each strand, root to tip — XGen's Clump Scale.
The default releases the first 10% so roots stay planted while the rest of the strand gathers. Ramping strength up across the whole length is a common mistake and is particularly damaging with stacked clumps.
Preserve Len
How much of each strand's original length survives clumping — XGen parity.
Range: 0.0 to 1.0 (Default: 1.0)
- 0 — strands stretch toward the clump tip, so tips collapse
- 1 — strands keep their original length and reach toward the clump
- In between — blends continuously between the two
This replaces the old four-option Length Mode dropdown. Scenes saved with it convert automatically on load: None and Extend to Match become 0.0, Preserve Differences and Shorten to Match become 1.0.
Count Mode and Density Space
Density is now a count. It used to be a rate per unit of UV area, which made
the number you typed depend on your unwrap — the same value gave a different result on a
scalp, a brow and a lash strip, and re-unwrapping the head silently re-clumped every groom
in the scene. Density 50 now means 50 clumps, everywhere.
- Count Mode — switches between deriving the clump count from density and stating it outright.
- Clump Count — the explicit number, when you want exactly that many.
- Density Space — whether density is measured per unit of surface area or over the whole region. Surface area is the default and is independent of UV layout.
Upgrading a groom from before this change: clump numbers will need adjusting once. Raising the count now adds clumps rather than reshuffling the existing ones, so tuning is stable.
Confine to Hair
Confine to Hair restricts clump centres to areas where hair actually exists, instead of spreading them over the whole surface.
On a groom with a density map or a partly-bald scalp this stops clumps being placed in empty regions, where they pull nearby hair sideways toward a centre with nothing in it. It is on by default for newly added modifiers; existing modifiers keep their previous behaviour.
Stray Control
Strands that resist clumping, so the groom doesn't read as perfectly grouped.
Stray Rate
Fraction of strands that become strays.
Stray Amount
How far strays deviate from their clump.
Stray Falloff
How stray deviation is distributed along the strand — typically weighted toward the tip, so strays part company with their clump gradually rather than from the root.
Crossover
Rate at which strands cross between neighbouring clumps, breaking up hard clump boundaries.
Curl Effect
Enable Curling
Adds a helical twist around the clump axis.
Amplitude
Curl radius.
Frequency
Number of curl rotations along the strand.
Curl Profile
Curve shaping curl amplitude from root to tip. Usually stronger toward the tip.
Noise Effect
Clump-coherent noise — displacement that can be shared within a clump rather than applied per strand.
Enable Noise
Turns the noise stage on.
Amplitude
Noise displacement strength.
Frequency
Noise scale along the strand.
Correlation
How much neighbouring clumps share their noise.
- 0 — each clump wiggles independently
- 1 — neighbouring clumps wiggle together
This is the control that separates "noisy hair" from "hair moving as a mass". Raise it when independent wiggle reads as static rather than as styling.
Octaves
Number of noise layers. More octaves add finer detail at more cost.
Seed
Random seed for the noise pattern.
Noise Profile
Curve shaping noise amplitude along strand length. Usually stronger at tips.
Advanced
Flatten
Flattens the clump cross-section.
- 0 — round, a cylindrical clump
- 1 — ribbon, a flat card-like clump
Flatten Profile
Curve controlling how flattening varies along the strand.
Offset
Per-clump lateral shift, measured in clump radii.
- 0 — clumps centered on their points
- Higher — tufts wander off-center, breaking uniformity
Offset Noise
Randomises the per-clump offset magnitude.
- 0 — every clump shifts by the same amount
- 1 — magnitudes fully varied per clump
Seed
Master random seed for clump placement and variation.
Practical Examples
Example 1: Natural Hair
Tightness: 0.6
Blend: 1.0
Preserve Length: 1.0
Stray Rate: 0.1
Stray Amount: 0.6
Result: Natural clumping with 10% stray strands
Example 2: Wet Hair
Tightness: 0.95
Blend: 1.0
Preserve Length: 0.0
Stray Rate: 0.0
Result: Very tight clumps, tips converge (wet look)
Example 3: Loose Wavy Hair
Tightness: 0.4
Blend: 1.0
Preserve Length: 1.0
Enable Curling: Yes
Curl Amplitude: 0.08
Curl Frequency: 1.5
Stray Rate: 0.15
Result: Loose clumps with gentle waves
Example 4: Tight Curly Hair
Tightness: 0.8
Blend: 1.0
Enable Curling: Yes
Curl Amplitude: 0.03
Curl Frequency: 5.0
Result: Tight clumps with spiral curls
Example 5: Complex Natural Hair
Clump Amount: 0.65
Preserve Len: 1.0
Radius Var: 0.5
Randomness: 0.4
Stray Rate: 0.12
Enable Noise: Yes
Noise Amplitude: 0.015
Correlation: 0.6
Offset: 0.3
Offset Noise: 0.5
Result: varied clump sizes and placement, strays, and coherent waviness — the variation that used to be chased with sub-clumps comes from Radius Var, Randomness and Offset instead.
FollicleScript Examples
Per-Clump Tightness Variation
rand3(0.5, 0.8, clump_id)
Each clump gets random tightness between 0.5-0.8
UV-Based Tightness
v > 0.5 ? 0.8 : 0.5
Top half (v>0.5) gets tighter clumping than bottom half
Gradient Blend
lerp(0.5, 1.0, v)
Bottom (v=0) has 50% blend, top (v=1) has full blend
Conditional Stray Rate
u < 0.3 ? 0.2 : 0.05
Left side (u<0.3) has 20% strays, rest has 5%
Tips and Best Practices
Start with Defaults: The default settings (Tightness 0.7, Preserve Differences) work well for most hair.
Clump Scale matters: the default releases the first 10% so roots stay planted. Ramping strength across the whole length is a common mistake and is especially damaging with stacked clumps.
Add Strays: 5-15% stray rate adds realism. Real hair isn't perfectly uniform.
Use Preserve Differences: This length mode is most natural. Only use "None" for wet hair.
Vary the clumps for complexity: Radius Var and Randomness break up uniform clump size and spacing, and Offset lets tufts wander off-center. Uniform clumps are one of the clearest tells of CG hair.
Curl vs Coil Modifier: Clumping's curl is for subtle spiral within clumps. Use the Coil modifier for strong, defined curls.
Noise is Clump-Coherent: Remember, noise moves entire clumps together, not individual strands. Use Frizz modifier for per-strand randomness.
Expressions for Variation: Use expressions to vary tightness per clump. Uniform tightness looks CG.
Common Mistakes
Too Much Tightness: Setting tightness to 1.0 for everything. This creates overly tight, unnatural clumps. Use 0.6-0.8 for most hair.
Preserve Length too low: dropping it toward 0.0 on dry hair collapses the tips onto one point. Leave it at 1.0 unless you want a wet or very tight clump.
No Strays: Forgetting to add stray strands. Real hair has rebels! Add 5-15% strays.
Ignoring Clump Scale: a flat profile clumps the roots as hard as the tips, which pulls hair off the scalp. Leave the root release in place.
Uniform clump sizes: leaving Radius Var at 0 gives every clump the same radius, which reads as CG. Even 0.3–0.5 helps.
Confusing Curl and Coil: Using clumping curl for strong curls. Clumping curl is subtle. Use Coil modifier for defined curls.
Uniform Tightness: Not using expressions for per-clump variation. Add variation with rand3(0.6, 0.8, clump_id).
Next Steps
Clumping is usually the first modifier in your stack. After clumping, add:
- Coil Modifier — Add defined spiral curls
- Frizz Modifier — Add per-strand randomness and flyaways
- Cut Modifier — Trim to final length
Related Topics:
- Modifiers Tab — Understanding the modifier stack
- FollicleScript Expressions — Advanced variation
---
Clumping is the foundation of realistic hair. Master this modifier and you're halfway to great hair!