Select the blur size and then click the stage or press any key to start the blur process. It will do 6 passes over all the pixels. (172800 of them.) (for each of the RGB components, horizontally and vertically.) The larger the blur, the longer it will take. Turbowarp is highly recommended! It even does super large blurs pretty well. https://turbowarp.org/719804068 This is a demo of Gaussian blurring using a separable kernel. It takes the image and makes each pixel the weighted average of it and its neighbors. The separable kernel is an optimization that allows it to do a horizontal blur and then a vertical one instead of a full 2D blur. (n + m instead of n * m.) Because of the math behind the Gaussian blur, the result is the same both ways. Computerphile on YouTube has some excellent videos about blurs and filters. That is where I originally learned about Gaussian filters and the separable kernel algorithm.
I challenge anyone who sees this to make a faster/more compact version of this algorithm!! I know there are some things that could be optimized if done differently. Thanks to @sureornot for the inspiration to take on this project. (Sorry if I am stealing your thunder...) https://scratch.mit.edu/projects/719567636/ Also, thanks to @52525rr for his fancy scanner project, which I used to scan in the sample image. https://scratch.mit.edu/projects/639793840/ And a final thanks to Sqaud / Take-Two Interactive / whoever owns KSP, whose image I used. I'm not one for stock photos, so I just took this one. https://www.kerbalspaceprogram.com/media