void setup() { size(256, 256); background(255); noStroke(); } int frame = 0; int damping = 16; void draw() { frame = frame + 1; float maxDistance = sqrt(31 * 31 + 31 * 31); for (int y = 0; y < 32; y++) { for (int x = 0; x < 32; x++) { float distance = sqrt(x * x + y * y); float grayLevel = abs(sin(distance / maxDistance * frame / damping * PI)); fill(255 * grayLevel); float originX = x * 256 / 32 + 1 + 2.5; float originY = y * 256 / 32 + 1 + 2.5; ellipse(originX, originY, 5, 5); } } }