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

| Mistake | Fix | |---------|-----| | Too many strands while styling | Start with 10k–20k, increase for final | | Wrong modifier order | Clumping before Frizz, always | | No guide sculpting | Always sculpt — generated guides are just a start | | Uniform parameters | Add variation with expressions or masks | | Too much frizz | Start low (0.5–1.0), increase gradually | | Ignoring UVs | Check UV layout before painting masks | | Forgetting to save | Save .blend frequently, save presets | | Scalp penetration | Add 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

| Parameter | Range | |-----------|-------| | Clumping Tightness | 0.4–0.8 | | Frizz Magnitude | 0.05–0.5 | | Coil Count | 3–8 | | Coil Radius | 0.02–0.06 | | Cut Length | 0.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