POPX

Soft Body

v1.3.0
Simulations

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

Target Geometry Update POPTargetupdatepop
POP operator providing target geometry updates for the simulation.
Time ScaleTimescale
Global time scale multiplier for the simulation speed.
Time StepTimestep
Read-only display of effective timestep, equal to 1/FPS of TouchDesigner.
SubstepsSubsteps
Number of simulation substeps per frame for improved stability.
IterationsIterations
Number of constraint solver iterations.
InitializeInitializepulse
Pulse to initialize or reset the simulation.
StartStartpulse
Pulse to start the simulation from its initial state.
PlayPlay
Toggle to play or pause the simulation.
StepSteppulse
Pulse to advance the simulation by one frame when paused.
Enable Ground CollisionEnablegroundcollision
Enable collision with an infinite ground plane.
Ground PositionGroundposition
Position of the ground plane in world space.
Ground PositionGroundpositionxGround PositionGroundpositionyGround PositionGroundpositionz
Ground Collision MarginGroundmargin
Collision margin distance from the ground plane surface.
Display GroundDisplayground
Visualize the ground plane in the viewport.
Enable Bounding Box CollisionEnablebboxcollision
Enable collision with a bounding box volume.
Bounding BoxBbox
A reference to a POP defining the bounding box collision bounds.
Bounding Box Collision MarginBboxmargin
Collision margin distance from the bounding box surface.
Display Bounding BoxDisplaybbox
Visualize the bounding box in the viewport.
Collision TypeCollisiontype
Selects the collision geometry type for constraining instance movement.
NonenonePOP (Windows Only)popBoxboxPlaneplaneSpheresphereTorustorus3D SDF3dsdfT3Dt3d2D SDF2dsdfT2Dt2d
Collision DampingCollisiondamping
Amount of velocity dampening applied when instances collide with the collision geometry.
SolidSolid
Treats the collision geometry as a solid volume, preventing instances from passing through.
ProjectProject
Projects instances onto the surface of the collision geometry.
Collision POPCollisionpop
Reference to a POP containing the collision geometry when using POP collision type.
Collision OffsetCollisionoffset
Offset distance from the collision surface to prevent z-fighting artifacts.
SizeSize
Size of the box collision geometry.
SizeSizexSizeSizeySizeSizez
RadiusRadius
Radius of the collision geometry per axis.
RadiusRadiusxRadiusRadiusyRadiusRadiusz
Corner RadiusCornerradius
Radius of rounded corners on the box collision geometry.
Collison TOPCollisontop
Reference to a TOP texture used as the collision field for SDF and texture collision types.
Use Custom BoundsUsecustombounds
Enables custom bounding box for the collision texture instead of using the texture's native bounds.
Lower BoundsLowerbounds
Lower bounds of the collision volume in world space.
Lower BoundsLowerboundsxLower BoundsLowerboundsyLower BoundsLowerboundsz
Upper BoundsUpperbounds
Upper bounds of the collision volume in world space.
Upper BoundsUpperboundsxUpper BoundsUpperboundsyUpper BoundsUpperboundsz
Transform OrderXord
Sets the order of scale, rotate, and translate operations for the collision geometry transform.
Scale Rotate TranslatesrtScale Translate RotatestrRotate Scale TranslaterstRotate Translate ScalertsTranslate Scale RotatetsrTranslate Rotate Scaletrs
Rotate OrderRord
Sets the order of rotation operations for the collision geometry transform.
Rx Ry RzxyzRx Rz RyxzyRy Rx RzyxzRy Rz RxyzxRz Rx RyzxyRz Ry Rxzyx
TranslateT
Translation of the collision geometry in world space.
TranslateTxTranslateTyTranslateTz
RotateR
Rotation of the collision geometry in degrees.
RotateRxRotateRyRotateRz
ScaleS
Scale of the collision geometry per axis.
ScaleSxScaleSyScaleSz
PivotP
Pivot point for the collision geometry transform.
PivotPxPivotPyPivotPz
Uniform ScaleScale
Uniform scale factor applied to the collision geometry.
Display GeometryDisplaygeo
Shows the collision geometry in the viewport for visualization.
Display ColorDisplaycolor
Display color for the collision geometry visualization.
Display ColorDisplaycolorrDisplay ColorDisplaycolorgDisplay ColorDisplaycolorb
Enable Self CollisionEnableselfcollision
Enable collision detection between different parts of the same soft body as well as between different geometries.
Max Neighbors DistanceMaxdistance
Maximum distance for neighbor search when using distance-based neighbors.
DistributionDistribution
Distribution method for neighbor selection.
DefaultdefaultUniqueuniqueClosestclosest
Max NeighborsMaxneighbors
Maximum number of neighbors to consider for self-collision per point.
GravityGravity
Gravity force vector applied to all points.
GravityGravityxGravityGravityyGravityGravityz
Gravity MultiplierGravitymultiplier
Multiplier for the gravity force.
Velocity DampingVelocitydamping
Global velocity damping to reduce motion over time. Range 0-1.
Static ThresholdStaticthreshold
Velocity threshold below which static friction is applied.
Dynamic ScaleDynamicscale
Scale factor for dynamic friction forces.
Enable ExternalEnableexternal
Enable friction with external collision geometry.
Enable SelfEnableself
Enable friction for self-collisions.
Ground Static ScaleGroundstaticscale
Static friction scale for ground collisions.
Ground Dynamic ScaleGrounddynamicscale
Dynamic friction scale for ground collisions.
Enable GrabberEnablegrabber
Enable interactive grabber tool for manipulating points.
GrabGrab
Momentary button to activate grabbing.
PositionGrabposition
Position of the grabber in world space.
PositionGrabpositionxPositionGrabpositionyPositionGrabpositionz
RadiusGrabradius
Radius of the grabber influence sphere.
RadiusGrabradiusxRadiusGrabradiusyRadiusGrabradiusz
StrengthGrabstrength
Strength of the grabber force applied to particles.
Transition RangeTransitionrange
Range of the transition falloff from the grabber edge.
Transition AlignTransitionalign
Alignment offset for the transition falloff.
Transition TypeTransitiontype
Interpolation curve type for the transition falloff.
LinearlinearSmooth StepsmoothstepEase In Ease Outeaseinout
Display GrabberDisplaygrabber
Visualize the grabber sphere in the viewport.
Visualize Grabbed PointsVisgrabbedpoints
Highlight points currently affected by the grabber.
Integration OrderIntegrationorder
Order of numerical integration for position updates.
First OrderfirstSecond Ordersec
Enable Max AccelerationEnablemaxacc
Enable maximum acceleration limiting to prevent instability.
Max AccelerationMaxacceleration
Maximum allowed acceleration magnitude.
Limit Acceleration in Velocity UpdateLimitaccel
Apply acceleration limiting during velocity update step.
Fallback to First Order Integration on CollisionFallbackcollision
Use first order integration when collisions are detected for improved stability.

Inputs

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

Outputs

Output 0POP
Geometry
Output 1POP
Constraints
Output 2POP
Collision Geometry