Areas of high curvature on a human head model

15-864 Assignment 2: Mesh Smoothing


In this short assignment you will write a command line tool (meshSmooth) to smooth polygon meshes using both Laplacian smoothing and mean curvature flow.


  1. Implement an explicit solver for both diffusion- (using the Laplacian operator and lambda=1) and curvature-based smoothing on meshes, as described in [Desbrun et al. 1999]. You may use an explicit forward Euler method to time-step the system (as described in the paper) up to a specified time, T; be cogent of the timestep restriction, however.
  2. Implement a single command line tool, "smoothMesh", that reads in an input.obj mesh, and writes out a smoothed output.obj mesh: Where it should provide options to change the amount of smoothing (end time, T), and other features as follows: Print selected/default options and parameters upon invocation of meshSmooth. Document the full list of options in your commandline tool, e.g., using "smoothMesh --help". Document how normals and texture coordinates are handled by your meshSmooth implementation.
  3. As a final step, compare the two smoothing approaches (curvature flow and Laplacian smoothing) by showing a side-by-side comparison after N iterations for a few values of N (a simple jpeg image is sufficient here). For extra coolness factor, optionally turn in a side-by-side video of the two approaches iterating.
  4. At a minimum, your program should work with the Meyer head and sphere meshes. These will demonstrate that you have correctly implemented the scale-dependent umbrella operator. It should also work with the simple roughened sphere example (this is a very simple mesh with well-conditioned triangles, so it should be an excellent one to test your code on). You can also download these meshes packaged up as a ZIP file.
  5. As usual, turn in your full source code, plus a README summarizing build instructions, answers to questions, interface details, etc.


Additional tips


NOTE: ACM Digital Library references are accessible from campus connections.
  1. Gabriel Taubin. A Signal Processing Approach to Fair Surface Design. Proceedings of SIGGRAPH 95. pp. 351-358, 1995.
  2. Mathieu Desbrun, Mark Meyer, Peter Schröder, and Alan H. Barr. Implicit Fairing of Irregular Meshes Using Diffusion and Curvature Flow.Proceedings of SIGGRAPH 99. pp. 317-324, 1999.

Questions? Contact Doug James.