←ALL OPERATORS
> simulations

Rigid

simulations/rigid·v1.5.1
IN:1  OUT:1

The Rigid operator treats every packed point of a POPX Geometry chain as a body, fits a collision shape to its instance mesh (convex hull, box, ellipsoid, sphere or capsule) and derives its mass and inertia. It moves the packed points and renders them through the POPX instancing path, so the chain can continue after it.

Bodies collide with each other, the ground, a bounding box and a mesh or field collider with per-instance mass and friction, and fall asleep once they settle so large piles stay cheap. The simulation runs as a feedback loop (Initialize, Start, Play) with a Target Feedback Loop POP for forces downstream, and the Shooter on the Forces page fires projectiles into the scene.

PAGERigid
Target Feedback Loop POPTargetpopA reference to a POP node downstream in the network whose data is retrieved one frame later. P, Orient, PartVel, PartAngVel and PartForce are read back.
Time ScaleTimescaleSpeed multiplier on the time step. 0 freezes and 2 doubles.
Time StepTimestepThe time step per frame in seconds, 1 divided by the cook rate (read-only). Time Scale multiplies it.
SubstepsSubstepsSubsteps per frame: the contacts are solved at every substep, so more substeps help more than more iterations (Small Steps).
IterationsIterationsNumber of contact passes per substep.
Post StabilizePoststabilizeRuns one extra sweep after the iterations that moves the bodies out of penetration without adding velocity. Tall stacks rebound less.
Ellipsoid ToleranceElltolSets the convergence tolerance of the minimum-volume ellipsoid fit. Lower values fit tighter around the vertices and take longer.
Hull ResolutionHullresSets the most vertices a convex hull keeps. Fewer vertices give a coarser shape and cheaper hull collisions, useful for large piles of hulls.
Rebuild ShapesRebuildshapesRebuild the collision shapes from the current instance geometry (also done at Start).
Shapes BuiltShapesbuiltShows the collision shapes built at the last Start or Rebuild: count, kind and hull vertices.
Build TimeBuildtimeThe time the last shape build took (Python, at Start / Rebuild Shapes).
Display BodiesDisplaybodiesDraw the collision shape of every body in Display Color (Collisions page): the fitted box, the bounding sphere, the hull edges.
Display SleepingDisplaysleepingColor every body by its sleep state. Blue bodies are asleep and cost nothing to simulate, orange bodies are awake.
InitializeInitializepulseInitializes the POP from its input and parameters.
StartStartpulseStart the simulation from the initialized state.
PlayPlayPause or play the feedback loop.
StepSteppulseAdvance the simulation by one frame while paused.
PAGEInstances
InstancesInstancesOne block per POPX instance, detected automatically from the input: its collision shape and material.
DensityInstances0densityThe density of this instance (kg per cubic meter) when Mass is Density.
Body MassInstances0bodymassThe mass of every body of this instance when Mass is Set, in kg with 1 unit equal to 1 m.
Static ThresholdInstances0staticthresholdSets the static friction of this instance. A contact grips while its sliding force stays below this times its normal force.
Dynamic ScaleInstances0dynamicscaleSets the sliding friction of this instance, never above its Static Threshold. 0.1 is ice, 0.4 is plastic, 0.8 grips.
Rolling FrictionInstances0rollingfrictionResistance to rolling of this instance, in meters (the lever of the resisting torque): stops spheres and capsules rolling forever.
RestitutionInstances0restitutionSets the bounciness of this instance. A contact uses the larger Restitution of its two sides, for impacts above 1 m/s.
PAGECollisions
Enable Ground CollisionEnablegroundcollisionCollide with an infinite ground plane.
Display GroundDisplaygroundDisplay the ground plane.
Ground Collision MarginGroundmarginDistance the bodies keep from the ground.
Enable Bounding Box CollisionEnablebboxcollisionKeep the bodies inside the bounding box.
Display Bounding BoxDisplaybboxEnable drawing the bounding box.
Lower BoundsBboxlowerboundsEnable the lower walls of the bounding box in each axis.
Upper BoundsBboxupperboundsEnable the upper walls of the bounding box per axis.
Bounding Box Collision MarginBboxmarginDistance the bodies keep from the box walls.
Bounding Box POPBboxOptional POP whose world bounds replace the built-in box.
Display GeometryDisplaygeoEnable drawing the collider, as the mesh or the field's zero surface.
Collision POPCollisionpopThe collider, either a mesh POP or an SDF field volume.
SolidSolidWhen on, bodies inside the collider are pushed out. When off, the collider is hollow.
Keep InsideKeepinsideWhen on, the collider is hollow and every outside body is pulled back in. When off, only escaping bodies are caught.
Collision OffsetCollisionoffsetDistance the bodies keep from the collider surface.
Uniform ScaleScaleSpecifies a uniform scale factor for the collider and the bounding box.
PAGEForces
Gravity MultiplierGravitymultiplierMultiplies the Gravity vector.
Wind SpeedWindspeedThe wind acceleration along Wind Direction, in units per second squared.
Linear DampingLineardampingSets the rate per second at which the velocity decays.
Angular DampingAngulardampingSets the rate per second at which the spin decays.
Ground Static ScaleGroundstaticscaleSets the static friction of the ground plane. 0 is frictionless.
Ground Dynamic ScaleGrounddynamicscaleSets the kinetic friction of the ground plane.
Enable ShooterEnableshooterLaunch rigid spheres at the bodies from Origin along Yaw and Pitch at Speed. Turning it on or off never restarts the simulation.
ShootShootFires the next sphere of the pool.
YawShooteryawSets the aim around the vertical axis. 0 shoots along negative Z, 90 along positive X. Angles are given in degrees.
PitchShooterpitchSets the aim above the horizon. Negative values shoot downward. Angles are given in degrees.
SpeedShooterspeedSets the launch speed of the spheres, in units per second.
Projectile RadiusProjectileradiusSets the radius of the next sphere fired. Spheres already in flight keep their own.
Projectile DensityProjectiledensitySets the density of the spheres in kg per cubic meter. Heavier spheres push the piles harder.
Projectile FrictionProjectilefrictionSets the static friction of the spheres, mixed with the body they touch.
Projectile Rolling FrictionProjectilerollingSets the rolling resistance of the spheres in meters, so a fired sphere rolls to a stop.
Max ProjectilesMaxprojectilesSets the size of the sphere pool. Once all are fired, the oldest is fired again. Changing it reallocates the bodies.
Display ShooterDisplayshooterDraw the shooter guide: the projectile at Origin with an aim arrow, the predicted flight path and a ring where it lands.
Fetch Shooter + ProjectilesFetchprojectilesCreates two Select POPs next to the operator: the fired projectiles (P, Rotate and PointScale, to instance your own geometry) and the shooter guide geometry.
PAGEAdvanced
Enable Max AccelerationEnablemaxaccLimit the acceleration to Max Acceleration.
Max AccelerationMaxaccelerationSets the maximum acceleration magnitude.
Contact OffsetContactoffsetThe bodies rest this far from every surface: a small margin keeps contacts alive between substeps.
Contact SpeedContactspeedSets the fastest speed, in m/s, at which a body is pushed out of an overlap, so bodies created inside each other separate gently. 0 is no limit.
Ignore Initial OverlapsIgnoreinitoverlapWhen on, the bodies that touch or overlap when the simulation starts may keep that overlap: they collide, but are never pushed apart by it and cannot sink deeper, so pieces created inside each other (a fractured object) fall together instead of bursting apart.
Enable SleepEnablesleepBodies that stay slower than the Sleep Threshold for Sleep Frames stop simulating until something touches them. A pile at rest costs almost nothing.
Sleep ThresholdSleepthresholdSets the speed in m/s under which a body counts as resting.
Sleep FramesSleepframesSets how many frames a body must rest before it falls asleep.
Warm StartWarmstartEach contact starts the frame from the force and stiffness it ended the last one with (decayed): piles and stacks settle and stay still in few iterations.
PAGECommon
Free Extra GPU MemoryFreeextragpumemFree memory that has accumulated when output memory has grown and shrunk.
Render PrimitivesRenderprimitivesWhether to render the full POPX geometry. When off, only point instances are drawn.
SRT / RSTSrtrstSets the transform order, SRT or RST, used when the points are rendered as TouchDesigner instances.
Input 0 POP - POPX Geometry
Output 0 POP - POPX Geometry