EvenRing

EvenRing

Generator. Emits particles evenly spaced in time, like a ring of emission slots. (Formerly named GenEvenPeriodic.)

The ring-in-time model. Each slot fires once per period, where the period is 100 / rate seconds (the time it takes to fill the emitter’s whole capacity once). A slot is reused every period, so a particle must die before its slot’s turn comes around again. If a particle lives longer than the period, its slot is still occupied when its turn returns, the shot is dropped, and a gap forms that propagates as visible “waves”.

All properties must remain constant over time, otherwise generating glitches may occur. The rate is specified as a percentage of emitter capacity per second.

Setting the rate from particle life. Choose the rate straight from how long your particles live:

rate = 100 / life

For example, 2-second particles → 50%, 3-second particles → 33.3%. A small safety margin is applied automatically by every backend (GPU33 as well as the CPU/JS and C# runtimes), stretching the real ring period just past the particle life. This means these obvious values fill the capacity smoothly without waves, and every backend renders identically — you do not need to shave the rate down by hand.

Properties & inputs:

  • Generating rate (input | property): Percentage of emitter capacity generated per second. Also sets the ring period (100 / rate seconds).
  • Particle max. life (property): Helper to pick the rate by eye. Enter roughly how long your particles live and the rate is set to 100 / life. It is a standalone estimate — it is NOT read from the Termination section (an emitter may have several life limits, or none).
  • Enable time limit (property): Limits the generating duration in seconds.
  • Enable shots limit (property): Limits the total number of emission events.
  • Delay (input | property): Delay in seconds before generation starts.
  • Start Phase (input | property): Value from 0 to 1. If 1, the first shot fires immediately. If 0, a full period elapses first.
  • Burst (input | property): Number of particles per shot.
  • Burst pos mode (property): Controls how the Burst Pos. output is spread across the particles of one shot. Normalized (default) runs the first particle to 0 and the last to 1 (index / (burst − 1)). Linear runs the first particle to 0 and the last to 1 − 1/burst (index / burst), so the value never quite reaches 1 — useful when Burst Pos. drives a looping or tiling gradient where the last particle should not land on the same value as the first.

Outputs:

  • Burst Amount (float): Number of particles in the current burst.
  • Burst Pos. (float): Position of a particle within the burst. The range depends on Burst pos mode: Normalized gives [0; 1] (last particle = 1), Linear gives [0; 1 − 1/burst] (last particle < 1).