Project Ideas

Your project need not be from this list. However, if you want to pick a topic not on this list you need to discuss it with me first. Each project described here builds on existing previous work; to understand what needs to be done you need to read a part of the referenced paper (typically the introduction is sufficient).
  1. Surface splines. Implement Jorg Peters' surface splines. Also see additional information here YOur implementation should work for meshes with boundaries.
  2. PCCM. Implement Patching Catmull-Clark meshes. You can use the software available on the net for reference but your implementation should be done independently, and should include boundaries.
  3. Natural parameterization. Implement the natural parameterization of Desbrun et al. and extend it to a method that guarantees absence of boundary self-intersections using a technique described in Sheffer and de Sturler's Parameterization using angle-based flattening Try to find a way to guarantee that there is no triangle flips.
  4. Mesh simplification. Implement an edge-contraction simplification algorithm with cost function similar to Garland and Heckbert's but also taking into account the effect of edge collapse on the vertex normals.
  5. Wiener subdivision. Derive and implement a subdivision scheme based on Marc Alexa's Wiener filtering of meshes
  6. Simple Manifolds. Implement Cindy Grimm's Simple Manifolds Extend to higher genus.
  7. Penrose subdivision. Derive and implement a subdivision scheme for surfaces based on Penrose tiling. (P. Prusinkiewicz's idea).
  8. Implicit surface rendering. Implement hardware-accelerated ray caster based on the Ray Engine and use it to render isosurfaces.
  9. Surface-plane intersection. Design and implement an algorithm for accurate computation of intersections of Catmull-Clark subdivision surfaces with planes. The starting point can be Bezier clipping (ask me for the copies of relevant papers).