I tried experimenting with the third dimension, and this is what (with Jack’s little help) came to life.
PImage possum; float increment; float z; void setup() { size(700, 393, P3D); possum = loadImage("possum.jpg"); increment = 7; noStroke(); } void draw() { background(0); possum.loadPixels(); for (int y=0; y<possum.height; y+=increment) { for (int x=0; x<possum.width; x+= increment) { int index = x + y * possum.width; color pix = possum.pixels[index]; float diam = map(brightness(pix), 0, 255, 1, 3)*(map(mouseX, 0, width, 10, 30)); pushMatrix(); translate(x, y, diam); fill(pix); box(diam/2); popMatrix(); } } possum.updatePixels(); }