Orbits is a python implementation of the Agol-Hass-Thurston algorithm for counting the number of equivalence classes of an equivalence relation on the set J = {1, ..., N} which is generated by gluing subintervals by isometries. This can be used, for example, to compute the number of components of a normal curve on a triangulated surface or a normal surface in a triangulated 3-manifold.
Orbits can be run in Python 2 or Python 3.