←ALL OPERATORS
> simulations
Rigid
simulations/rigid·v1.5.1
IN:1 OUT:1
SUMMARY
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.
PARAMETERS
PAGERigid
| Target Feedback Loop POP | Targetpop | A 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 Scale | Timescale | Speed multiplier on the time step. 0 freezes and 2 doubles. |
| Time Step | Timestep | The time step per frame in seconds, 1 divided by the cook rate (read-only). Time Scale multiplies it. |
| Substeps | Substeps | Substeps per frame: the contacts are solved at every substep, so more substeps help more than more iterations (Small Steps). |
| Iterations | Iterations | Number of contact passes per substep. |
| Post Stabilize | Poststabilize | Runs one extra sweep after the iterations that moves the bodies out of penetration without adding velocity. Tall stacks rebound less. |
| Ellipsoid Tolerance | Elltol | Sets the convergence tolerance of the minimum-volume ellipsoid fit. Lower values fit tighter around the vertices and take longer. |
| Hull Resolution | Hullres | Sets the most vertices a convex hull keeps. Fewer vertices give a coarser shape and cheaper hull collisions, useful for large piles of hulls. |
| Rebuild Shapes | Rebuildshapes | Rebuild the collision shapes from the current instance geometry (also done at Start). |
| Shapes Built | Shapesbuilt | Shows the collision shapes built at the last Start or Rebuild: count, kind and hull vertices. |
| Build Time | Buildtime | The time the last shape build took (Python, at Start / Rebuild Shapes). |
| Display Bodies | Displaybodies | Draw the collision shape of every body in Display Color (Collisions page): the fitted box, the bounding sphere, the hull edges. |
| Display Sleeping | Displaysleeping | Color every body by its sleep state. Blue bodies are asleep and cost nothing to simulate, orange bodies are awake. |
| Initialize | Initializepulse | Initializes the POP from its input and parameters. |
| Start | Startpulse | Start the simulation from the initialized state. |
| Play | Play | Pause or play the feedback loop. |
| Step | Steppulse | Advance the simulation by one frame while paused. |
PAGEInstances
| Instances | Instances | One block per POPX instance, detected automatically from the input: its collision shape and material. |
| [+]Collision Shape | Instances0collisionshape | The collision shape fitted to the bodies of this instance. One simulation can mix boxes, spheres, capsules and hulls. |
| [+]Mass | Instances0mass | How the mass of this instance's bodies is set: from the Density and the shape's volume, one Body Mass for each, or the Mass attribute of the input. |
| Density | Instances0density | The density of this instance (kg per cubic meter) when Mass is Density. |
| Body Mass | Instances0bodymass | The mass of every body of this instance when Mass is Set, in kg with 1 unit equal to 1 m. |
| Static Threshold | Instances0staticthreshold | Sets the static friction of this instance. A contact grips while its sliding force stays below this times its normal force. |
| Dynamic Scale | Instances0dynamicscale | Sets the sliding friction of this instance, never above its Static Threshold. 0.1 is ice, 0.4 is plastic, 0.8 grips. |
| Rolling Friction | Instances0rollingfriction | Resistance to rolling of this instance, in meters (the lever of the resisting torque): stops spheres and capsules rolling forever. |
| Restitution | Instances0restitution | Sets the bounciness of this instance. A contact uses the larger Restitution of its two sides, for impacts above 1 m/s. |
PAGECollisions
| Enable Ground Collision | Enablegroundcollision | Collide with an infinite ground plane. |
| Display Ground | Displayground | Display the ground plane. |
| [+]Ground Position | Groundposition | A point on the ground plane. |
| [+]Ground Direction | Grounddirection | Normal of the ground plane. 0 1 0 is a level floor. |
| Ground Collision Margin | Groundmargin | Distance the bodies keep from the ground. |
| Enable Bounding Box Collision | Enablebboxcollision | Keep the bodies inside the bounding box. |
| Display Bounding Box | Displaybbox | Enable drawing the bounding box. |
| [+]Bounding Box Center | Bboxcenter | Center of the bounding box, in collider space. |
| [+]Bounding Box Size | Bboxsize | Size of the bounding box, in collider space. |
| Lower Bounds | Bboxlowerbounds | Enable the lower walls of the bounding box in each axis. |
| Upper Bounds | Bboxupperbounds | Enable the upper walls of the bounding box per axis. |
| Bounding Box Collision Margin | Bboxmargin | Distance the bodies keep from the box walls. |
| Bounding Box POP | Bbox | Optional POP whose world bounds replace the built-in box. |
| [+]Collision Type | Collisiontype | Selects the collider: none, a POP mesh (ray traced, Windows only) or a field used as an SDF volume. |
| Display Geometry | Displaygeo | Enable drawing the collider, as the mesh or the field's zero surface. |
| Collision POP | Collisionpop | The collider, either a mesh POP or an SDF field volume. |
| [+]Dist Attribute (SDF) | Distattr | For a field collider, the signed distance attribute of the Collision POP, negative inside. |
| Solid | Solid | When on, bodies inside the collider are pushed out. When off, the collider is hollow. |
| Keep Inside | Keepinside | When on, the collider is hollow and every outside body is pulled back in. When off, only escaping bodies are caught. |
| Collision Offset | Collisionoffset | Distance the bodies keep from the collider surface. |
| [+]Transform Order | Xord | Sets the transform order of the collider and the bounding box. |
| [+]Rotate Order | Rord | Sets the order of the rotations of the collider and the bounding box. |
| [+]Translate | T | Translate the collider and the bounding box in the three axes. |
| [+]Rotate | R | Rotate the collider and the bounding box around the X, Y and Z axes. Angles are given in degrees. |
| [+]Scale | S | Scale factor for each axis of the collider and the bounding box. |
| [+]Pivot | P | The pivot point for the rotate and scale of the collider and the bounding box. |
| Uniform Scale | Scale | Specifies a uniform scale factor for the collider and the bounding box. |
| [+]Display Color | Displaycolor | Sets the color of the displayed guides. |
PAGEForces
| [+]Gravity | Gravity | The gravity vector in units per second squared. |
| Gravity Multiplier | Gravitymultiplier | Multiplies the Gravity vector. |
| [+]Wind Direction | Winddirection | The direction the wind blows in. Its length does not matter. |
| Wind Speed | Windspeed | The wind acceleration along Wind Direction, in units per second squared. |
| Linear Damping | Lineardamping | Sets the rate per second at which the velocity decays. |
| Angular Damping | Angulardamping | Sets the rate per second at which the spin decays. |
| Ground Static Scale | Groundstaticscale | Sets the static friction of the ground plane. 0 is frictionless. |
| Ground Dynamic Scale | Grounddynamicscale | Sets the kinetic friction of the ground plane. |
| Enable Shooter | Enableshooter | Launch rigid spheres at the bodies from Origin along Yaw and Pitch at Speed. Turning it on or off never restarts the simulation. |
| Shoot | Shoot | Fires the next sphere of the pool. |
| [+]Origin | Shooterorigin | Sets where the spheres are launched from. |
| Yaw | Shooteryaw | Sets the aim around the vertical axis. 0 shoots along negative Z, 90 along positive X. Angles are given in degrees. |
| Pitch | Shooterpitch | Sets the aim above the horizon. Negative values shoot downward. Angles are given in degrees. |
| Speed | Shooterspeed | Sets the launch speed of the spheres, in units per second. |
| Projectile Radius | Projectileradius | Sets the radius of the next sphere fired. Spheres already in flight keep their own. |
| Projectile Density | Projectiledensity | Sets the density of the spheres in kg per cubic meter. Heavier spheres push the piles harder. |
| Projectile Friction | Projectilefriction | Sets the static friction of the spheres, mixed with the body they touch. |
| Projectile Rolling Friction | Projectilerolling | Sets the rolling resistance of the spheres in meters, so a fired sphere rolls to a stop. |
| Max Projectiles | Maxprojectiles | Sets the size of the sphere pool. Once all are fired, the oldest is fired again. Changing it reallocates the bodies. |
| Display Shooter | Displayshooter | Draw the shooter guide: the projectile at Origin with an aim arrow, the predicted flight path and a ring where it lands. |
| Fetch Shooter + Projectiles | Fetchprojectiles | Creates 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 Acceleration | Enablemaxacc | Limit the acceleration to Max Acceleration. |
| Max Acceleration | Maxacceleration | Sets the maximum acceleration magnitude. |
| Contact Offset | Contactoffset | The bodies rest this far from every surface: a small margin keeps contacts alive between substeps. |
| Contact Speed | Contactspeed | Sets 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 Overlaps | Ignoreinitoverlap | When 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 Sleep | Enablesleep | Bodies that stay slower than the Sleep Threshold for Sleep Frames stop simulating until something touches them. A pile at rest costs almost nothing. |
| Sleep Threshold | Sleepthreshold | Sets the speed in m/s under which a body counts as resting. |
| Sleep Frames | Sleepframes | Sets how many frames a body must rest before it falls asleep. |
| Warm Start | Warmstart | Each 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 Memory | Freeextragpumem | Free memory that has accumulated when output memory has grown and shrunk. |
| Render Primitives | Renderprimitives | Whether to render the full POPX geometry. When off, only point instances are drawn. |
| SRT / RST | Srtrst | Sets the transform order, SRT or RST, used when the points are rendered as TouchDesigner instances. |
INPUTS
Input 0
POP - POPX GeometryOUTPUTS
Output 0
POP - POPX Geometry
