Edgebreaker: 3D Compression Software

In response to requests from the Industry and Academia for the source code for the Edgebreaker 3D Compression and Decompression software for triangle meshes, we have decided to make a sample implementation publicly available on the web for general use. 

This implementation was developped by Alla Safonova under the National Science Foundation grant 9721358 in the College of Computing at the Georgia Institute of Technology.

It is provided as an illustration of the simplicity of the Edgebreaker approach and has not been optimized. The authors, the Georgia Institute of Technology, and the National Science Foundation decline all responsibility regarding the correctness, reliability, and support of this software.  

The  implementation of the compression and decompression provided here is  based on the Corner Table data structure, and has been extended to support meshes with an arbitrary number of handles and with zero or one bounding loop (or hole).

The detailed pseudo-code for Edgebreaker's compression and decompression take one page each. The pseudo-code for a context-based parallelogram prediction takes half a page. All three are provided here (PDF). We also include the figures and explanations for the various contexts of the geometric prediction.

Triangle meshes with several holes should be preprocessed, so that all holes except the largest are plugged with triangle fans. Transmitting the IDs of the dummy central vertices of these fans allows the client to identify all the incident triangles and delete them to restore the holes.

To produce your own version of Edgebreaker:

Download and compile these source files to create an executable version of Edgebreaker

Check the specifications and examples for our input and output file format