Workflows and Tips

Complete workflows for creating hair in FollicleFX, from simple straight hair to complex styled grooms.

---

Quick Workflow: Simple Straight Hair (5 min)

  1. Select your mesh (character head)
  2. Guides tab → Distribution: Poisson Disk, Count: 200, Length: 0.2 → Generate Guides
  3. Primitive tab → Density: 20,000 → Generate Strands
  4. Modifiers tab → Add Clumping (Tightness: 0.5) → Add Frizz (Magnitude: 0.8)
  5. Display tab → Pick a color preset

---

Intermediate Workflow: Wavy Hair with Clumping (10 min)

Guides

  • Count: 300, Length: 0.25, Control Points: 8
  • Sculpt guides for natural flow

Primitive

  • Density: 50,000
  • Length Variation: 0.15

Modifiers (in order)

  1. Clumping — Tightness: 0.5, Enable Curl (Amplitude: 0.04, Frequency: 1.5)
  2. Coil — Count: 2.5, Radius: 0.06, Mode: Wave
  3. Frizz — Magnitude: 1.2

---

Advanced Workflow: Production Styled Hair (30+ min)

1. Planning

  • Gather reference photos
  • Note clump patterns, flow direction, length variation
  • Plan modifier stack

2. Guides (10 min)

  • Count: 400–800, Length: 0.25, Control Points: 10
  • Generate, then sculpt for flow
  • Add Guide Flow modifier with pins for styled direction

3. Primitive (5 min)

  • Density: 80,000–100,000
  • Paint density map (thinner at temples, full at crown)
  • Set up region map for parting if needed

4. Modifier Stack (15 min)

1. Clumping — Tightness: 0.6, Fractal: 2 levels, Stray Rate: 0.1
2. Coil — Count: 4, Radius: 0.03, Mode: Helix
3. Frizz — Magnitude: 1.0
4. Cut — Expression: rand3(0.85, 1.0, index)
5. Surface Offset — Offset: 0.005

5. Texture Masks (10 min)

  • Clumping mask: full on crown, none at hairline
  • Frizz mask: strong at edges, none at part line

6. Refinement

  • Check from all angles
  • Adjust parameters
  • Save preset

---

Workflow Recipes

Tight Curls

Clumping (Tightness: 0.8) → Coil (Count: 8, Radius: 0.025, Helix) → Frizz (Magnitude: 1.5)

Wet Hair

Clumping (Tightness: 0.95, Length Mode: Tips Collapse) → Frizz (Magnitude: 0.3)

Messy/Damaged Hair

Clumping (Tightness: 0.3, Stray Rate: 0.25) → Frizz (Magnitude: 1.5) → Cut (Variance: 0.2)

Dreadlocks

Loc modifier (Coil Count: 12, Buildup: 0.6, Frizz: 0.3)

Braids

Create Blender curve → Braid modifier (3 strands, Twist: 2.5) → Generate guides → Primitive

Cornrows

Draw curve on surface → Cornrow modifier (Anchors: 14, Twist: 5) → Generate guides → Primitive

Short Fur

Guides (Length: 0.05) → Primitive (Density: 50k) → Guide Flow (Surface hugging) → Frizz (low)

---

Best Practices

Guides

  • Start with fewer guides (200–400), add more if needed
  • Always sculpt guides for flow — generated guides are just a starting point
  • Use Poisson Disk distribution for even coverage
  • Set guides slightly longer than target — you can always trim with Cut

Modifier Stack

  • Structure first, details last — Clumping → Coil → Frizz → Cut
  • Start with one modifier, see its effect, then add more
  • 2–4 modifiers is typical for most hairstyles
  • Simulate always goes last

Expressions

  • Start simple: rand3(0.8, 1.0, index) adds instant realism
  • Use clump_id for per-clump variation
  • Use v for top-to-bottom gradients
  • Test with constants first, add complexity gradually

Texture Masks

  • Use 1024×1024 resolution (sufficient for most cases)
  • Paint gradients, not hard edges
  • Save masks externally for reuse
  • Use descriptive names

Performance

  • Style at 10k–20k strands, Display % at 50%
  • Preview at 50k–80k strands, Display % at 100%
  • Final render at 100k–300k strands
  • Enable GPU Acceleration in Display tab

---

Common Mistakes

MistakeFix
Too many strands while stylingStart with 10k–20k, increase for final
Wrong modifier orderClumping before Frizz, always
No guide sculptingAlways sculpt — generated guides are just a start
Uniform parametersAdd variation with expressions or masks
Too much frizzStart low (0.5–1.0), increase gradually
Ignoring UVsCheck UV layout before painting masks
Forgetting to saveSave .blend frequently, save presets
Scalp penetrationAdd Surface Offset after styling modifiers

---

Troubleshooting

Hair Doesn't Generate

  • Check guides exist (Guides tab)
  • Check mesh is selected
  • Check density > 0
  • Try regenerating guides first

Hair Looks Spiky/Angular

  • Increase control points (8–10)
  • Increase display Steps (3–4)
  • Check strand smoothing

Clumping Doesn't Work

  • Check modifier is enabled
  • Check tightness > 0
  • Check guides exist (clumping uses guides as centers)

Hair Penetrates Scalp

  • Add Surface Offset modifier after styling modifiers
  • Increase offset value
  • Check surface binding is computed

Masks Don't Work

  • Check mask checkbox is enabled
  • Check mesh has UVs
  • Try reloading the texture
  • Check Invert toggle

Viewport is Slow

  • Reduce Display % to 25–50%
  • Reduce strand count
  • Enable GPU Acceleration
  • Reduce display Steps

---

FAQ

How many strands should I use? 10k–20k for styling, 50k–80k for preview, 100k–300k for final render.

What's the best modifier order? Guide Flow → Clumping → Coil → Frizz → Cut → Surface Offset → Simulate.

Can I animate hair? Yes. Use the Surface tab for mesh binding, Simulate modifier for physics.

How do I make hair follow my character? Compute animation binding in the Surface tab at rest pose.

Can I use FollicleFX for games? Yes. Use the Cards tab to generate game-ready polygon cards with baked textures.

How do I create flyaways? Use the Frizz modifier with high Magnitude and low Correlation. Use a Clumping modifier with Stray Rate to make some strands break away from clumps.

Can I paint hair density? Yes. Use the density map in the Primitive tab.

Can I transfer hair between characters? Yes. Use Transfer Groom in the Surface tab.

---

Quick Reference

Typical Parameter Ranges

ParameterRange
Clumping Tightness0.4–0.8
Frizz Magnitude0.05–0.5
Coil Count3–8
Coil Radius0.02–0.06
Cut Length0.8–1.0

Essential Expressions

rand3(0.8, 1.2, index)          # Random variation per strand
lerp(0.5, 1.0, v)               # UV gradient (bottom to top)
v > 0.5 ? 1.0 : 0.5             # Conditional (top/bottom split)
rand(index) * 0.3               # Per-strand frizz variation
rand3(0.6, 0.9, clump_id)       # Per-clump variation