3D and WebGL · 3.5
Motion echo
Motion that leaves echoes of itself. Long-exposure photography of a moving light.
A temporal trail: fading copies left behind by movement, not spatial duplicates.
4 knobs
How it actually works
This is the clearest demonstration in the index of persistence as a mechanism, and it is the thing a plain hover shader fundamentally cannot do. The shader has no memory of the last frame. Give it one, and a single number becomes trail length.
Feed the previous frame's render target back in at reduced opacity, so the trail emerges from persistence rather than being animated. Two textures, ping-ponged: draw the moving object over a decayed copy of what was there last frame, then swap. Nothing draws the trail. The trail is what is left of everything that has not faded yet.
The knobs, named
Feedback decay is the trail length, and it is one number. Echo count, offset and blend mode are trim.
| Knob | Source | What it teaches |
|---|---|---|
| Feedback decay | sourced | What fraction of the last frame survives into this one. The verified relative uses 0.965 verbatim. This IS the trail length: 0.9 is a smudge, 0.99 is a permanent scar. |
| Object speed | ours | How fast the light moves. Fast plus high decay is a solid loop of light. |
| Object size | ours | The emitter. Small and bright reads as a spark; large reads as a wash. |
| Path | ours | What is moving. Pick pointer and you are drawing with your mouse into a decaying buffer. |
sourced means the source names this parameter. ours means the source names none and the knob is our design against the mechanism. No knob here is invented and passed off as sourced.
Evidence
VERIFIED (rendered) for existence; mechanism INFERRED
/features/reverb-effect confirmed in gradientlab's 19-feature catalogue. The mechanism is INFERRED: do not claim we know how they built it. The decay-as-trail-length constant (0.965) is sourced from the index's verified GPGPU-trail relative, not from gradientlab.
- Seen on
- gradientlab.co/features/reverb-effect (REVERB, "Motion that leaves echoes of itself").
- Dependencies
- any shader context with a second render target
- Difficulty
- moderate
- Performance
- Two render targets, one extra full-screen read/write per frame. It never idles, so gate the rAF on visibility. Ours is IO-gated like everything else.
- Accessibility and the floor
- Under reduced motion, drop the echo count to zero, which leaves the base effect intact. Ours freezes the path and holds a single representative still.
Notes
Composability. Echo the ripple (3.1) instead of a dot and the water leaves wakes. The mechanism does not care what it remembers.