Fork of D3 selection exploration - Wavy Animation
A continuous sine wave of circles animates across the screen, with vertical positions oscillating and the number of circles subtly fluctuating between around 95 and 105 in a smooth, looping motion. The visualization uses D3.js’s `select`, `range`, and `selectAll().join()` APIs to bind simulated data to SVG circles, updating positions every frame via a `setInterval` callback. Each frame regenerates an array of x/y coordinates using trigonometric functions, directly manipulating the `cx` and `cy` attributes of the rendered SVG elements at 60 frames per second, creating a fluid, wavy effect.