Soft Body

Summary

The Soft Body operator provides a constraint-based soft body dynamics simulation system. It uses Extended Position Based Dynamics (XPBD) to simulate deformable objects with realistic behavior including stretching, bending, and collision response. The solver supports pressure constraints for volume preservation, various collision types, and external forces.

This operator is ideal for simulating cloth, soft materials, and deformable objects in real-time or offline scenarios. It offers extensive control over simulation parameters, collision detection, forces, and visualization options for constraint debugging and analysis.

Parameters

Page: Solver

Target Geometry Update POP Targetupdatepop POP operator providing target geometry updates for the simulation.
Time Scale Timescale Global time scale multiplier for the simulation speed.
Time Step Timestep Read-only display of effective timestep, equal to 1/FPS of TouchDesigner.
Max Constraints per Point Maxconstperpoint Maximum number of constraints that can be attached to a single point.
Enable Pressure Constraints Pressureconst Enable volume-preserving pressure constraints for closed meshes.
Substeps Substeps Number of simulation substeps per frame for improved stability.
Constraint Iterations Iterations Number of constraint solver iterations. Higher values improve accuracy but increase computation time.
Initialize Initializepulse Pulse to initialize or reset the simulation.
Start Startpulse Pulse to start the simulation from its initial state.
Play Play Toggle to play or pause the simulation.
Step Steppulse Pulse to advance the simulation by one frame when paused.

Page: Collisions

Enable Collisions Enablecollisions Master toggle for all collision detection and response.
Ground Collision Enablegroundcollision Enable collision with an infinite ground plane.
Ground Position Groundposition Position of the ground plane in world space.
Ground Position Groundpositionx
Ground Position Groundpositiony
Ground Position Groundpositionz
Display Ground Displayground Visualize the ground plane in the viewport.
Bounding Box Collision Enablebboxcollision Enable collision with a bounding box volume.
Bounding Box Bbox A reference to a POP defining the bounding box collision bounds.
Display Bounding Box Displaybbox Visualize the bounding box in the viewport.
Geometry Collision Enablegeocollision Enable collision with external geometry from the collision geometry input (Input 2).
Collision Thickness Collisionthickness Thickness value for collision detection with external geometry.
Display Collider Displaycollider Visualize the collision geometry in the viewport.
Self Collision Enableselfcollision Enable collision detection between different parts of the same soft body as well as between different geometries.
Self Collision Passes Selfcollisionpasses Number of self-collision detection passes per substep.
Enable Normal-Based Correction Normalcorrection Use surface normals to improve collision response accuracy.
Neighbors Type Nebrtype Method for determining neighbor points for self-collision.
By Distance distance
Connected connected
Max Neighbors Maxneighbors Maximum number of neighbors to consider for self-collision per point.
Max Neighbors Distance Maxdistance Maximum distance for neighbor search when using distance-based neighbors.
Distribution Distribution Distribution method for neighbor selection.
Default default
Unique unique
Closest closest

Page: Forces

Gravity Gravity Gravity force vector applied to all points.
Gravity Gravityx
Gravity Gravityy
Gravity Gravityz
Gravity Multiplier Gravitymultiplier Multiplier for the gravity force.
Velocity Damping Velocitydamping Global velocity damping to reduce motion over time. Range 0-1.
Static Threshold Staticthreshold Velocity threshold below which static friction is applied.
Dynamic Scale Dynamicscale Scale factor for dynamic friction forces.
Enable External Enableexternal Enable friction with external collision geometry.
Enable Self Enableself Enable friction for self-collisions.
Ground Static Scale Groundstaticscale Static friction scale for ground collisions.
Ground Dynamic Scale Grounddynamicscale Dynamic friction scale for ground collisions.
Enable Grabber Enablegrabber Enable interactive grabber tool for manipulating points.
Position Grabposition Position of the grabber in world space.
Position Grabpositionx
Position Grabpositiony
Position Grabpositionz
Radius Grabradius Radius of the grabber influence sphere.
Radius Grabradiusx
Radius Grabradiusy
Radius Grabradiusz
Strength Grabstrength Strength of the grabber force applied to particles.
Grab Grab Momentary button to activate grabbing.
Display Grabber Displaygrabber Visualize the grabber sphere in the viewport.
Visualize Grabbed Points Visgrabbedpoints Highlight points currently affected by the grabber.

Page: Advanced

Integration Order Integrationorder Order of numerical integration for position updates.
First Order first
Second Order sec
Enable Max Acceleration Enablemaxacc Enable maximum acceleration limiting to prevent instability.
Max Acceleration Maxacceleration Maximum allowed acceleration magnitude.
Limit Acceleration in Velocity Update Limitaccel Apply acceleration limiting during velocity update step.
Fallback to First Order Integration on Collision Fallbackcollision Use first order integration when collisions are detected for improved stability.

Page: Post Process

Post Smooth Positions Postsmoothp Apply position smoothing after simulation step.
Post Line Smooth Postlinesmooth Apply line smoothing to line strip geometry.

Page: Visualize

Simulated Geometry Simulatedgeometry Display the simulated geometry.
Collisions Viscollisions Visualize collision detection points.
Color Collisionscolor Color for collision visualization.
Color Collisionscolorr
Color Collisionscolorg
Color Collisionscolorb
Self Collision Visselfcollision Visualize self-collision detection points.
Color Selfcollisioncolor Color for self-collision visualization.
Color Selfcollisioncolorr
Color Selfcollisioncolorg
Color Selfcollisioncolorb
Thickness Visthickness Visualize point thickness values.
Color Thicknesscolor Color for thickness visualization.
Color Thicknesscolorr
Color Thicknesscolorg
Color Thicknesscolorb
Distance Along Edges Distancealongedges Visualize distance constraints along mesh edges.
Color Distalongedgescolor Color for edge distance constraint visualization.
Color Distalongedgescolorr
Color Distalongedgescolorg
Color Distalongedgescolorb
Bend Across Triangles Bendacrosstriangles Visualize bending constraints across triangle edges.
Color Bendacrosstricolor Color for bend constraint visualization.
Color Bendacrosstricolorr
Color Bendacrosstricolorg
Color Bendacrosstricolorb
Struts Struts Visualize strut constraints.
Color Strutscolor Color for strut constraint visualization.
Color Strutscolorr
Color Strutscolorg
Color Strutscolorb
Attach to Geometry Attachtogeometry Visualize attachment constraints to collision geometry.
Color Attachtogeocolor Color for attachment constraint visualization.
Color Attachtogeocolorr
Color Attachtogeo colorg
Color Attachtogeocolor b
Pinned Pinned Visualize pinned points.
Color Pinnedcolor Color for pinned point visualization.
Color Pinnedcolorr
Color Pinnedcolorg
Color Pinnedcolorb
Property Property Constraint property to visualize with color mapping.
None none
Stretch Stress stretchstress
Bend Stress bendstress
Stretch Distance stretchdistance
Stretch Ratio stretchratio
Bend Angle bendangle
Stretch Plastic Flow stretchplasticflow
Bend Plastic Flow bendplasticflow
Volume Stress volumestress
Volume Distance volumedistance
Volume Ratio volumeratio
Display Property Displayproperty Show the selected property visualization on constraints.
Max Value Maxvalue Maximum value for property color mapping range.

Inputs

Input 0 POP Geometry
Input 1 POP Constraints
Input 2 POP Collision Geometry

Outputs

Output 0 POP Geometry
Output 1 POP Constraints
Output 2 POP Collision Geometry
Output 3 POP Target Geometry Update