A grid that ripples where you touch it - with real wave propagation, not a glow following the pointer. Each gesture drops an impulse that then lives on its own: its radius grows at the wave speed, its amplitude decays, and a wave packet centred on the front gives one crest and one trough with nothing behind. You see a ring expand and die, not a smear.
Impulses add up, so several rings genuinely interfere. The displacement is radial and vector-based, so the grid bulges and hollows rather than just brightening.
Dots, ticks or crosses; grid spacing, wave speed, damping and amplitude are yours, and idle ripples can keep the surface alive with no cursor at all.
Range tests run on squared distances before any square root, and the marks are drawn in six intensity bands - six fills per frame whatever the density. Canvas, nothing loaded from outside. Honours prefers-reduced-motion and freezes on the Framer canvas.
A grid that ripples where you touch it - with real wave propagation, not a glow following the pointer. Each gesture drops an impulse that then lives on its own: its radius grows at the wave speed, its amplitude decays, and a wave packet centred on the front gives one crest and one trough with nothing behind. You see a ring expand and die, not a smear.
Impulses add up, so several rings genuinely interfere. The displacement is radial and vector-based, so the grid bulges and hollows rather than just brightening.
Dots, ticks or crosses; grid spacing, wave speed, damping and amplitude are yours, and idle ripples can keep the surface alive with no cursor at all.
Range tests run on squared distances before any square root, and the marks are drawn in six intensity bands - six fills per frame whatever the density. Canvas, nothing loaded from outside. Honours prefers-reduced-motion and freezes on the Framer canvas.