Comet Shower enters from all four edges of the frame and every strand holds its own course. Here is the spawn geometry, the steering, and why the tail is correct from a comet's first frame.
Comet Shower is the default mode of the Trails engine: long luminous heads with decaying multi-band tails. It is also the mode that decided how the whole engine was rebuilt, because it is the one where the old design failed most visibly.

A comet is born just outside the frame, and which edge it crosses is decided by its index rather than by the direction controls. Slot by slot the spawn cycles top, right, bottom, left, with a small overshoot so the strand is already moving before it becomes visible. The spawn also returns the inward normal of the edge it used.
That normal is what aims the comet. Its heading starts pointing into the frame and is then leaned toward the configured Direction X and Direction Y by a bounded fraction of the way, plus a small per-strand jitter. Adding the direction outright would let a strong setting point a comet straight back out of the edge it just entered, which is a strand that exists for one frame.
Why the spawn is where this is fixed
Choosing a single entry edge from the direction vector produced a field of parallel strokes: everything entering along the bottom and everything travelling up. Nothing downstream can recover a spread once the spawn has already collapsed it, so the fix has to live at birth.
Most modes in this engine steer each strand toward a shared flow field. This one does not. A comet's target heading is the heading it was launched on, plus a slow sine wander on its own phase, and the steering rate is the lowest in the engine. Steering the whole field back toward one global direction would undo the four-edge spawn within a second.
Each strand also listens to its own slice of the spectrum, fixed for its lifetime, mixed with the engine's shared audio envelope. That per-strand band is what varies speed, opacity and tail width between neighbours, so a field of strands spans the frequency range instead of drawing the same envelope several dozen times.
Each strand carries a ring buffer of vertices, and every vertex stores three numbers: the position and the strand's band level at the instant it was recorded. When a strand respawns, the buffer is not left empty to fill up over the next second. It is seeded backwards along the entry heading, so the trail is its full configured length from the strand's first visible frame.
That matters more than it sounds. Respawns are constant, so a buffer that grew one vertex per frame meant Trail length had no observable effect until a strand happened to survive long enough. It also matches how a moving object actually looks: it was already travelling before it crossed into frame.
The tail is drawn as three overlapping segments rather than one stroke: a thin, faint stretch at the far end, a medium one through the middle, and a thick bright one at the head, finished with a stamped particle on the leading vertex. The total width is capped against the frame, not just against the Thickness control, so a loud passage cannot turn one comet into a smear across the composition.
A strand has a lifetime staggered per index so the field never dies and respawns in lockstep, and it loses life every frame. Beats revive it: on each latched beat one quarter of the field, chosen round robin, has its life topped back up. The result is the engine's stated behaviour as literal mechanics rather than as a global opacity ramp, which is that trails dissipate and the beat brings them back.
Trail decay does a second job worth knowing about. As well as fading the backdrop on the main canvas, it shapes the opacity of the history that is redrawn each frame, normalised around the shipped default. Overlay layers are cleared before every frame, so without that second path the control would have been silently inert on every overlay. This mode ships 34 strands, a trail length of 2.6 and a speed of 0.26.
Drum and bass, breakbeat, trap, anything with a busy top end, and any track where you want visible motion without a fixed centre. It is a light scene to run, with a published budget of 64 elements and 28 on mobile, which matters for a long upload. Open Comet Shower or jump to the editor.
If you want the same engine with a filled shape rather than a stroke, The Ribbon Flow Mode: Why a Ribbon Is Not a Thick Line is the mode that answers that, and Beat Sync Explained covers the latch that revives these strands.
Reviewed by the editorial team. Report a correction.
Anonymous. Only this page’s address and your yes/no are recorded, and only if you allowed analytics cookies.
Ready to make your own?
Open the editor, drop in a track, and export a watermark-free video: free, no account.
Open the Editor