Mini-project 2: Basic mesh processing

CS 6501 - 2D/3D Shape Manipulation, 3D Printing

Due: Tues, March 18 (11:59 PM)

The goal of this project is to implement a few simple geometry processing algorithms such as mesh smoothing and subdivision. This will allow one to gain intuition for how to modify meshes programmatically.

Starter Code

The C++ starter code can be used if you desire. Open the solution or run make to build meshpro and mesh_view. I have included one mesh in the meshes subdirectory but more are available in a zip file. See Project 1 for more information on the starter code.

Your goal is to implement Taubin smoothing and Loop subdivision: After implementing these you should be able to use the command-line options:


Feel free to collaborate on solving the problem but write your code individually.


Submit your assignment in a zip file named

Include your code, and screenshots of before/after results of your Taubin smoothing and Loop subdivision. For Loop subdivision use a low polygon model such as in the meshes archive. Use the E key to turn on viewing of edges to verify that there are more triangles after subdivision.

Submit your zip to UVA Collab.