Simulate Modifier (Experimental)
The Simulate modifier adds physics-based hair dynamics using XPBD (Extended Position-Based Dynamics) with Coulomb friction. It makes hair respond to gravity, wind, collisions, and movement with realistic motion.
Note: This modifier is experimental and under active development. Features and performance may change in future releases.
What It Does
The Simulate modifier brings hair to life with:
- Physics simulation - gravity, inertia, momentum
- Collision detection - with body, props, and self-collision
- Wind forces - steady wind, turbulence, and gusts
- Friction - static and dynamic friction (Coulomb model)
- Shape preservation - maintains styled hair shape
- Timeline sync - scrub through animation with frame caching
Think of it as turning your static hair into dynamic, animated hair that moves naturally with character motion.
Solver Modes
GPU Acceleration (CUDA)
- 8-20x faster than CPU
- Requires NVIDIA GPU with CUDA support
- Automatically falls back to CPU if unavailable
- Recommended for real-time preview
Guides Only Mode
- Simulates only guide curves, interpolates strands
- Much faster for dense hair (10,000+ strands)
- Recommended for most workflows
- Full strand simulation available for maximum accuracy
Playback Controls
Play/Pause
- Start or stop simulation playback
- Simulation runs at scene framerate
Reset
- Return hair to initial rest pose
- Clears all simulation state
Step
- Advance one frame manually
- Useful for debugging
Timeline Sync
- Sync simulation with Blender's timeline
- Enables scrubbing through animation
- Automatically caches frames for instant playback
Bake Simulation
- Pre-simulate and cache all frames to disk
- Enables instant playback of complex simulations
- Press ESC to cancel during baking
- Clear cache to free disk space
Time Stepping
Substeps
- Number of simulation steps per frame
- Range: 1-16, default 8
- Higher = more stable, slower
- Increase if hair explodes or jitters
Iterations
- Constraint solver iterations per substep
- Range: 1-50, default 16
- Higher = stiffer, more accurate
- Increase for stiff hair or tight constraints
Physical Properties
Gravity
- Gravity strength in m/s²
- Range: 0-50, default 9.81 (Earth gravity)
- Set to 0 for zero-gravity effects
Damping
- Velocity damping (energy loss)
- Range: 0.0-1.0, default 0.3
- Higher = less bouncing, more stable
- Increase if hair oscillates too much
Air Drag
- Air resistance coefficient
- Range: 0.0-1.0, default 0.01
- Higher = more air resistance
- Simulates drag through air
Stiffness
Stretch Stiffness
- Resistance to stretching
- Range: 0.0-1.0, default 1.0
- 1.0 = rigid (no stretching)
- Lower for elastic, stretchy hair
Bend Stiffness
- Resistance to bending
- Range: 0.0-1.0, default 0.5
- 0.0 = floppy, 1.0 = stiff
- Adjust based on hair type (fine vs coarse)
Film Quality (DER)
Discrete Elastic Rods - Advanced simulation mode for film-quality results.
Enable DER
- Activates film-quality simulation
- Includes twist propagation and anisotropic bending
- Slower but more physically accurate
- Recommended for final renders
Bend Anisotropy
- Directional bending stiffness
- Range: 0.0-1.0, default 0.0
- 0.0 = bends equally in all directions
- 1.0 = bends more easily in one direction
- Simulates flat hair ribbons
Twist Stiffness
- Resistance to twisting along strand axis
- Range: 0.0-1.0, default 0.3
- Important for curly and coiled hair
- Prevents unrealistic untwisting
Wind
Enable Wind
- Activates wind forces
Wind Strength
- Force magnitude
- Range: 0-50, default 1.0
- Higher = stronger wind
Turbulence
- Wind chaos and variation
- Range: 0.0-1.0, default 0.3
- 0.0 = steady wind, 1.0 = chaotic gusts
Gusts
- Random gust strength
- Range: 0-5, default 0.0
- Adds sudden wind bursts
Wind Direction Object
- Use an Empty or object to control wind direction
- Wind flows along object's local +Y axis
- Rotate the object to change wind direction
- Tip: Create an Empty, rotate it to aim wind
Collision
Body Collision
- Collide with scalp/body mesh
- Automatically detects parent mesh
- Additional meshes can be added
Collision Mode
- Mesh (Exact) - BVH tree, accurate for static meshes
- Volume (Fast) - SDF, fast for animated meshes (recommended)
- Primitives (Film) - Analytical shapes, fastest for film production
Collision Radius
- Hair thickness for collision detection
- Range: 0.0001-0.1, default 0.01
- Increase if hair penetrates surfaces
Collision Margin
- Extra safety margin for early detection
- Range: 0.0-0.05, default 0.005
- Prevents tunneling through fast-moving objects
Repulsion Stiffness
- How hard collision pushes hair back
- Range: 100-5000, default 1000
- Increase if hair penetrates despite collision
Friction
- Surface friction coefficient
- Range: 0.0-1.0, default 0.3
- 0.0 = slippery, 1.0 = sticky
Self Collision
- Hair-hair collision (expensive!)
- Prevents strands from passing through each other
- Use sparingly - very slow
- Recommended: Use stiction instead
Self Collision Radius
- Radius for hair-hair detection
- Range: 0.0001-0.01, default 0.003
- Smaller = more accurate, slower
Coulomb Friction (Film Quality)
Advanced friction model for realistic hair-hair and hair-body contact.
Static Friction (μs)
- Friction before sliding starts
- Range: 0.0-1.0, default 0.5
- Higher = more resistance to initial movement
Dynamic Friction (μd)
- Friction during sliding
- Range: 0.0-1.0, default 0.3
- Usually lower than static friction
Hair-Hair Static Friction
- Static friction between hair strands
- Range: 0.0-1.0, default 0.4
- Creates natural clumping during motion
Hair-Hair Dynamic Friction
- Dynamic friction between strands
- Range: 0.0-1.0, default 0.2
- Controls how easily hair slides past itself
Stiction (Clumping)
- Hair sticks together naturally
- Range: 0.0-1.0, default 0.1
- Creates realistic clumping without full self-collision
- Much faster than self-collision
Stiction Distance
- Distance for stiction effect
- Range: 0.0001-0.01, default 0.003
- Strands within this distance stick together
Shape Matching (Style Preservation)
Preserves styled hair shape during simulation.
Enable Shape Matching
- Hair returns to its styled rest pose
- Helps preserve curls, waves, and clumping
- Essential for maintaining hairstyle during motion
Shape Compliance
- How strongly hair returns to rest pose
- Range: 0.0-1.0, default 0.3
- 0.0 = rigid preservation (strong)
- 1.0 = soft preservation (weak)
Workflow:
- Style your hair (apply Clumping, Coil, etc.)
- Click "Capture Current as Rest Pose"
- Enable Shape Matching
- Run simulation - hair maintains styled shape
Presets
The Simulate modifier includes presets organized by category:
Production - Film-quality settings Performance - Fast preview settings Hair Types - Fine, medium, coarse hair Style Preservation - Maintain curls, waves, clumps Environments - Wind, underwater, zero-gravity Special Effects - Slow motion, exaggerated motion
Select a preset and click "Apply" to load settings.
Performance Tips
For Real-Time Preview:
- Enable GPU Acceleration
- Use Guides Only mode
- Reduce Substeps to 4-6
- Reduce Iterations to 8-12
- Disable Self Collision
- Use Stiction instead of Self Collision
For Final Render:
- Enable DER (Film Quality)
- Increase Substeps to 12-16
- Increase Iterations to 20-30
- Bake simulation to disk
- Use Volume collision mode for animated meshes
If Simulation is Unstable:
- Increase Substeps
- Increase Damping
- Reduce Gravity
- Check collision radius
- Increase Repulsion Stiffness
Common Issues
Hair Explodes
- Increase Substeps (try 12-16)
- Increase Damping (try 0.5)
- Check for intersecting geometry
- Reduce Stretch Stiffness slightly
Hair Penetrates Body
- Increase Collision Radius
- Increase Repulsion Stiffness
- Add Collision Margin
- Switch to Volume collision mode
Simulation Too Slow
- Enable GPU Acceleration
- Use Guides Only mode
- Reduce Substeps
- Disable Self Collision
- Use Stiction instead
Hair Loses Style
- Enable Shape Matching
- Capture current pose as rest pose
- Reduce Shape Compliance
- Increase Bend Stiffness
Technical Notes
- XPBD solver is stiffness-independent (stable at any iteration count)
- GPU mode uses CUDA for 8-20x speedup
- Frame caching enables instant timeline scrubbing
- Coulomb friction model matches real-world physics
- Shape matching uses position-based constraints
- Simulation state is saved with Blender file
---
Next: Surface Tab - Bind hair to animated meshes Previous: Cut Modifier