Spawn

Spawn entities from any source geometry at a controlled rate and track the age of each one.

What it does

Spawn creates new entities, particles, from any source and keeps them alive over time. Each cook it ages existing entities, spawns new ones at a rate or in a one-shot burst, and removes any whose age has passed their lifetime. Inside a feedback loop, the loop holds the entity pool's persistent memory across frames. With entities unwired, Spawn keeps its own pool internally, so a bare Spawn still emits and evolves a stream.

New entities take initial velocity, size, and colour from Spawn's own parameters, or inherit colour, normal, and scale from the source points when Inherit Source Attributes is on. Gravity and damping integrate into velocity every frame, so points wired into Spawn can already read as a small fountain or a puff of dust with no other nodes.

When to use it

ParameterTypeDefaultWhat it does
entitiesCollection—Existing entities to maintain (connect from feedback loop)
sourceCollection or Field or Color Field or Vec3—Where to spawn: Points, Shapes, Geometry, SDF, Raster, or Vec3
rateNumber10Entities per second (fractional rates handled probabilistically)
burstNumber or Boolean—Spawn this many entities immediately (non-zero triggers burst)
enableNumber or Boolean—Emit at `rate` only while this is true (pauses the rate stream when false; burst is unaffected)
per_source_countNumber0Spawn exactly N children per source point (0 = use rate/burst instead). Deterministic fan-out for chain reactions.
lifetimeNumber2Lifetime in seconds for new entities (@life attribute)
velocityVec3(0, 1, 0)Initial velocity (@v) for spawned entities
velocity_randomnessNumber0Direction spread as a cone around @v (0 = laser, 1 = full sphere)
gravityVec3(0, 0, 0)Constant force (gravity/wind) added to velocity each frame. Y up; downward = negative Y.
dampingNumber0Velocity damping / air drag per second (0 = none). Frame-rate independent.
massNumber1Per-particle mass (@mass). Gravity is unaffected (it's an acceleration); force-response graphs divide impulses by @mass.
lifetime_varianceNumber0Per-particle @life spread (0 = uniform, 1 = ±100% variation)
sizeNumber1Scale (@pscale) for spawned entities
colorColorrgba(1.00, 1.00, 1.00, 1.00)Color (@Cd) for spawned entities
inherit_source_attributesBooleantrueCopy @Cd, @N, @pscale from source points to spawned entities
auto_ageBooleantrueIncrement @age by delta_time each frame on existing entities
max_entitiesNumber0Cap total entities -- spawning stops when limit reached. 0 = no limit.
seedNumber0Random seed for spawn position and velocity jitter
candidate_countNumber4096How many candidate positions to scatter over a mesh/shape/SDF/volume/raster source (ignored for Points)
bounds_minVec3(-1, -1, -1)Lower corner of the field-sampling bbox (Field(Record) source only)
bounds_maxVec3(1, 1, 1)Upper corner of the field-sampling bbox (Field(Record) source only)
opacityNumber1Layer opacity (0 = transparent, 1 = opaque). Editable, wirable, keyframable.

Gotchas

Per Source Count overrides Rate and Burst entirely once above 0, and works with Points or an explicit list of positions only. On any other source it is ignored and Spawn falls back to Rate/Burst.

Burst left unwired gives an initial pop of particles the moment a source is connected, even on a paused or static frame. Wiring Burst replaces that default pop: a switch re-triggers the pop, a number sets the exact count.

Enable pauses the continuous Rate stream without touching Burst, for emitting only while a condition is true without losing one-shot bursts.

When the source is a field of values rather than points, a shape, or geometry, Spawn switches to a one-shot mode: particles are re-jittered inside the Bounds Min/Max box every frame and their properties read from the field. There is no ageing or death in this mode, and Lifetime, Auto Age, and the Died output do not apply.

Worked example

  1. Add a Points node (or any point source) and wire it into Spawn's source.

  2. Raise Rate for a denser stream, or set Burst for an immediate one-shot pop of particles.

  3. Adjust Velocity and Velocity Randomness to shape the spread, and dial in Gravity so particles arc and fall.

  4. For persistent, ageing entities, drop Spawn between a Feedback Start and Feedback End and wire the loop's carried collection into entities.

See also

Stamp · Feedback Start · Points · Collections