Draw a closed contour in the left plane around some of the poles (pink). The running value of ∮ f(z) dz traces out in the right plane and should converge to 2πi × (sum of enclosed residues). Poles and their residues are editable.
A modern JavaScript + Canvas port of a 2000 Java applet by Terence Tao
(originally ResApp.java / ResGrid.java).