© 2026 Greg T. Chism · MIT License

Convolutional Filters — Interactive Explorer

Watch filters slide across inputs to produce feature maps — see how stride, padding, and pooling transform spatial data


Filter
Input Pattern
Filter Type
Edit Custom Kernel
Click a cell to cycle −2→−1→0→1→2, or type any value. Press Reset to apply.
Kernel Size
Conv Parameters
Stride
Padding
Valid: output = ⌊(in − k) / s⌋ + 1
Pooling
Pool Type
Pool Size
Pool Stride
Simulation
Speed Med
What's happening?
Select a filter and press Play to watch the kernel slide across the input — each step computes a dot product to fill one output cell.
Key Concepts
What is convolution? A filter slides across the input computing dot products — detecting the same pattern everywhere in the image (translation equivariance). One filter produces one feature map.
What does stride do? Stride controls how many pixels the filter jumps at each step — larger stride = smaller output = faster computation but coarser spatial resolution.
What does padding do? Padding adds zeros around the input border. "Same" padding preserves spatial dimensions; "Valid" (no padding) shrinks the output by (k−1) pixels per side.
What does pooling do? Pooling reduces spatial dimensions by summarizing regions — max pooling keeps the strongest activation, making the network more robust to small translations in the input.
Why share weights? The same filter weights are used at every position — this drastically reduces parameters compared to a fully-connected layer and encodes the assumption that features can appear anywhere.
Step 0
(,)
Convolution Step-Through
Input 8×8
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
8 × 8 input
Kernel 3×3
·
·
·
·
·
·
·
·
·
3 × 3 kernel
Feature Map 6×6
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
6 × 6 feature map
Kernel window on input Kernel weights Computed output cell Current position
Pooling Operation
Feature Map 6×6
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
6 × 6 feature map
Pooled 3×3
·
·
·
·
·
·
·
·
·
3 × 3 output
Pool window Selected value (max / avg)
MaxPool 2×2 — takes the largest value from each 2×2 non-overlapping window. Preserves the strongest activation while halving spatial dimensions.
LeNet-style CNN Pipeline — block width ∝ channels, height ∝ spatial size
Output Shape Formula
out = ⌊(in + 2·pad − kernel) / stride⌋ + 1
Changes when you adjust Kernel Size or Stride.
Learnable Parameters
Conv1 + Conv2 + FC
Click any layer block to see its role, shape, and parameter count.
Input Conv ReLU Pool FC Output
Kernel Position
Row
Col
Step 0 / 0
Receptive Field
·
·
·
·
·
·
·
·
·
Input patch under kernel
Dot Product
Press Step or Play
to see computation
Shape Calculator
Input 8×8
Kernel 3×3
Stride 1
Padding None
Output 6×6
⌊(8 + 0 − 3) / 1⌋ + 1 = 6