Petal Shower
One fall of petals from above that thins out and settles where it lands.
The canvas in this preview is the file shown here. The surrounding demo shell only provides context and is not part of the copied code.
import { useEffect, useRef } from "react";
/**
* Vibary · Petal Shower
*
* A single fall of petals from above, thickest at the start, ending in a
* scatter that stays where it landed.
*About this effect
A celebration for a moment that deserves warmth rather than noise — an order confirmed, a course finished, a milestone reached. Each petal's rotation is derived from its horizontal velocity, so it banks into its swing and flattens at the turn: a petal given an independent spin looks like a rotating sprite, while one that banks looks carried by air, and the difference is a single line. The shower ends by running out rather than by being cut off, because emission follows a decaying envelope — most petals leave in the first third of a second and the last few trail in alone — and the petals that land stay, so the effect finishes in a state rather than in an empty frame.