how to generate tessellation cells using the Poincare disk model?

The most helpful solution I've found for my need -- cranking out the locations of vertices of each polygon -- is David Joyce's Hyperbolic Tessellations applet and its source code. This applet draws regular and quasiregular tessellations organized by polygons, so it's easy to put print statements into the update() method and output the locations of vertices of each polygon as the polygon is drawn. It's much less efficient than Hatch's code, but efficiency is not one of my requirements at this point. Clarity is much more important.

I found the explanations in Ajit Datar's master's thesis the most helpful for learning how the process of generating the tessellations works. There is also code that goes with it, which I have not yet looked at. Datar's program offers more flexibility than Joyce's applet: e.g. Datar's can build tessellations either with a polygon centered at the origin, or with a vertex at the origin; and can also tessellate "motifs" (polygons or polylines such as Escher's fish).