To be able to run this code, you need KNITRO solver installed on your system.

Enter

CanonicalPoseOptimizer glasses.mesh 20000

where the first param is the input tetmesh to be unfolded, and the second param is the regularization weight, which is \alpha = 5K by default; if you think the process is taking unnecessarily long, you may want to play with \alpha as the current value may be implying an infeasible solution. For rope.mesh, \alpha = 50K takes ~300 seconds on 2.53GHz 8GB-ram PC; \alpha = 20K takes ~200 seconds.

Output, i.e., unfolded mesh, is fprinted to out<inputFileName>.off and out<inputFileName>.mesh, where the former is the triangular surface mesh, and the latter is the tetrahedral mesh with that surface.

We convert all potential triangular mesh files (obj/ply/off format) into tetrahedral meshes (.mesh format) using the Matlab script pointed out by the authors of [Jacobson et al. 2013]: http://www.scriptspot.com/3ds-max/scripts/mesh-fixing-tools.

Please cite:

Detail-preserving Mesh Unfolding for Non-rigid Shape Retrieval, Y. Sahillioglu and L. Kavan, ACM Transactions on Graphics, 2015.



--ysf
