- Geometry
- Solvers
Strand
Purpose
Section titled “Purpose”Strand simulates hair, ropes and fibers with stretch and bend constraints. Roots can follow transforms, a velocity field can move the strands, and contact settings control collisions. Groom rules shape the displayed result; Rest rules change the shape the simulation tries to hold.
Place Strand in the Geometry view, under Solvers. Connect a small set of root points to geometry. Input normals provide the growth direction; Grow Dir supplies it when N is absent. Start with 16 Points Per Strand and Strand Length at 1.2.
On Resources, add a velocity Connection and choose Force Field’s velocity resource. Drag Coupling starts at 3. Use modest wind while checking the roots and floor. Add an sdf resource for an obstacle, and xforms when roots need to follow a transform set.
Inputs and outputs
Section titled “Inputs and outputs”Outputs include P, v, Cd and id, a line output with strand topology, and an optional contact set. Use the line output downstream when you need the strand connections rather than isolated points.
Connections accepts sdf, velocity, xforms and contacts. Publish Contact Set starts off. Enable it if another solver needs Strand’s contacts, then connect that resource on the receiver.
Controls
Section titled “Controls”- Simulate pauses advancement; Reset restores the starting strands. Points Per Strand and pool limits affect the build. Auto-Rebuild applies those edits, or Rebuild commits them when automatic rebuilding is off.
- Length and Length Jitter set the starting variation. Root Offset moves the live anchors.
- Substeps starts at 4 and Constraint Iterations at 12. Bend Stiffness resists folding; Max Stretch limits strain. Damping and Max Velocity control motion.
- Groom Rule Stack applies clump, curl, frizz, lean and wave offsets after the solve. These display changes do not feed back into collision physics.
- Rest Shape Stack bakes the same shaping vocabulary into the rest shape on rebuild. Raise Shape Stiffness from 0 when you want the strands to hold that shape. Twist Rate controls twist along the strand.
- Self Collision starts on and changes require a rebuild. Contact Radius, Friction and Damping tune strand contacts. Contact Stride reduces the density of published contacts.
Max Strands and Max Points/Strand reserve the pools; Points Per Strand selects the active length of each chain. Increase counts after checking a sparse groom.
A strong display Groom offset can move the visible strand away from its simulated collision position. Use Rest rules for a shape that should participate in the solve.
Inputs
-
geometrypoints -
sdfsdf collider -
velocityvelocity field -
xformstransforms -
contactscontacts
Outputs
-
Ppoints -
vpoints -
Cdpoints -
idpoints -
contactcontacts -
linelines
Parameters
Section titled “Parameters”Strand
op('strand').par.Autorebuild - Default:
On- Options:
- Off, On
op('strand').par.Rebuildnow - Default:
None
op('strand').par.Simulate - Default:
On- Options:
- Off, On
op('strand').par.Resetsolver - Default:
None
op('strand').par.Hdrgroom Read only.
- Default:
"" (Empty String)
op('strand').par.Maxstrands - Default:
16384- Range:
- 64 to 131072
op('strand').par.Maxpoints - Default:
32- Range:
- 2 to 256
op('strand').par.Pointsperstrand - Default:
16- Range:
- 2 to 256
op('strand').par.Length - Default:
1.2- Range:
- 0.01 to 8
op('strand').par.Lengthjitter - Default:
0.15- Range:
- 0 to 1
Roots
op('strand').par.Hdrroots Read only.
- Default:
"" (Empty String)
op('strand').par.Growdirx - Default:
0
op('strand').par.Growdiry - Default:
-1
op('strand').par.Growdirz - Default:
0
op('strand').par.Rootoffsetx - Default:
0
op('strand').par.Rootoffsety - Default:
0
op('strand').par.Rootoffsetz - Default:
0
op('strand').par.Hdrattrs Read only.
- Default:
"" (Empty String)
Solver
op('strand').par.Dt - Default:
0.0166667- Range:
- 0.0001 to 0.5
op('strand').par.Substeps - Default:
4- Range:
- 1 to 16
op('strand').par.Iterations - Default:
12- Range:
- 1 to 64
Forces
op('strand').par.Hdrforces Read only.
- Default:
"" (Empty String)
op('strand').par.Gravityx - Default:
0
op('strand').par.Gravityy - Default:
-9.81
op('strand').par.Gravityz - Default:
0
op('strand').par.Damping - Default:
0.985- Range:
- 0 to 1
op('strand').par.Maxvelocity - Default:
20- Range:
- 0.1 to 100
op('strand').par.Dragcoupling - Default:
3- Range:
- 0 to 1000
Collision
op('strand').par.Hdrcoll Read only.
- Default:
"" (Empty String)
op('strand').par.Maxstretch - Default:
0.1- Range:
- 0.01 to 1
op('strand').par.Bendstiffness - Default:
0.35- Range:
- 0 to 1
op('strand').par.Collisionradius - Default:
0.02- Range:
- 0.001 to 0.5
op('strand').par.Boundaryslip - Default:
0- Range:
- 0 to 1
op('strand').par.Floorenabled - Default:
On- Options:
- Off, On
op('strand').par.Floory - Default:
-1.5- Range:
- -10 to 10
op('strand').par.Hdrself Read only.
- Default:
"" (Empty String)
op('strand').par.Selfcollision - Default:
On- Options:
- Off, On
op('strand').par.Contactradius - Default:
0.02- Range:
- 0.001 to 0.5
op('strand').par.Contactstiffness - Default:
0.5- Range:
- 0 to 1
op('strand').par.Contactfriction - Default:
0.1- Range:
- 0 to 1
op('strand').par.Contactdamping - Default:
1- Range:
- 0 to 1
Coupling
op('strand').par.Hdrcouple Read only.
- Default:
"" (Empty String)
op('strand').par.Publishcontacts - Default:
Off- Options:
- Off, On
op('strand').par.Coupleweight - Default:
1- Range:
- 0 to 2
op('strand').par.Maxforeign - Default:
65536- Range:
- 1024 to 4000000
op('strand').par.Contactstride - Default:
4- Range:
- 1 to 64
Shape
op('strand').par.Hdrshape Read only.
- Default:
"" (Empty String)
op('strand').par.Shapestiffness - Default:
0- Range:
- 0 to 1
op('strand').par.Twistrate - Default:
0- Range:
- -25 to 25
Color
op('strand').par.Hdrcolor Read only.
- Default:
"" (Empty String)
op('strand').par.Basehue - Default:
0.08- Range:
- 0 to 1
op('strand').par.Huespread - Default:
0.12- Range:
- 0 to 1
Rules
op('strand').par.Hdrrules Read only.
- Default:
"" (Empty String)
op('strand').par.Groomrules - Default:
"" (Empty String)
op('strand').par.Restrules - Default:
"" (Empty String)