PImage kitten; int gridSize = 6; void setup() { size(480, 480); smooth(); kitten = loadImage("kitten.jpg"); noStroke(); background(0); } void draw() { for (int i = 0; i < kitten.width; i += gridSize) { for (int j = 0; j < kitten.height; j += gridSize) { float greenVal = green(kitten.get(i, j)); fill(greenVal); rect(i, j, gridSize, gridSize); } } // set grid size to minimum 6, max 20 (depending on mouseX) gridSize = 6 + (14 * mouseX/width); }