3D compression made simple: Edgebreaker with ZipandWrap on a corner-table

Edgebreaker is a simple technique for compressing three-dimensional triangle meshes. We introduce here a new formulation of Edgebreaker, which leads to a very simple implementation. We describe it in terms of a simple data structure, which we call the Corner Table. It represents the connectivity of any manifold mesh as two tables, V and O, such that for a corner c, which is the association of a triangle with a vertex, V[c] is an integer reference to the vertex of c and O[c] is an integer reference to the opposite corner. For meshes that are homeomorphic to a sphere, Edgebreaker encodes these two tables with less than 2 bits per triangle. It compresses vertex locations using Touma and Gottsman's parallelogram predictor. We also present a new decompression, inspired by the Wrap&Zip decompression technique developed in collaboration with Andrzej Szymczak. We call it Zip&Wrap, because it works in the inverse direction from Wrap&Zip and zips cracks in the reconstructed mesh sooner. The detailed source code for the compression and the decompression algorithms fits on a single page. A further improvement of the codebook of Edgebreaker, developed with D. King, guarantees no more than 1.73 bits per triangle for the connectivity. Entropy encoding reduces this cost in practice to less than a bit per triangle when the mesh is large. Through minor modifications, the Edgebreaker algorithm has been adapted to manifold meshes with holes and handles, to non-triangle meshes, and to non-manifold meshes. A Corner-Table implementation of these is described elsewhere.