2D convolution, cell by cell

A small numeric input on the left, a 3×3 kernel sliding over it, and the output filling in one cell at a time. The multiply-accumulate for the current window is written out in full, so the output value is never a black box.

Try this

Step through one window by hand, then switch the kernel and watch the same input produce a completely different output.

Input
Kernel 3×3
Output

Where this lab comes from

How 2D Convolution Works on Images: Kernels, Filters, and the Math, Interactively

2D convolution is the operation behind blur, sharpening, edge detection, and every CNN. Slide a kernel, multiply, sum: see it happen step by step in an interactive demo, apply real kernels to a live image, and get the math plus runnable OpenCV in Python and C++.

More in the image itself