Product media placeholder
Replace this area with a screenshot or short walkthrough video during the media sweep.
One pulse in, one of N channels out per pulse. `strategy` picks the dispatch rule. Replaces the accumulator + counter + router triplet.
Type pulseDispatchCategory inputsContext sharedDynamic ports yesCompound yes
Inputs
| Port | Type | Description |
|---|---|---|
value | float | Continuous signal that auto-accumulates to pulses at `threshold`. Wire ONE of `value` or `pulse`, not both. |
pulse | float | Pre-formed pulse signal — drives the selector directly, skipping the accumulator. Wire ONE of `value` or `pulse`, not both. |
reset | float | Hold high to reset the accumulator and selector to their initial state. |
Outputs
| Port | Type | Description |
|---|---|---|
| - | - | No ports declared. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
strategy | enum | "roundRobin" | How channels are picked for each pulse. Round Robin = cycle 0,1,...,N-1 (rhythmic, predictable). Random = pick a random channel (organic, less mechanical). Sequential = fire channels 0..N-1 once then stop (one-shot reveals). options roundRobin, random, sequential |
threshold | float | 0.07 | Accumulated `value` required to fire one pulse (value-mode only — ignored when `pulse` is wired directly). Lower = more frequent pulses; higher = sparser. Example: 0.07 for cursor trail (fires every ~70 px of cursor velocity), 1.0 for slow ambient spawn. min 0.001; step 0.01 |
maxBacklog | float | 1.5 | Caps how many "make-up" pulses can queue from a one-frame burst (e.g. cursor flicked across screen). 0 = no backlog (drop excess); 1.5 = up to 1.5× threshold worth of catch-up pulses. Prevents a single fast move from emptying every channel at once. min 0; step 0.5 |
count | int | 1 | Number of output channels. Auto-derived from `forEach` match count when wired indexed — manual setting is only needed for non-forEach hand-wired graphs. Example: 18 for 18-flair trail, 4 for a 4-corner ripple. min 1; max 256 |
defaultRoute | int | -1 | Channel to fire when the selector returns an out-of-range index. -1 = drop the pulse (most common). Set to a specific channel index to use it as a fallback. min -1 |
seed | int | 1 | Random strategy only. PRNG seed — same seed produces the same sequence on every load, useful for deterministic replay. Example: 1, 42, 1337. |
avoidRepeat | bool | false | Random strategy only. When on, never picks the same channel twice in a row (rerolls). Useful for trails/spawns where back-to-back same-target reads as glitchy. |
Use cases
- Cursor / image trail spawn — feed `mouseVelocity.magnitude` to `value`, wire indexed `out` to a per-element `forEach` instance. Round-robin or random dispatch picks which element each pulse spawns.
- Grid-stagger reveals — feed scroll / time progress as a pulse source, dispatch to N stagger slots in sequence.
- Particle bursts — accumulate a continuous signal (audio, scroll velocity), fire random-channel pulses to scatter spawns across N targets.
Related nodes
Envelope
Use pulseDispatch as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.
Generated source
Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-inputs/