This directory contains a simple version of the feature-preserving mesh smoother described in "Non-Iterative, Feature Preserving Mesh Smoothing" (Jones, Durand, & Desbrun; SIGGRAPH 2003). Also included are the meshes to which we applied our results smoother.c ---------- NOTE: there were errors in **two earlier versions** (1 and 2) of this code. They have been fixed. Patrick Min suggested an optimization for version 3. The current version is version 4 (check the top of the file). Thanks to Guofei Hu for noticing the first bug, and Romit Singhai for finding the second. The code relies on the GTS library (http://gts.sourceforge.net). The code is meant to act as a reference implementation, only. It's not commented, though the flow should be reasonably straightforward after reading the paper. The least transparent parts of the code are dealing with mollified vertices without creating a separate mesh. The filter() function maps vertex positions through a hash table to get their mollified positions in the second pass. The code does not have the spatially coherent computation optimizations that the paper describes. For this reason, it's very slow, but much more clear. NOTE: FOR THIS REASON, TIMING COMPARISONS SHOULD NOT BE PERFORMED AGAINST THIS CODE. Please contact Thouis Jones to discuss performing actual timing comparisons with our algorithm. Any questions or comments should be directed to Thouis Jones, thouis@csail.mit.edu meshes ------ The meshes are those in the paper on which we demonstrate our methods. The reference implementation should produce substantially the same mesh, though corner cases may change due to spatially coherent computation optimizations in the implementation for the paper. (I haven't tested them yet, but hope to soon.) Some of the meshes come with the following credits and limitations on use: bunny.gts, dragon.gts, dhead_noisy.gts - Thanks to the Stanford 3D Scanning Repository. dog.gts - Thanks to Jianbo Peng. Property of MRL NYU. Can not be used for commercial purposes. Credit should be given to MRL NYU if the mesh is used elsewhere. femmeN.gts - Thanks to Jean-Yves Bouguet for the initial mesh. venus.gts - Thanks to Martin Rumpf and Udo Diewald. I'm not sure of the original source of this mesh. All other meshes are the results of applying our method to one of the above meshes, and may be used under the sames limitations of their original source. EVERYTHING.tgz is a compressed tar file with the meshes and source code.