📐 The Hough Transform
Watch noisy edge points cast votes into Hough parameter space and see the strongest peaks turn back into detected lines and circles.
Scattered, noisy edge points on the left cast votes into a 3D Hough parameter-space accumulator on the right; where real lines or circles hide in the noise, votes pile up into a sharp orange peak that gets converted straight back into a detected shape.
🔬 What It Demonstrates
Each image point traces a curve of every parameter combination consistent with it — a sinusoid in θ–ρ space for lines, a circle in a–b space for circles. Points that truly lie on the same shape have curves that all cross at one bin, so votes accumulate; random noise points cast votes that scatter and never agree.
🎮 How to Use
Switch between line and circle detection, add noise and watch the peak get shorter and fuzzier, and drag the detection threshold to see how many bars clear the cut. In circle mode, sweep the assumed radius through the true hidden radius to watch the peak sharpen and collapse again.
💡 Did You Know?
Because it works by voting rather than exhaustively fitting shapes, the Hough transform tolerates broken, gapped or noisy edges remarkably well — which is exactly why it's still used to read lane markings and locate circular parts decades after it was first patented.
Watch noisy edge points cast votes into Hough parameter space and see the strongest peaks turn back into detected lines and circles.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install