This is a computational study of bottlenecks on algebraic varieties. The bottlenecks of a smooth variety X⊆Cn are the lines in Cn which are normal to X at two distinct points. The main result is a numerical homotopy that can be used to approximate all isolated bottlenecks. This homotopy has the optimal number of paths under certain genericity assumptions. In the process we prove bounds on the number of bottlenecks in terms of the Euclidean distance degree. Applications include the optimization problem of computing the distance between two real varieties. Also, computing bottlenecks may be seen as part of the problem of computing the reach of a smooth real variety and efficient methods to compute the reach are still to be developed. Relations to triangulation of real varieties and meshing algorithms used in computer graphics are discussed in the paper. The resulting algorithms have been implemented with Bertini [4] and Macaulay2 [17].