  We present an algorithm, based on work of the first named author, for
computing the Veech group, $\mathrm{SL}(X,\omega)$, of a translation surface
$(X, \omega)$. This presentation is informed by an implementation of the
algorithm by the second named author.
  For each stratum of the space of translation surfaces, we introduce an
infinite translation surface containing in an appropriate manner a copy of
every translation surface of the stratum. We show that a matrix is in
$\mathrm{SL}(X,\omega)$ if and only if an associated affine automorphism of the
infinite surface sends each of a finite set, the "marked" {\em Voronoi
staples}, arising from orientation-paired segments appropriately perpendicular
to Voronoi 1-cells, to another pair of orientation-paired "marked" segments.
("Segments" are also known as "saddle connections".)
  We prove a result that is of independent interest. For each real $a\ge
\sqrt{2}$ there is an explicit hyperbolic ball such that for any Fuchsian group
trivially stabilizing $i$, the Dirichlet domain centered at $i$ of the group
already agrees within the ball with the intersection of the hyperbolic
half-planes determined by the group elements whose Frobenius norm is at most
$a$. When $\mathrm{SL}(X,\omega)$ is a lattice we use this to give a condition
guaranteeing that the full group $\mathrm{SL}(X,\omega)$ has been computed.
