Flow Smear
A feedback node that advects the accumulation buffer along a flow field. Every frame it reads the previous frame’s accumulation from the position UV - flow × deltaTime × Strength and mixes it with the live Source using lerp(Source, accumulation, Persistence). The higher Persistence is, the more it trails like paint; at 0 it becomes a passthrough.
- Strength — Advection multiplier. Clamped to 0-8, default 1 (
Strengthinput /strengthInput/currentStrength) - Persistence — Retention rate of the accumulation. Clamped to 0-1, default 0.92 (
Persistenceinput /persistenceInput/currentPersistence) - Reset — Trigger input. Repaints the accumulation buffer with the current Source (the Reset button in the node UI does the same thing)
If the Flow input is not connected, the flow is treated as zero (black). No advection happens, and it becomes a time feedback that stays in place.
Removing the Source input schedules a reset, and the output is cleared to black. Right after a project is loaded it likewise starts from the reset state.
The accumulation and the output use a high-precision format (at 8 bit the decaying trail would band). The alpha of the output is always fixed to 1.
Video
Input ports
| Port ID | Type |
|---|---|
Source | RenderTexture |
Flow | FlowFieldInput |
Strength | float |
Persistence | float |
Reset | trigger |
Output ports
| Port ID | Type |
|---|---|
Out | RenderTexture |
Scriptable members
| Path | Type |
|---|---|
strengthInput | float |
persistenceInput | float |
currentStrength | float |
currentPersistence | float |
Synapse Apps (scripting)
await synapse.modules.create({ type: "FlowSmear" })