In my final year of undergrad, I worked on a Computational Geometry project. I implemented a mesh morpher — a tool that takes two genus-0 manifold 3D meshes and generates a smooth transformation between the two.
In short, the algorithm (introduced in this paper by Marc Alexa) worked by blowing up both meshes onto the unit sphere S (say the mappings are f and g), and using a mapping f’g, where f’ is the inverse of f defined on the entire S via interpolation, to map one mesh onto the other’s surface. One ends up with having structure of each mesh embedded on the surface of each mesh, and interpolation can be performed to generate a morph.
During my project, I defined curvature and volume based metrics for the transformations (morphs) and used them to measure quality of morphs obtained using different versions of the algorithm.
The tool required the user to provide a set of correspondences between the two input meshes. In hindsight, it would be interesting to use modern deep learning methods to generate the correspondences!
Some images produced using the tool: