The Heegaard genus is a fundamental invariant of 3-manifolds. However, computing the Heegaard genus of a triangulated 3-manifold is NP-hard, and while algorithms exist, little work has been done in making such an algorithm efficient and practical for implementation. Current algorithms use almost normal surfaces, which are an extension of the algorithm-friendly normal surface theory but which add considerable complexity for both running time and implementation.

Here we take a different approach: instead of working with almost normal surfaces, we give a general method of modifying the input triangulation that allows us to avoid almost normal surfaces entirely. The cost is just four new tetrahedra, and the benefit is that important surfaces that were once almost normal can be moved to the simpler setting of normal surfaces in the new triangulation. We apply this technique to the computation of Heegaard genus, where we develop algorithms and heuristics that prove successful in practice when applied to a data set of 3,000 closed hyperbolic 3-manifolds; we precisely determine the genus for at least 2,705 of these.