Playground · Convolution

Convolution Lab.

This is the operation at the heart of the document classifiers I ship: a 3×3 kernel sliding over pixels. Draw something on the left, then watch a real convolution layer process it — conv → ReLU → max-pool, recomputed live as you draw. Drag the kernel cells to invent your own filter. Cyan = positive response, magenta = negative.

Input · 96 × 96draw with your pointer
Kernel · 3 × 3drag cells ↕ · double-click = 0

each output pixel = Σ (kernel × 3×3 patch) — exactly what a CNN computes, thousands of times per layer. Edit a cell and this becomes your filter. In a trained network, backprop finds these numbers on its own.

Pipeline
conv · 94²
→
relu · 94²
→
max-pool · 47²
Filter bank · one conv layer, six filterswhat different kernels notice
© 2026 Aayush Maharjan · vanilla JS · zero frameworks · no build step