A 2D convolution slides a small matrix of numbers — a kernel — over every pixel of an image. At each position, the kernel's weights are multiplied by the pixel values underneath it and summed into a single number, which becomes one pixel of the output feature map. Different weight patterns produce completely different effects: averaging weights blur, a strong center with negative neighbours sharpens, and opposite-signed weights on either side detect edges.
The "edge detect" and "sharpen" kernels shown here are still shipped in real image editors, but in a CNN the same 3×3 grid of numbers is learned from data — the network discovers which weight patterns are useful for the task by gradient descent.
Watch a 3×3 kernel sweep across an extruded 3D pixel grid in real time, computing one dot product per cell and building an output feature map beside it — the same operation that powers blur tools, edge detectors, and every convolutional neural network layer.
At every position the kernel's nine weights multiply the nine pixels beneath it and sum into a single output value, revealing exactly how blur, sharpen, edge-detect, and emboss kernels each transform the same source image differently.
Pick a kernel and a source image, then watch the scan fill in the output grid live. Adjust scan speed and height scale, or pause and restart to inspect any single step.
A CNN doesn't use hand-picked kernels like these — it learns thousands of them per layer via backpropagation, discovering weight patterns no human engineer would have designed by hand.