{
const height = 400
const width = 600
const context = DOM.context2d(width, height);
const coordinates = new Float64Array(points.length * 20);
const voronoi = new d3.Delaunay(coordinates).voronoi([0, 0, width, height]);
context.fillStyle = color2
context.strokeStyle =color1
context.fillRect(0, 0, width, height)
while (true) {
const z = performance.now()* 0.001;
context.clearRect(0, 0, width, height);
for (let i = 0, j = -1; i < points.length; ++i) {
const [x, y] = points[i];
const t = noise(x * config.f, y * config.f, z) ;
coordinates[++j] = x + config.l;
coordinates[++j] = y + config.l * Math.sin(t);
}
context.beginPath();
voronoi.update().render(context);
context.stroke();
yield context.canvas;
}
}