  In low-dimensional topology, many important decision algorithms are based on
normal surface enumeration, which is a form of vertex enumeration over a
high-dimensional and highly degenerate polytope. Because this enumeration is
subject to extra combinatorial constraints, the only practical algorithms to
date have been variants of the classical double description method. In this
paper we present the first practical normal surface enumeration algorithm that
breaks out of the double description paradigm. This new algorithm is based on a
tree traversal with feasibility and domination tests, and it enjoys a number of
advantages over the double description method: incremental output,
significantly lower time and space complexity, and a natural suitability for
parallelisation. Experimental comparisons of running times are included.
