Primitive Tab
The Primitive tab is where you generate dense hair strands from your sparse guides. This is where guides (50–500 curves) become realistic hair (10,000–100,000+ strands).
What is Primitive Generation?
Primitive generation fills in thousands of strands between your guides through interpolation. Each strand follows nearby guides, creating dense, realistic hair.
Density Panel
Density
Base number of strands.
Range: 1.0–10,000,000 (Default: 100.0)
Controls strand count. Higher values = more strands = denser hair.
When to adjust:
- Preview/testing: 100–5,000
- Medium quality: 5,000–20,000
- Production: 20,000–100,000
- Hero shots: 100,000+
Performance tip: Start low (1,000–5,000) while styling, increase for final renders.
Multiplier
Global scale factor for density.
Range: 0.0–100.0 (Default: 1.0)
Quick way to scale strand count up/down without changing the base value.
Driven by: its slider, an expression (ƒx), a painted density map or a vertex group. Painted channels are not available here.
Use Density Map
Enable texture-based density control.
When enabled, uses a painted texture to control density per-area:
- White = full density
- Black = no hair
- Gray = partial density
Great for hairlines, thinning areas, bald spots, and patterns.
Strand Shape Panel
CV Count
Control vertices (points) per strand.
Range: 0–200 (Default: 0)
- 0 = inherit from guides (recommended)
- Higher = more points per strand = smoother curves
Radius
Interpolation radius — how far strands look for nearby guides.
Range: 0.001–10.0 (Default: 0.15)
- Larger (0.2–0.5): Smooth, blended hair
- Smaller (0.05–0.15): Follows guides more closely
Variation
Random variation in strand interpolation.
Range: 0.0–1.0 (Default: 0.0)
Adds randomness to how strands follow guides. Higher values = more natural, less uniform.
Length Panel
Length
Strand length multiplier.
Range: 0.0–10.0 (Default: 1.0)
- 1.0 = same length as guides
- 0.5 = half guide length
- 2.0 = double guide length
Driven by: its slider, an expression (ƒx), a texture map, a painted channel or a vertex group.
Example expressions:
rand3(0.8, 1.2, index) # Random 80-120% per strand
lerp(0.8, 1.0, v) # Shorter at bottom, full at top
Width Panel
Width Scale
Strand width (thickness).
Range: 0.000001–0.5 (Default: 0.01)
Driven by: its slider, an expression (ƒx), a texture map, a painted channel or a vertex group.
Typical values:
- Fine hair: 0.0003–0.0005
- Normal hair: 0.0005–0.001
- Thick hair: 0.001–0.005
- Fur: 0.005–0.02
Taper Panel
Controls how strands thin from root to tip.
Taper
How much the width changes from root to tip.
Range: −1.0–1.0 (Default: 0.5)
- 0 = constant width
- +1 = the tip thins to nothing
- −1 = the tip is twice as wide as the root
Width Ramp
Curve editor for the width profile along the strand, root on the left and tip on the right.
Preset buttons: Linear, Ease In, Ease Out, Ease In/Out
Interpolation: Linear, CatmullRom, Bezier
Surface Offset Panel
Root Offset
Offset strand roots above surface.
Range: 0.0–1.0 (Default: 0.0)
Lifts strand roots slightly above the mesh surface to prevent clipping.
Region Map Panel
Creates hair partings and prevents strands from crossing boundaries.
Driven by: a painted region map, an expression or a vertex group.
Enable
Turn on region-based parting.
When enabled, strands only interpolate from guides in the same region:
- Paint RED = Region 0
- Paint GREEN = Region 1
- Creates a natural parting line between regions
Buttons: Paint / Save / Load
Parting Strength
How much strands are pushed away from the parting line.
Range: 0.0–5.0 (Default: 1.0)
Parting Mask
Optional mask to control parting strength spatially.
Buttons: Paint / Save / Load
Generate Button
Generate Hair — Creates strands using all current settings. This is the main action button at the bottom of the tab.
Practical Examples
Basic Hair
Density: 10000, Multiplier: 1.0
CV Count: 0 (inherit), Radius: 0.15
Length: 1.0, Width: 0.001
Taper Amount: 1.0
Dense Production Hair
Density: 50000
Radius: 0.12, Variation: 0.3
Width: 0.0005
Taper Amount: 0.9
Thin/Fine Hair
Density: 15000
Radius: 0.18
Width: 0.0003
Taper Amount: 1.0
Thick/Coarse Hair
Density: 8000
Radius: 0.1
Width: 0.002
Taper Amount: 0.7
Tips
- Start low, go high. Begin with low density (1,000–5,000) for fast iteration. Increase for final renders.
- Density maps are powerful. Use them for hairlines, thinning, and patterns.
- Width matters. Proper width makes hair look realistic. Too thick = fake, too thin = invisible.
- Natural taper. Use default taper settings for natural hair.
- Region maps for partings. Paint red/green regions to create natural hair partings.
- Expressions for variation. Use
rand3()to add natural variation without painting textures.
Common Mistakes
- Too much density too early. Starting with 100,000 strands is slow. Start with 5,000–10,000.
- Ignoring width. Using default width for all hair types. Fine hair needs thin strands, coarse needs thick.
- No taper. Setting taper to 0.0 for natural hair. Real hair tapers.
- Forgetting density maps. Using uniform density everywhere. Use maps for hairlines and thinning.
- Too much radius. Large interpolation radius (0.5+) makes hair too smooth and uniform.