POPX

Particle

v1.3.0
Simulations

Summary

Particle is a GPU-accelerated particle-based solver that simulates fluids and granular materials by treating them as collections of interacting particles. Each particle carries physical properties like density, pressure, and velocity, and interacts with neighbors within a smoothing radius. The solver supports three material modes: Fluids-SPH for liquid simulations using Smoothed Particle Hydrodynamics, Fluids-PBF for Position Based Fluids, and Grains for granular materials like sand with repulsion and attraction forces.

The simulation computes particle interactions through neighbor searches within the smoothing radius, calculating density-based pressure forces to maintain target density and optional viscosity forces for fluid thickness. You control the physical behavior through parameters like target density (incompressibility), viscosity (fluid thickness), cohesion (particle stickiness), surface tension (droplet formation), and adhesion (sticking to surfaces). The solver uses substeps and iterations to improve stability and accuracy, with adjustable time scaling for slow-motion or accelerated effects.

Particle supports multiple collision types including ground planes, bounding boxes, arbitrary collision geometry, and volumetric container geometry for creating vessels. This makes Particle suitable for water splashes, pouring liquids, sand and debris, viscous fluids like honey, and interactive particle-based effects.

Parameters

Solver ModeSolvermode
Switches between Simple and Advect modes.
SimplesimpleAdvectadvect
Target Particles Update POPParticlesupdatepop
Reference to a POP node downstream in the network. This reference will cause a feedback loop and re-injects the particles next frame.
Material ModeMaterialmode
Simulation mode: Fluids for liquids with viscosity, Grains for granular materials.
Fluids-SPHsphFluids-PBFpbfGrainsgrains
SubstepsSubsteps
Number of solver substeps per frame.
IterationsIterations
Solver iterations per substep for constraint satisfaction.
Time ScaleTimescale
Global time multiplier for simulation speed.
Time StepTimestep
Read-only display of effective timestep, equal to 1/FPS of TouchDesigner.
Smoothing RadiusSmoothingradius
Interaction distance for neighbor particle forces.
DistributionDistribution
Neighbor distribution method for particle interactions.
DefaultdefaultClosestclosest
Num Hash BucketsNumhashbuckets
Number of hash buckets for spatial neighbor lookups.
Max NeighborsMaxneighbors
Maximum neighbor count per particle for force calculations.
InitializeInitializepulse
Pulse to reset simulation and spawn initial particles.
StartStartpulse
Pulse to begin simulation from initialized state.
PlayPlay
Toggle continuous simulation playback.
StepSteppulse
Pulse to advance simulation by one frame while paused.
Target DensityTargetdensity
Rest density the solver tries to maintain. Enabled in Fluids-SPH and Fluids-PBF modes.
Pressure MultiplierPressuremulti
Scales pressure force magnitude. Enabled in Fluids-SPH mode.
Near Pressure MultiplierNearpressuremult
Scales near-field pressure forces for close-range particle repulsion. Enabled in Fluids-SPH mode.
ViscosityViscosity
Fluid thickness and resistance to flow. Enabled in Fluids-SPH and Fluids-PBF modes.
CohesionCohesion
Particle attraction force creating sticky fluid behavior. Enabled in Fluids-PBF mode.
Surface TensionSurfacetension
Force causing droplet formation and surface smoothing. Enabled in Fluids-PBF mode.
AdhesionAdhesion
Particle sticking force to collision surfaces. Enabled in Fluids-PBF mode.
Repulsion WeightRepulsionweight
Strength of particle-particle repulsion force for granular materials. Enabled in Grains mode.
Attraction WeightAttractionweight
Strength of particle-particle attraction for clumping behavior. Enabled in Grains mode.
Enable Ground CollisionEnablegroundcollision
Enables infinite ground plane collision.
Ground PositionGroundposition
XYZ position of ground plane.
Ground PositionGroundpositionxGround PositionGroundpositionyGround PositionGroundpositionz
Display GroundDisplayground
Visualizes ground plane in output.
Enable Bounding Box CollisionEnablebboxcollision
Enables box-shaped collision boundary from POP geometry.
Bounding BoxBbox
A reference to a POP defining the bounding box collision bounds.
Lower BoundsBboxlowerbounds
Toggle to enable lower bounding planes for XYZ axes.
Lower BoundsBboxlowerbounds1Lower BoundsBboxlowerbounds2Lower BoundsBboxlowerbounds3
Upper BoundsBboxupperbounds
Toggle to enable upper bounding planes for XYZ axes.
Upper BoundsBboxupperbounds1Upper BoundsBboxupperbounds2Upper BoundsBboxupperbounds3
Bounding Box MarginBboxmargin
Extra margin distance added to the bounding box collision boundary.
Display Bounding BoxDisplaybbox
Visualizes bounding box collision geometry.
Collision TypeCollisiontype
Selects the collision geometry type for constraining particle movement.
NonenonePOP (Windows Only)popBoxboxPlaneplaneSpheresphereTorustorus3D SDF3dsdfT3Dt3d2D SDF2dsdfT2Dt2d
SolidSolid
Treats the collision geometry as a solid volume, preventing particles from passing through.
ProjectProject
Projects particles 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
GravityGravity
Gravity force vector in world space.
GravityGravityxGravityGravityyGravityGravityz
Gravity MultiplierGravitymultiplier
Scales gravity force magnitude.
Velocity DampingVelocitydamping
Global velocity decay per frame.
Collision DampingCollisiondamping
Amount of velocity dampening applied when particles collide with collision geometry.
Static ThresholdStaticthreshold
Velocity threshold below which dynamic friction becomes static friction.
Dynamic ScaleDynamicscale
Dynamic friction coefficient for moving particles.
Limit AccelerationLimitacc
Clamps particle acceleration to prevent instability.
Max AccelerationMaxacc
Maximum allowed acceleration magnitude.
Free Extra GPU MemoryFreeextragpumem
Free memory that has accumulated when output memory has grown and shrunk.

Inputs

Input 0POP
Particles In

Outputs

Output 0POP
Particles Out