Skip to content

Advect T3D

Summary

The Advect T3D moves particles along the flow in a velocity volume, such as the velocity output of fluid. Particles come as a 2D TOP (one per pixel, RGB = position) or as a POP, or both. Each cook moves every particle by the velocity at its position times Step Size, sampling the velocity four times along the step (Runge–Kutta, 4th order), so particles follow swirling flow without drifting outwards. Feed the TOP output back through a Feedback TOP, or cook the POP every frame, to keep them moving.

Particles live in world space, and the volume is placed there by a T3D Transform Reference (the operator the velocity came from, or any operator that exports the mapping), a Matrix, or the Transform page: one unit wide, centred on the origin, with the volume's proportions. See Coordinates and units. Outside the volume the velocity follows Input Extend Mode.

Parameters - Advection Page

Step Size Stepsize - Scales the step: each cook moves a particle by velocity × Step Size, integrated with four velocity samples (Runge–Kutta, 4th order) so particles follow curved flow accurately. Float · default 0.1

Output Value To Attribute Outputtoattribute - Name of a POP attribute that receives the velocity used for the step. In 1.14 it holds the Runge–Kutta sum, six times the step's mean velocity. StrMenu · default none

Parameters - Transform Page

T3D Transform Reference T3dtransformreference - An operator that exports the mapping between the volume and world space (geo_to, point_cloud, metaball, sprinkle, or another advect). The velocity volume is then placed where that operator's volume is, and the Transform page is ignored. COMP

Matrix Values Matrix - A 4 × 4 matrix, as 16 numbers separated by spaces, placing the volume in world space. Used instead of the Transform page when set. Str

Transform Order Xord ⊞ - Order in which scale, rotate and translate place the volume, when neither a reference nor a matrix is set. Menu · default Scale Rotate Translate

  • Scale Rotate Translate srt
  • Scale Translate Rotate str
  • Rotate Scale Translate rst
  • Rotate Translate Scale rts
  • Translate Scale Rotate tsr
  • Translate Rotate Scale trs

Rotate Order Rord ⊞ - Order of the rotations. Menu · default Rx Ry Rz

  • Rx Ry Rz xyz
  • Rx Rz Ry xzy
  • Ry Rx Rz yxz
  • Ry Rz Rx yzx
  • Rz Rx Ry zxy
  • Rz Ry Rx zyx

Translate Tx Ty Tz ⊞ - Position of the volume's centre in world space. Float × 3 · default 0

Rotate R1 R2 R3 ⊞ - Rotation of the volume in world space, in degrees. Float × 3 · default 0

Scale Sx Sy Sz ⊞ - Scale of the volume in world space. At 1 the volume is one unit wide, with its proportions. Float × 3 · default 1

Pivot Px Py Pz ⊞ - Pivot of rotation and scale. Float × 3 · default 0

Uniform Scale Scale - Uniform scale, multiplied with Scale. Float · default 1

Display Bounds Displaybounds - Draws the volume's box and the particles in the operator's viewer. Toggle · default Off

Input Extend Mode UV Inputextenduv ⊞ - What the velocity volume returns outside its box: Zero stops particles that leave it, Hold keeps pushing them with the edge velocity, Repeat wraps the flow around. Menu · default Zero

  • Hold hold
  • Zero zero
  • Repeat repeat
  • Mirror mirror

Version Version - T3D version of this operator. Read-only information; include it when reporting a problem. Str

Operator Inputs

  • Input 0: Positions in_positions - Particles as a 2D TOP, one per pixel, RGB = x, y, z in world space (32-bit float). Alpha passes through. Feed the output back (Feedback TOP) to keep particles moving from frame to frame.
  • Input 1: POP in_pop - Particles as a POP, moved in P (needs a build with POPs).
  • Input 2: Velocity in_T3D - The velocity volume: RGB = velocity along X, Y, Z, in world units per step at Step Size 1 (fluid's velocity output fits).

Operator Outputs

  • Output 0: Positions (TOP) out_position - The moved positions, alpha unchanged.
  • Output 1: POP out_pop - The moved POP.

Performance

GPU time when the operator recooks: 0.000 ms at 64³, 0.000 ms at 128³, all of its passes summed (GeForce RTX 4090, TouchDesigner 2025.33230). An operator whose inputs and parameters are unchanged does not recook and costs nothing.