Fork of Sine Wave Circles
A uniform field of 300 white circles on a black background forms a horizontal sine wave that undulates vertically over time. The animation is driven by a `d3.timer` callback, which updates each circle’s `cy` attribute using its index and elapsed time inside a `Math.sin` expression. The D3 code uses `selectAll`, `data`, `enter`, and `append` to create the SVG circles, with `cx` and `r` derived from the total width and circle count. This example is a port of a classic p5.js math demonstration, implemented for D3 v7.