A GPU particle system driven by images: a thresholded source emits particles, look, life, turbulence, wind and force fields shape them, a fluid simulation can carry them, with raw colour, position and optical-flow inputs and one rendered output.
This tool unlocks with Patreon. It installs through the same picker as
everything else and unlocks with the Patreon Pro tier or higher, connected from inside
TouchDesigner.
Everything else in the toolkit stays free and MIT, and the membership is what keeps that
work moving.
ParticlesGpuUltimate turns an image into a particle system and renders it. The source image is thresholded to decide where particles are born and what colour they carry; Look sets their material, size and fades; Life how long they last and how their life maps to size and alpha; Turbulence and Wind push them with fields that read the image's dark and bright sides differently; Forces adds point, radial or directional fields you place; and the Fluid page runs a fluid simulation the particles can ride, fed by the image, by a raw colour, position or optical-flow input, or by its own splats. The whole thing composites over the source or a background colour and comes out as one TOP.
It is a member of the FNS operator family: pick it from the FNS tab of the OP Create dialog and it lands as one node.
in_fluid (TOP): optional; an image that drives the fluid simulation.
in_col_raw, in_pos_raw, in_optflow_raw (TOP): optional raw colour, position and optical-flow maps that replace the ones derived from the source.
bg (TOP): the rendered particles over the background.
Parameters
Source
Control
Type / default
What it does
Source ResSourceres
xyzw0
Resolution the source image is sampled at.
Source Thresh
ComparatorComparator
menuLess
How pixels are compared with the threshold to decide where particles are born.
Options: Less, Greater, Less or Equal, Greater or Equal, Equal, Not Equal
Source ThresholdSourcethreshold
number0.5
The brightness a pixel needs, by the comparator, to emit particles.
Source Mix
OverUnderLay SourceMenu
menuInput
What is composited with the particles: the input, the thresholded source, or the fluid.
Options: Input, Thresholded, Fluid
Under OpacSourceunderopac
number1
Opacity of the source image underneath the particles.
OperationOperand
menuMultiply
How the source and the particles are composited.
Options: Add, Atop, Average, Brightest, Burn Color, Burn Linear, Chroma Difference, Color and 38 more
OpacOpacity2
number1
Opacity of the composited source.
Comp Over Background ColorCompover
on / offoff
Composite the result over the background colour.
BgcolorBgcolor
colour0
The background colour.
pGpu
Control
Type / default
What it does
Render ResRes
xyzw0
The render resolution.
CreateCreate
menuname1
Specify how particles are being created. You can either create a certain number of particles all at once or create a certain number of particles on a per frame basis.
Options: By Total Number of Particles, By Particles per Frame
Max Particles in SimulationMaxparticles
number409600
How many particles the simulation holds at once.
BirthBirth
number10000
The number of particles spawned each frame. Only available when the Create parameter is set to "By Particles per Frame".
Random InitPosRandominitpos
on / offon
Birth particles at random positions inside the source instead of in order.
CameraCamera
operatorempty
The camera the particles are rendered through.
Projection BlendProjectionblend
number0
Blend between perspective (0) and orthographic (1) projection.
LightLight
operatorlight1
The light used when rendering the particles.
Hit BehaviourHit
menuBounce on Contact
Specify what the particle should do when leaving the bounding box.
Options: None, Die on Contact, Bounce on Contact, Avoid Bounds, Stick, Fade Out
SpeedSpeed
number1
Overall speed of the simulation.
DragDrag
number1
How quickly particles lose speed.
PausePause
on / offoff
Freeze the simulation.
ResetReset
button
Reset the particle system.
Look
Control
Type / default
What it does
MaterialMaterial
menuConstant
Select which material type should be used for the particle system render.
Options: Constant, Phong, Line, PBR
Open MATOpen
button
Open the particle material to edit it.
SOPSop
menuPoint
The shape drawn for each particle: a point or a box.
Options: Point, Box
Particle Size MaxParticlesizemax
number1
Specify the maximum size of the particle.
CompositingCompositing
menuOrder-Independent Transparency
How particle transparency is resolved when rendering.
Options: Alpha To Coverage, Discard Alpha, Order-Independent Transparency, No Depth Test
Alpha ThresholdAlphathreshold
number0.8
Pixels of a particle below this alpha are discarded.
Fade
Fade InFadein
number0.001
Specify the time in seconds a particle fades in after being spawned.
Fade OutFadeout
number1
Specify the time in seconds a particle fades out before dying.
Fade to Color (Mult Alpha)Fadetocolor
number1
How far particles fade toward black (multiplied alpha) over their life.
Fade to AlphaAlphafade
number0
How far particles fade out over their life.
Fade to SizeFadetosize
number0
How far particles shrink over their life.
Col to Size MapColtosizemap
menuRed
Which channel of the source colour sets particle size.
Options: Luminance, Red, Green, Blue, Alpha, RGB Average, RGBA Average, RGB Maximum and 3 more
Col to Size CrossLumtosize
number0
Blend between a fixed size and a size taken from the source colour.
Exponent ValueExpval
number2
Exponent on the colour-to-size mapping: 1 is linear.
Size Mod InvertSizemodinvert
number0
Invert the colour-to-size mapping, so darker areas give bigger particles.
Life
Control
Type / default
What it does
Life TypeLifetype
menuConstant
How life is set: the same for every particle, random, or read from an effector image.
Options: Constant, Random, Effector
LifeLife
number2
The number of seconds a particle will be alive.
Life MaxLifemax
number0
The longest a particle can live, in seconds.
LifevarianceLifevariance
number2
A delta number of seconds that will be added or subtracted from the expected lifetime, specified in the Life parameter, of a particle.
Exponent ValueExpval2
number2
Exponent on the life effector mapping: 1 is linear.
To RangeTorange
number0
The range the life effector is mapped to.
Works only with Random InitPos=Off
Random InitPosRandominitpos2
on / offon
Birth particles at random positions (mirrors Random InitPos on the pGpu page).
InitPos/CurrPosEffectorswitchliferead-only
on / offon
Where the effector image is sampled: at the position a particle was born (off) or where it is now (on).
RGBRgb
menuRed
Which channel of the life effector image is read.
Options: Luminance, Red, Green, Blue, Alpha, RGB Average, RGBA Average, RGB Maximum and 3 more
Turb
Control
Type / default
What it does
Turb GainTurbgain
number1
Overall strength of the turbulence.
Trub Effector ExponentTurbexpval
number2
Exponent on the turbulence effector image: 1 is linear.
Turb SeedTurbseed1
number0
Random seed of the turbulence noise.
Turb PeriodTurbperiod1
number0.5
Scale of the turbulence noise: larger periods give broader swirls.
Turb Trans SpeedTurbtrans
xyzw0
How fast the turbulence noise moves on each axis.
RgbRgbturb
menuLuminance
Which channel of the turbulence effector image is read.
Options: Luminance, Red, Green, Blue, Alpha, RGB Average, RGBA Average, RGB Maximum and 3 more
Dark Side
TurbTurb
xyzw0
Turbulence on the dark side of the effector image, per axis.
Turb MagTurbmag
number0
Strength of the dark-side turbulence.
Bright Side
TurbTurb1
xyzw0
Turbulence on the bright side of the effector image, per axis.
Turb MagTurbmag1
number0
Strength of the bright-side turbulence.
InitPos/CurrPosEffectorswitchturb
on / offon
Where the effector image is sampled: at the position a particle was born (off) or where it is now (on).
Wind
Control
Type / default
What it does
WindgainWindgain
number0
Overall strength of the wind.
Wind Effector ExponentWindexpval
number2
Exponent on the wind effector image: 1 is linear.
RgbRgbwind
menuLuminance
Which channel of the wind effector image is read.
Options: Luminance, Red, Green, Blue, Alpha, RGB Average, RGBA Average, RGB Maximum and 3 more
Dark Side
WindWind1
xyzw0
Wind direction on the dark side of the effector image.
WindMagWindmag1
number0
Strength of the dark-side wind.
Wind VarianceWindvariance
number0
Random variation of the dark-side wind.
Bright Side
WindWind
xyzw0
Wind direction on the bright side of the effector image.
WindMagWindmag
number0
Strength of the bright-side wind.
Wind VarianceWindvariance1
number0
Random variation of the bright-side wind.
InitPos/CurrPosEffectorswitchwind
on / offon
Where the effector image is sampled: at the position a particle was born (off) or where it is now (on).
Forces
Control
Type / default
What it does
ForcesForces
sequence0
Extra forces placed in the scene, one block each.
Force TypeForces0forcetype
menu2
The shape of this force: radial, axial, vortex or spiral.
Options: Radial, Axial, Vortex, Spiral
ForceposForces0forcepos
xyzw0
Where this force sits.
Force RadiusForces0forceradius
number1
How far this force reaches.
Force AmountForces0forceamount
number0
Strength of this force; negative pulls instead of pushes.
ForcedirForces0forcedir
xyzw0
The axis this force acts along, for the axial, vortex and spiral types.
Force TypeForces1forcetype
menu2
The shape of this force: radial, axial, vortex or spiral.
Options: Radial, Axial, Vortex, Spiral
ForceposForces1forcepos
xyzw0
Where this force sits.
Force RadiusForces1forceradius
number1
How far this force reaches.
Force AmountForces1forceamount
number0
Strength of this force; negative pulls instead of pushes.
ForcedirForces1forcedir
xyzw0
The axis this force acts along, for the axial, vortex and spiral types.
FLUID
Control
Type / default
What it does
Output ResOutputres
xyzw1920
Resolution of the fluid output.
Sim ResSimres
xyzw256
Resolution the fluid is simulated at: lower is faster.
Optical Flow MagnitudeOptflowmag
number0.01
Magnitude of the optical flow input force.
Enable FluidEnablefluid
on / offoff
Run the fluid simulation.
Fluid as SourceProgress
number0
Blend between the plain source (0) and the fluid (1) as what emits particles.
VerticalstrengthVerticalstrength
number0
Strength of the vertical push in the velocity map.
Force Map Velocity StrengthForcemapvelocitystrength
number0.5
How strongly the force map drives the fluid velocity.
Output Max LumOutputmaxlum
number1.5
Brightness cap of the fluid output.
Palette FlowFlow1
number0.01
How much the palette colours flow in the fluid.
Splat FlowFlow2
number0.2
How much splats flow in the fluid.
Density FlowFlow3
number0.2
How much density flows in the fluid.
DecayDecay1
number0.001
How quickly the fluid fades.
Pressure PassesPressurepasses
number50
Pressure solver iterations: more is more accurate and slower.