Project 1: Surface Compression

Assigned: Thursday, September 26

Due: Tuesday, October 15 before 5:00 p.m.




Overview

You will implement a geometry compression system that can both compress and decompress triangulated surface meshes using the Edgebreaker algorithm. Before beginning the project, I recommend that you read both Edgebreaker papers, paying particular attention to the pseudo-code.

Requirements

For full credit, your project must meet the following requirements:

Functionality
You should be able to successfully compress and decompress the provided reference models (see below).

Inter-operability
You should be able to demonstrate that your system can correctly interoperate with the Edgebreaker reference implementation. In particular, this means that you will need to support the data formats used by the reference implementation. For our purposes, inter-operability means that you can decode files encoded by the reference code, and that it can decode files that you encode.

Code Critique
I expect that your implementation will be substantively different from the reference implementation. You should submit a specific and thorough written discussion of the ways your design differs from the reference implementation and what ideas you borrowed from it. Because it should be thorough, you should expect to write a non-trivial document, probably 2 pages at minimum.

Quality Code
Your code should be efficient and well-written. It should be easy to follow and demonstrate quality design.

Reference Models

The file format used here is a very limited subset of the Wavefront OBJ format. The files consist of a series of lines:

v x1 y1 z1
v x2 y2 x2
.
.
.
f i1 j1 k1
f i2 j2 k2
.
.
.

Each v line defines a new vertex. Vertices are implicitly numbered by their order of appearance starting with 1. Each f line defines a triangle by giving the integer IDs of the vertices which forms its 3 corners.

Handin

You must hand in all the following things:

  1. All source code that you have written.
  2. Any other file necessary to make your software compile.
  3. A plain text, HTML, or PDF file containing your code critique.

To actually hand in your project:

  1. Package all your files in a single archive (either .zip or .tar.gz are acceptable).
  2. E-mail this archive to me at garland+handin@cs.uiuc.edu prior to the handin deadline. If your project is too large for e-mail, you can contact to make other handin arrangements.

Last modified: 09/26/02 15:11:53 CDT