I saw this GLMGaussianBlurBrickRenderer class #example nice! And once I did something similiar, a Morph that blurres the underlaying display. But instead of doing a convolution (convolve image with kernel) by hand, I convolve the kernel with the image by using copyBits from the BitBlt: | form temp dest from to | form := Display contentsOfArea: self bounds. temp := Form extent: self extent depth: 32. temp getCanvas fillColor: Color white darker. dest := Form extent: self extent depth: 32. dest getCanvas fillColor: Color white darker. to := kernel size // 2. from := -1 * to. (from to: to) do: [ :i | temp copyBits: form at: i @ 0 translucent: (kernel at: i + to + 1) ]. (from to: to) do: [ :i | dest copyBits: temp at: 0 @ i translucent: (kernel at: i + to + 1) ]. aCanvas drawImage: dest at: self bounds topLeft.