Skip to content

Nodes · 3D

ParticleSystem3D

3Dv1app

Overview

A deterministic particle system authored as a standard USD Points prim, so it carries velocities and per-particle ids for motion blur and id passes.

How to

  1. Choose the emitter (point, card, sphere, box).
  2. Shape the motion with gravity, drag and curl turbulence.
  3. Ramp size and colour over life.

Inputs

InputWhat it takes
inthe image this node works on
emit—

Outputs

OutputType
outScene

Parameters

ParameterTypeDefaultWhat it does
txFloat0.0Translate X — position along the world X axis, metres.
tyFloat0.0Translate Y — position along the world Y axis (up), metres.
tzFloat0.0Translate Z — position along the world Z axis, metres. The camera looks down −Z.
rxFloat0.0Rotate around X, degrees.
ryFloat0.0Rotate around Y (turntable), degrees.
rzFloat0.0Rotate around Z (roll), degrees.
sxFloat1.0Scale along X. 1 = unchanged.
syFloat1.0Scale along Y.
szFloat1.0Scale along Z.
seedInt1Change it for a different-but-equally-valid version of the same effect. The same seed always gives the same sim.
start_frameInt1The frame the simulation begins — before it, nothing exists. Scrubbing anywhere replays from here, so the answer is the same whether you played or jumped.
fpsFloat24.0The integration step. Set it to the project rate — a sim stepped at a different rate than the timeline drifts against it; the panel warns when they disagree.
birth_rateFloat200.0Particles born per second. The count settles at roughly birth_rate × life once the system is running.
max_particlesInt20000A hard ceiling — emission stops here rather than growing without bound, so the cost stays predictable.
emitterChoicepointWhere particles are born: a point, a flat card, the surface of a sphere, or the volume of a box — sized by emitter_size. pointcardspherebox
emitter_sizeFloat2[1.0, 1.0]The emitter's extent in world units (width and height; the sphere and box use the first as radius / half-size).
speedFloat3.0Initial speed along direction, world units per second.
spreadFloat0.25How wide the emission cone is: 0 is a beam along the direction, 1 is every direction equally.
direction_xFloat0.0The X of the emission direction (normalised with Y and Z).
direction_yFloat1.0The Y of the emission direction — up by default.
direction_zFloat0.0The Z of the emission direction.
lifeFloat3.0Seconds a particle lives. life_variation randomises it either side, so they don't all die on the same frame.
life_variationFloat0.3Random spread on each particle's lifetime, as a fraction of life: 0.3 means ±30 %.
size_birthFloat0.05A particle's size when born, world units.
size_deathFloat0.01A particle's size at the end of its life — it interpolates between the two.
color_birthColor[1.0, 0.6, 0.25, 1.0]A particle's colour when born.
color_deathColor[0.35, 0.1, 0.05, 1.0]A particle's colour at the end of its life, faded to over its lifetime.
gravity_xFloat0.0The X of the constant acceleration on every particle, world units per second².
gravity_yFloat-9.81The Y of gravity — −9.81 is Earth, down.
gravity_zFloat0.0The Z of the constant acceleration.
dragFloat0.1How quickly particles lose speed to the air — 0 coasts for ever, 1 stops within a second.
turbulenceFloat0.0Curl-noise wind, in m/s². It swirls without blowing particles out of a region, which is what makes it read as air rather than a fan.
turbulence_scaleFloat0.25The feature size of the turbulence field in world units — small is jitter, large is slow eddies.
bounceBoolfalseParticles bounce off a horizontal floor at floor_y instead of falling through. Restitution is how much speed survives the hit; friction slows them along the ground.
floor_yFloat0.0The height of the floor particles bounce off (when bounce is on), world units.
restitutionFloat0.4How much speed survives a bounce: 0 sticks, 1 bounces back to full height.
frictionFloat0.25How much sideways speed a bounce takes away: 0 slides freely, 1 stops dead on landing.
attractFloat0.0A point that pulls particles in (positive) or pushes them away (negative), at attract_x/y/z. Falls off with distance, softened at the centre so passing through it is survivable.
attract_xFloat0.0The X of the attractor's position, world units.
attract_yFloat0.0The Y of the attractor's position.
attract_zFloat0.0The Z of the attractor's position — attract sets the pull toward it (negative repels).
vortexFloat0.0Swirl around the vertical axis through the attract point — a tornado rather than a fan. Combine with a gentle attract for a drain.
emit_widthFloat4.0How wide the emission image maps across the scene, in metres. The emit input's brightness decides WHERE particles are born inside it.
emit_heightFloat4.0Image emission: the height in world units the wired emit image is stretched over (its brightness is the birth-probability map).
disabledBoolfalseBypass: the node passes its first input through untouched (D in the graph). The knobs keep their values for when it comes back.
labelTextA note shown under the node in the graph — what this node is FOR. Never affects the render or the cache.
hide_inputBoolfalseDraw the node without its input wire — a tidy graph for a node whose source is obvious (a Dot, a viewer tap).

Known edges

The sim is bit-identical every time: the same seed and frame give the same answer whether you played there or scrubbed there.

See also

  • The 3D system — How to put geometry, cameras and volumes in the comp — without becoming a 3D application.