- Geometry
- Solvers
Soft Body
Purpose
Section titled “Purpose”Soft Body simulates deforming volumes with a finite element solve. Co-rotational and Neo-Hookean material models control the elastic response. Multiple bodies can share the solver, with optional world, self and inter-body collisions.
Place Soft Body in the Geometry view, under Solvers. For a first test without authored input, reduce Demo Bodies to 1, keep Demo Resolution at 3 and choose World Only in Collision Mode. Collision Mode starts off, so the enabled floor alone does not make the body collide.
For your own object, connect vertices carrying tetrahedral data to the geometry input. A surface mesh alone does not define the volume. The Tet attribute stores groups of four vertex indices; bodyid separates bodies and pin values above 0.5 fix vertices. Prepare this data upstream.
Inputs and outputs
Section titled “Inputs and outputs”Connections accepts sdf obstacles, xforms, velocity and contacts. The solver publishes vertex P, v, id and Cd, plus a contact set when enabled.
Use Attribute Material reads youngs, poissons and density attributes, taking each body’s values from its representative vertex. Without those attributes, the parameter values apply. Live Wire Surface can publish boundary-triangle topology with the deformed vertices; it is off by default and adds work.
Controls
Section titled “Controls”- Dt Override at 0 follows host timing. Start with two Substeps and six Iterations. Simulate pauses advancement; Reset rebuilds the starting state.
- Young’s Modulus controls stiffness. Begin at 250000 and lower it for a softer response. Poisson Ratio starts at 0.35 and controls the material’s lateral response to compression.
- Linear Damping, Elasticity Damping and Velocity Scale affect settling. Keep the starting values while checking the volume and pins.
- Collision Mode selects Off, World Only, or World + Self + Inter. Contact Radius, Collision Iterations, Friction and Contact Damping tune the active collision mode.
- Velocity Field Coupling starts at 0. Publish Contact Set and Couple Weight control contact exchange once resources are connected.
- Max Vertices, Max Tets and Max Bodies are capacity limits. With Auto-Rebuild off, structural edits wait for Rebuild; check Status before expecting them to appear.
Check for DEMO FALLBACK in Status when authored input does not produce your intended body. Valid tetrahedra are required; the solver does not tetrahedralize a polygon shell.
Self and inter-body collisions, large tetrahedral counts and Live Wire Surface increase the work per step. Establish one body with world collisions before adding a pile.
Inputs
-
geometrypoints -
sdfsdf collider -
xformstransforms -
velocityvelocity field -
contactscontacts
Outputs
-
Ppoints -
vpoints -
idpoints -
Cdpoints -
contactcontacts
Parameters
Section titled “Parameters”Soft Body
op('soft').par.Autorebuild - Default:
On- Options:
- Off, On
op('soft').par.Rebuildnow - Default:
None
op('soft').par.Simulate - Default:
On- Options:
- Off, On
op('soft').par.Resetsolver - Default:
None
Solver
op('soft').par.Hdrsolve Read only.
- Default:
"" (Empty String)
op('soft').par.Dt - Default:
0- Range:
- 0 to 0.5
op('soft').par.Substeps - Default:
2- Range:
- 1 to 16
op('soft').par.Iterations - Default:
6- Range:
- 1 to 64
op('soft').par.Gravityx - Default:
0
op('soft').par.Gravityy - Default:
-9.81
op('soft').par.Gravityz - Default:
0
op('soft').par.Lineardamping - Default:
0.02- Range:
- 0 to 1
op('soft').par.Velocityscale - Default:
0.85- Range:
- 0 to 1
op('soft').par.Maxlinearvelocity - Default:
200- Range:
- 0.1 to 1000
op('soft').par.Maxvertices - Default:
200000- Range:
- 4096 to 4000000
op('soft').par.Maxtets - Default:
800000- Range:
- 8192 to 8000000
op('soft').par.Maxbodies - Default:
2048- Range:
- 1 to 100000
Material
op('soft').par.Hdrmat Read only.
- Default:
"" (Empty String)
op('soft').par.Useattribmaterial - Default:
On- Options:
- Off, On
op('soft').par.Youngs - Default:
250000- Range:
- 1 to 100000000
op('soft').par.Poissons - Default:
0.35- Range:
- 0.01 to 0.49
op('soft').par.Density - Default:
1- Range:
- 0.000001 to 10000
op('soft').par.Materialdamping - Default:
0- Range:
- 0 to 1000
Collision
op('soft').par.Hdrcoll Read only.
- Default:
"" (Empty String)
op('soft').par.Collisioniters - Default:
3- Range:
- 1 to 16
op('soft').par.Contactradius - Default:
0.05- Range:
- 0 to 1
op('soft').par.Contactstiffness - Default:
1- Range:
- 0 to 1
op('soft').par.Contactdamping - Default:
0.6- Range:
- 0 to 1
op('soft').par.Friction - Default:
0.3- Range:
- 0 to 1
op('soft').par.Selfcollision - Default:
On- Options:
- Off, On
op('soft').par.Floorenabled - Default:
On- Options:
- Off, On
op('soft').par.Floory - Default:
0- Range:
- -100 to 100
Coupling
op('soft').par.Hdrcouple Read only.
- Default:
"" (Empty String)
op('soft').par.Publishcontacts - Default:
On- Options:
- Off, On
op('soft').par.Coupleweight - Default:
1- Range:
- 0 to 2
op('soft').par.Maxforeign - Default:
262144- Range:
- 1024 to 4000000
op('soft').par.Windcoupling - Default:
0- Range:
- 0 to 1000
Authoring
op('soft').par.Hdrauthor Read only.
- Default:
"" (Empty String)
op('soft').par.Demobodies - Default:
64- Range:
- 1 to 100000
op('soft').par.Demores - Default:
3- Range:
- 1 to 6
op('soft').par.Demospacing - Default:
0.75- Range:
- 0.05 to 10
Color
op('soft').par.Hdrcolor Read only.
- Default:
"" (Empty String)
op('soft').par.Colorr - Default:
0.25- Range:
- 0 to 1
op('soft').par.Colorg - Default:
0.48- Range:
- 0 to 1
op('soft').par.Colorb - Default:
1- Range:
- 0 to 1
op('soft').par.Colorspeed - Default:
0.15- Range:
- 0 to 4
op('soft').par.Colorspeedmax - Default:
5- Range:
- 0.01 to 100
Outputs
op('soft').par.Wiresurface - Default:
Off- Options:
- Off, On