1 Introduction
Given two isometric poses of the same nonrigid object as triangular meshes and with known pointtopoint correspondences, we aim to find a smooth isometric deformation between the poses. Interpolating smoothly between two given poses is called morphing. We achieve this by finding shortest paths in an appropriate shape space similar to the approach by Kilian et al. [9]. We propose a novel shape space.
A deformation of a shape represented by a triangular mesh is isometric if and only if all edge lengths are preserved during the deformation [9]. This property holds because each face of the mesh is a triangle. A deformation of a shape is called most isometric if the sum of the squared differences between the corresponding edge lengths of the two shapes is minimized. In this paper, we examine isometric deformations of general triangular meshes in and of triangulated polygons, which are triangular meshes with no interior vertices. We introduce a new shape space for triangulated polygons that has the property that interpolating linearly in shape space corresponds to the most isometric morph in . We then extend this shape space to arbitrary triangulations in using a heuristic approach. Furthermore, we discuss a modification of the shape space that is useful for isometric skeleton morphing.
2 Related Work
Computing a smooth morph from one pose of a shape in two or three dimensions to another pose of the same shape has numerous applications. For example in computer graphics and computer animation this problem has received considerable attention [11, 2]. A recent survey on this topic was written by Alexa [1]. We only review the work most relevant to this paper.
Before considering morphing threedimensional mesh models, the twodimensional version of the problem has received considerable attention. In the case where the input is sampled over a regular domain, this problem is called image morphing. Imagemorphing is widely studied and surveyed by Wolberg [21]. In the case where the input is sampled over an irregular domain, the problem is to interpolate between two simple polygons in the plane. We only review work that makes use of intrinsic representations of the polygons. Sederberg et al. [14] propose to interpolate an intrinsic representation of twodimensional polygons, namely the edge lengths and interior angles of the polygon. Surazhsky and Gotsman [19] morph by computing mean value barycentric coordinates based on an intrinsic representation of triangulated polygons. This method is guaranteed to be intersection free. Iben et al. [8] morph planar polygons while guaranteeing that no selfintersections occur using an approach based on energy minimization. This approach can be constrained to be as isometric as possible.
Sun et al. [18] morph between threedimensional manifold meshes. They extend the approach by Sederberg et al. [14] to three dimensions by extending the intrinsic representation to polyhedra. However, the developed methods are computationally expensive [1]. We propose a different intrinsic representation of triangular meshes that offers the advantage of producing the most isometric morph and of being efficient.
Sorkine and Alexa [17] propose an algorithm to deform a surface based on a given triangular surface and updated positions of few feature points. The surface is modeled as a covering by overlapping cells. The deformation aims to deform each cell as rigidly as possible. The overlap is necessary to avoid stretching along cell boundaries. The deformation is based on minimizing a global nonlinear energy function that is simple to implement. The energy is guaranteed to converge. However, since the energy function may have multiple minima, the algorithm is not guaranteed to find the global minimum. The approach tends to preserve the edge lengths of the triangular mesh. This property depends upon finding a global minimum of the energy function. One cannot guarantee to find this global minimum.
Recently, Zhou et al. [24] proposed a new method to deform triangular meshes based on the Laplacian of a graph representing the volume of the triangular mesh. The method is shown to prevent volumetric details to change unnaturally.
Recently, Kilian et al. [9] used shape space representations to guide morphs and other more general deformations between shapes represented as triangular meshes. Each shape is represented by a point in a highdimensional shape space and deformations are modeled as geodesics in shape space. The geodesic paths in shape space are found using an energyminimization approach. Before Kilian et al. [9] presented the use of a shape space for shape deformation and exploration of triangular meshes, shape space representations were developed to deform shapes in different representations. Cheng et al. [5] proposed an approach that deforms shapes given in skin representation, which is a union of spheres that are connected via blending patches of hyperboloids, with the help of a suitable shape space. Furthermore, algorithms for deforming curves with the help of shape space representations were proposed by Younes [23] and Klassen et al. [10]. Eckstein et al. [6] propose a generalized gradient descent method similar to the approach by Kilian et al. that can be applied to deform triangular meshes. All of these approaches depend on solving a highly nonlinear optimization problem with many unknown variables using numerical solvers. It is therefore not guaranteed that the globally optimal solution is found.
In this paper, we propose a novel shape space with the property that interpolating linearly in shape space approximates the most isometric morph in . For triangulated polygons, we prove that the linear interpolation in shape space corresponds exactly to the most isometric morph in . For arbitrary triangulated manifolds in , we provide a heuristic approach to find the morph. This heuristics is an extension of the approach developed for polygons. The proposed methods do not require solving a minimization problem.
3 Theory of Shape Space for Triangulated Polygons
This section introduces a novel shape space for triangulated polygons with the property that interpolating linearly in shape space corresponds to the most isometric morph in . The dimensionality of the shape space is linear in the number of vertices of the deformed polygon.
We start with two triangulated polygons and corresponding to two nearisometric poses of the same nonrigid object. We assume that the pointtopoint correspondence of the vertices and are known. Furthermore, we assume that both and share the same underlying mesh structure . Hence, we know the mesh structure with two sets of ordered vertex coordinates and in , where is an outerplanar graph. We will show that we can represent and as points and in a shape space , such that each point that is a linear interpolation between and corresponds to a triangular mesh isometric to and in .
As we know the pointtopoint correspondence of the vertices and , we can find the best rigid alignment of the two shapes by solving an overdetermined linear system of equations and by modifying the solution to ensure a valid rotation matrix using an approach similar to the one used for camera calibration [20].
Let consist of vertices. As is a triangulation of a polygon with vertices, has edges and triangles. We assign an arbitrary but fixed order on the vertices, edges, and faces of . The shape space is defined as follows. The first coordinates of a point correspond to the coordinates of the first vertex in . Coordinates and of correspond to the direction of the first edge of incident to in spherical coordinates. The next coordinates of are the lengths of the edges in in order. The final coordinates of describe the outer normal directions of the triangles in in spherical coordinates, in order. Hence, the shape space has dimension .
In the following, we prove that interpolating linearly between and in shape space yields the most isometric morph. To interpolate linearly in shape space, we interpolate the edge lengths by a simple linear interpolation. That is, , where is the th coordinate of
. The normal vectors are interpolated using geometric spherical linear interpolation (SLERP)
[15]. That is, , where is the angle between the two directions that are interpolated.Note that the relative rigid alignment of and in has an influence on the linear interpolation. That is, the interpolating shape space point varies as the relative rigid alignment of and in changes. The change occurs because the angles between the normal vectors of change as a result of the rigid transformation. This is the reason we choose to find the best rigid alignment of and before transforming the polygons into .
To study interpolation in shape space, we make use of the dual graph of . The dual graph has a node for each triangle of . We denote the dual node corresponding to face of by . Two nodes of are joined by an arc if the two corresponding triangles in share an edge. We denote the dual arc corresponding to an edge of by . Note that because meshes a polygon, it is an outerplanar triangular graph and so the dual graph of is a binary tree. An example of a mesh with its dual graph is shown in Figure 1.
Theorem 1
Let be the underlying mesh structure of the triangulated polygons and . The linear interpolation between and in shape space for has the following properties:

The mesh that corresponds to is uniquely defined and has the underlying mesh structure . We can compute this mesh using a traversal of the binary tree in time.

If and are isometric, then is isometric to and . If and are not perfectly isometric, then each edge length of linearly interpolates between the corresponding edge lengths of and .

The coordinates of the vertices of are a continuous function of .

Part 1: To prove uniqueness, we start by noting that the first vertex of is uniquely determined by the first three coordinates of . The direction of the first edge of incident to is uniquely determined by coordinates and of , because each point on the unit sphere determines a unique direction in . The length of each edge of is uniquely determined by the following coordinates. Furthermore, the outer normal of each triangle is uniquely determined by the following coordinates, because each point on the unit sphere determines a unique direction in . Hence, the edge is uniquely determined. For a triangle containing , we now know the position of two vertices of , the plane containing , and the three lengths of the edges of . Assuming that the normal vectors in shape space represent righthand rule counterclockwise traversals of each triangle, this uniquely determines the position of the last vertex of . We can now determine the coordinate of each vertex of uniquely by traversing . We start the traversal of at . Recall that the coordinates of the vertices of triangle are known. Hence, when traversing an arc incident to , we know the vertex coordinates of the shared edge between the two triangles corresponding to endpoints of . Denote the endpoint of not corresponding to by . For , we now know the position of two vertices of , the plane containing , and the three lengths of the edges of . Hence, we can compute the position of the last vertex of . Because we now know the coordinates of all the vertices of , we can traverse all of the arcs in incident to . In this fashion, we can set all of the vertex coordinates of by traversing . Because is a tree, it is cyclefree. Hence, the coordinates of each vertex of are set exactly once. Because the complexity of is , the algorithm terminates after steps.
It remains to prove that is a valid triangular mesh, that is, that the three edge lengths of each triangle of satisfy the triangle inequality. We assume that both input meshes were valid triangular meshes. Hence, for any triangle with edge lengths in and in , the following inequalities hold:
and
In , due to the linear interpolation of the end positions. Hence, Similarly, we can show that and . Hence, is a valid triangular mesh.
Part 2: The edge lengths of are linear interpolations between the edge lengths of and . Hence, the claim follows.
Part 3: When varying continuously, the point varies continuously. Hence, the coordinate of the lengths of all the edges vary continuously. Because a direction varies continuously if and vary continuously, the normal directions vary continuously. Because all the vertex positions of the mesh are uniquely determined by continuous functions of those quantities, all vertex positions of vary continuously.
Note that we do not need to solve minimization problems to find the shortest path in shape space as in Kilian et al. [9]. The only computation required to find an intermediate deformation pose is a graph traversal of .
Because has complexity , we can traverse in time. Hence, we can compute intermediate deformation poses in time each. We denote this the polygon algorithm in the following.
4 Theory of Shape Space for Skeleton Morphing
A very similar shape space to the one presented in Section 3 can be used to isometrically morph between two topologically equivalent skeletons. Let a skeleton in be a set of joints connected by links arranged in a treestructure. That is, we can consider a skeleton to be a tree in consisting of vertices and edges.
The shape space presented in Section 3 can be simplified to a shape space for skeletons in with the property that interpolating linearly in shape space corresponds to the most isometric morph in . The dimensionality of the shape space is linear in the number of links of the skeleton.
We start with two skeletons and corresponding to two nearisometric poses. We assume that the pointtopoint correspondence of and are known. Hence, we know the tree structure with two sets of ordered vertex coordinates and in . As before, we first find the best rigid alignment of the two skeletons.
The skeleton shape space is defined in a similar way as . We assign an arbitrary but fixed root to and traverse the edges of in a depthfirst order. We assign an arbitrary order to the edges incident on each vertex of . The first coordinates of correspond to the coordinates of the root in . The next coordinates of are the lengths of the edges in in depthfirst order. The final coordinates of describe the unit directions of the edges in spherical coordinates in depthfirst order. All edges are oriented such that they point away from the root. Note that the shape space has dimension .
Interpolating linearly between points in is performed the same way as interpolating linearly between points in . Namely, edge lengths are interpolated linearly and unit directions are interpolated via SLERP. With a technique similar to the proof of Theorem 1, we can prove the following theorem. In the proof, we do not need to consider a dual graph, but we can simply traverse the tree in depthfirst order to propagate the information.
Theorem 2
Let be the underlying tree structure of the skeletons and . The linear interpolation between and in shape space for has the following properties:

The skeleton that corresponds to is uniquely defined and has the underlying tree structure . We can compute this tree using a depthfirst traversal of the tree in time.

If and are isometric, then is isometric to and . If and are not perfectly isometric, then each edge length of linearly interpolates between the corresponding edge lengths of and .

The coordinates of the vertices of are a continuous function of .
This theorem allows us to morph isometrically between the skeletons of two shapes corresponding to two postures of the same articulated object in time. Figure 2 shows an example of such a morph.
(a)  (b)  (c) 
In the remainder of this paper, we will focus our attention on morphing between triangular meshes.
5 Generalization to Triangular Meshes
This section extends the shape space from Section 3 to arbitrary connected triangular meshes. However, we can no longer guarantee the properties of Theorem 1, because the dual graph of the triangular mesh is no longer a tree.
Given two triangular meshes and corresponding to two nearisometric poses of the same nonrigid object with known pointtopoint correspondence, we know one mesh structure with two sets of ordered vertex coordinates and in .
As before, we can use this information to find the best rigid alignment in . We do this before representing the shapes in a shape space. As outlined above, this alignment has a major influence on the result of the morph.
As before, we can represent and as points and in a shape space using the same shape space points as in Section 3. Let be the linear interpolation of and in , where the linear interpolation is computed as outlined in Section 3. The existence of a mesh that has the underlying mesh structure and that corresponds to is no longer guaranteed. This can be seen using the example shown in Figure 3. Figure 3(a) and (b) show two isometric meshes and . The dual graph of the mesh structure is a simple cycle. Note that although the start and the end pose are isometric, we cannot find an intermediate pose that satisfies all of the interpolated normal vectors with SLERP and that is isometric to and .
(a)  (b) 
Let consist of vertices. As is a planar graph, has edges and triangles. The shape space is defined using the same shape space points as in Section 3. The shape space has dimension . As before, we interpolate linearly in shape space by interpolating the edge lengths by a simple linear interpolation.
Observation 1
Given a triangular mesh with underlying mesh structure , point in is uniquely determined. However, the inverse operation, that is computing a triangular mesh given a point , is illdefined.
This is illustrated in Figure 3.
To compute a unique triangular mesh given a point that linearly interpolates between and , such that approximates the information given in well, we use the dual graph of . Unlike in Section 3, is not necessarily a tree. Our algorithm therefore operates on a minimum spanning tree of . The tree is computed by assigning a weight to each arc of . The weight of is equal to the difference in dihedral angle of the supporting planes of the two triangles of corresponding to the two endpoints of . That is, we compute the dihedral angle between the two supporting planes of the two triangles of corresponding to the two endpoints of for the start pose and for the end pose , respectively. The weight of is then set as the difference between those two dihedral angles, which corresponds to the change in dihedral angle during the deformation. The weight can therefore be seen as a measure of rigidity. The smaller the weight, the smaller the change in dihedral angle between the two triangles during the deformation, and the more rigidly the two triangles move with respect to each other. As is a minimum spanning tree, contains the arcs corresponding to the most rigid components of .
Similar to Section 3, we compute by traversing . However, unlike in Section 3, setting the vertex coordinates of a vertex of using two paths from the root of to two triangles containing can yield two different resulting coordinates for . An example of this situation is given in Figure 4, where the coordinates of can be set by traversing the arcs , and of or by traversing the arcs , and of starting at . We call the different coordinates computed for in candidate coordinates of . Our algorithm computes the coordinates of each vertex as the average of all the candidate coordinates of .
Let us analyze the maximum number of candidate coordinates that can occur for a vertex in . Let denote an edge of such that is in . Let denote the vertex of opposite in the triangle corresponding to an endpoint of , such that the coordinates of are computed when traversing . This situation is illustrated in Figure 5. Let and denote the total number of candidate coordinates of the two endpoints of . By traversing , we compute candidate coordinates for . We can therefore bound the number of candidate coordinates of computed using the path through by . Note that the number of candidate coordinates for the two endpoints of the first edge is one. Furthermore, each vertex can be reached by at most paths in , where denotes the degree of vertex in . As each path in has length at most , where is the number of triangles of , we can bound the total number of candidate coordinates in by , where is the vertex set of .
Our algorithm finds a triangular mesh corresponding to that is isometric to and if such a mesh exists, because all of the candidate coordinates are equal in this case and taking their average yields the desired result. If there is no isometric mesh corresponding to , our algorithm finds a unique mesh that weighs all the evidence given by equally. By choosing as a minimum spanning tree based on weights representing rigidity, we allocate rigid parts of the model more emphasis than nonrigid parts. The reason for this is that in most nearisometric morphs, triangles close to nonrigid joints are deformed more than triangles in mainly rigid parts of the model. We conclude with the following Lemma.
Proposition 1
Let and denote two isometric connected triangular meshes and let and denote the corresponding shape space points, respectively. We can compute a unique triangular mesh approximating the information given in the linear interpolation of and , in exponential time. We find a triangular mesh corresponding to that is isometric to and if such a mesh exists.
The algorithm can easily be extended to work for a nonconnected triangular mesh by removing rigid transformations for each connected component of using local coordinate systems. We can then adapt the algorithm by finding the dual graph and a minimum spanning tree for each connected component of . With this information, we can traverse the graph as described above. We denote this the exponential algorithm in the following.
6 Efficient Algorithm to Deform Triangular Meshes
As the exponential algorithm is limited for pragmatic reasons to triangular meshes with few vertices, this section describes a more computationally efficient algorithm to find the deformed poses.
To compute a unique triangular mesh given a point that linearly interpolates between and , such that approximates the information given in well, we use the minimum spanning tree of the dual graph of as before. An approach that reduces the total number of candidate coordinates of each vertex of to is to restrict to one the number of times each edge of can be traversed. We traverse in depthfirst order. When an edge is traversed, we add candidate coordinates to one vertex as shown in Figure 5. However, we only add at most a linear number of candidate coordinates to as described below. Denote the vertices of by and , denote the number of candidate coordinates that were added to and , respectively, during the traversal of before traversing the edge by and , and let be the vertex of that was updated more recently in the traversal of . Let the candidate coordinates of (, respectively) be given by (, respectively) ordered from the least recently to the most recently added candidate coordinate. When traversing , we add candidate coordinates to by computing coordinates of based on the candidate pairs .
This strategy computes candidates per vertex of , and hence a total of candidates, thereby avoiding the computation of an exponential number of candidate coordinates. To find the final coordinate of a vertex , we average all of the candidate coordinates of . We denote this the averaging algorithm in the following.
The averaging approach was found to yield satisfactory results in all test cases. Just as in the algorithm by Kilian et al. [9], the results depend heavily on the initial rigid alignment of the shapes.
Furthermore, the results of the averaging algorithm depend on the order of the vertices and edges in . Recall that the first vertex and its first incident edge are known. As we limit the number of times an edge of can be traversed, not all of the information is propagated through the graph. Hence, the first vertex and the first edge influence the final result. We can eliminate this dependence at the cost of a higher running time by taking shape spaces; one with each possible oriented edge as first edge. The running time of this algorithm is , which is too high for practical applications. We therefore can also use a smaller number of first edges that are found using Voronoi sampling [7]. If samples are used, the running time of the algorithm becomes and the influence of the first edge is expected to be low. We do not include experiments obtained using these extensions of the approach as the averaging algorithm yields similar results as the less efficient algorithms in all of our experiments.
7 Experiments
This section presents experiments using the algorithms presented in this paper. We show exact morphs of triangulated polygons, morphs of models with few vertices computed using the exponential algorithm, and morphs of larger triangular meshes using the averaging algorithm.
The experiments were conducted using an implementation in C++ on an Intel (R) Pentium (R) D with 3.5 GB of RAM. OpenMP was used to improve the efficiency of the algorithms. To compute the minimum spanning tree , the boost graph library [16] was used.
7.1 Deforming Triangulated Polygons
We demonstrate the efficient polygon algorithm using the simple polygon shown in Figure 7. We deform the polygon shown in Figure 7 (a) to the polygon shown in Figure 7 (i). The morph is illustrated in Figures 7 (b)(h). All of the intermediate poses are isometric to the start and end poses. The overlayed poses are shown in Figure 6. The running time of this example is less than 1 second.
(a)  (b)  (c)  (d)  (e)  (f)  (g)  (h)  (i) 
7.2 Deforming General Triangular Meshes
We present experimental results for the exponential algorithm and the averaging algorithm. First, we run the exponential algorithm on one model with few vertices to demonstrate the quality of the results. The model we use to test the approach is shown in Figure 8. We aim to smoothly and isometrically deform the pose shown in Figure 8(a) to the pose shown in Figure 8(i). As mentioned above, there is no isometric deformation between the poses that interpolates the triangle normals. The result of our algorithm is shown in Figures 8(b)(h). Note that all triangle normals are interpolated and the symmetry of the model is preserved. Furthermore, all edge lengths with the exception of the edges of the four top faces are interpolated.
(a)  (b)  (c)  (d)  (e)  (f)  (g)  (h)  (i) 
Second, we demonstrate the quality and efficiency of the averaging algorithm. The first experiment morphs between animated poses of the armadillo model. The models are chosen from the AIM@SHAPE repository ^{1}^{1}1http://shapes.aimatshape.net/releases.php. The models contain triangles and vertices. Testing our algorithms on these models emphasizes the practical use of our method. The results are shown in Figure 9. Note that the intermediate poses are visually pleasing. Although some small bumps appear on the right arm of the armadillo in Figure 9 (b) and on the left arm of the armadillo in Figure 9 (e), most details are preserved during the morph.
(a)  (b)  (c) 
(d)  (e)  (f) 
Figure 10 shows the morph between two poses of a model of a human being. The deformed pose of the model was found using the automatic technique by Baran and Popović [3]. The models contain vertices. The two given meshes are shown in Figures 10(a) and (i). Intermediate poses using the averaging algorithm are shown in Figures 10(b) to (h). Note that although small bumps appear on the leg of the morphed surface, the morphs are intuitive.
(a)  (b)  (c)  (d)  (e)  (f)  (g)  (h)  (i) 
Furthermore, we morph between heads from the CAESAR database [13]. The correspondence between the two head models was found using the approach by Xi et al. [22]. The models contain 11102 vertices. The two given meshes are shown in Figures 11(a) and (i). Intermediate poses obtained using the averaging algorithm are shown in Figure 11 (b) to (h). Note that the morphs are visually pleasing.
(a)  (b)  (c)  (d)  (e)  (f)  (g)  (h)  (i) 
Finally, we morph between a few poses of the Alien model shown in Figure 12. The Alien model is chosen from the Princeton Shape Benchmark^{2}^{2}2http://shape.cs.princeton.edu/benchmark/ and animated to obtain multiple postures with known correspondences using the automatic technique by Baran and Popović [3]. All of the Alien models contain vertices. The results are shown in Figure 12 and we can see that all of the morphs are visually pleasing.
For all of the experiments conducted, we measured the time efficiency to compute one intermediate pose at and the energy
where is the set of edges of , and are the vertices of in , denotes the Euclidean distance between and , and is the desired length for stored in . The running times and the quality of the results are summarized in Table 1. Note that the developed implementation is nonoptimized and experimental. The running times might be improved by implementing some of the algorithms on the GPU.
Alien Row 1  Alien Row 2  Human  Head  Armadillo Row 1  Armadillo Row 2  
429  429  10002  11102  165954  165954  
time (sec)  8  10  1813  1763  
0.000719  0.000064  0.042674  0.003583  12277.92  70637.80 
8 Conclusion
We presented an approach to morph efficiently between isometric poses of triangular meshes in a novel shape space. The main advantage of this morphing method is that the most isometric morph is always found in linear time when triangulated polygons are considered. For general triangular meshes, the approach cannot be proven to find the optimal solution. However, this paper presents an efficient heuristic approach to find a morph for general triangular meshes that does not depend on solving a nonlinear optimization problem.
The presented experimental results demonstrate that the heuristic approach yields visually pleasing results. The approach is not invariant with respect to the order of the vertices of the mesh, but can be modified to have this property at the cost of a higher running time.
An interesting direction for future work is to find an efficient way of morphing triangular meshes while guaranteeing that no selfintersections occur. For polygons in two dimensions, this problem was solved using an approach based on energy minimization [8].
Acknowledgments
We thank Martin Kilian for sharing his insight on the topic of shape spaces with us. We thank Pengcheng Xi for providing us the data for the head experiment.
References
 [1] Marc Alexa. Recent advances in mesh morphing. Computer Graphics Forum, 21(2):173–196, 2002.
 [2] Helmut Alt and Leonidas J. Guibas. Discrete Geometric Shapes: Matching, Interpolation, and Approximation. In: JörgRüdiger Sack and Jorge Urrutia (Editors). The handbook of computational geometry, pages 121–153. Elsevier Science, 2000.
 [3] Ilya Baran and Jovan Popović. Automatic rigging and animation of 3d characters. ACM Transactions on Graphics, 26(3), 2007.
 [4] Christopher M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.
 [5] HoLun Cheng, Herbert Edelsbrunner, and Ping Fu. Shape space from deformation. In Proceedings of the 6th Pacific Conference on Computer Graphics and Applications, pages 104–113, 1998.
 [6] Ilya Eckstein, JeanPhilippe Pons, Yiying Tong, C. C. Jay Kuo, and Mathieu Desbrun. Generalized surface flows for mesh processing. In Symposium on Geometry Processing, pages 183–192, 2007.
 [7] Yuval Eldar, Michael Lindenbaum, Moshe Porat, and Yehoshua Zeevi. The farthest point strategy for progressive image sampling. IEEE Transactions on Image Processing, 6(9):1305–1315, 1997.
 [8] Hayley N. Iben, James F. O’Brien, and Erik D. Demaine. Refolding planar polygons. In Proceedings of the 2006 Symposium on Computational Geometry, pages 71–79, 2006.
 [9] Martin Kilian, Niloy J. Mitra, and Helmut Pottmann. Geometric modeling in shape space. ACM Transactions on Graphics, 26(3), 2007. Proceedings of SIGGRAPH.
 [10] Eric Klassen, Anuj Srivastava, Washington Mio, and Shantanu Joshi. Analysis of planar shapes using geodesic paths on shape spaces. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26:372–383, 2004.
 [11] Francis Lazarus and Anne Verroust. Threedimensional metamorphosis: a survey. The Visual Computer, 14:373–389, 1998.
 [12] Judea Pearl. Probabilistic Reasoning in Intelligent Systems. Morgan Kaufmann, 1988.
 [13] Kathleen Robinette, Hans Daanen, and Eric Paquet. The caesar project: A 3d surface anthropometry survey. In 3D Digital Imaging and Modeling, pages 180–186, 1999.
 [14] Thomas W. Sederberg, Peisheng Gao, Guojin Wang, and Hong Mu. 2d shape blending: an intrinsic solution to the vertex path problem. In SIGGRAPH ’93: Proceedings of the 20th annual conference on Computer graphics and interactive techniques, pages 15–18, 1993.
 [15] Ken Shoemake. Animating rotation with quaternion curves. In SIGGRAPH ’85: Proceedings of the 12th annual conference on Computer graphics and interactive techniques, pages 245–254, 1985.
 [16] Jeremy G. Siek, LieQuan Lee, and Andrew Lumsdaine. The boost graph library: user guide and reference manual. AddisonWesley Longman Publishing Co., Inc., 2002.
 [17] Olga Sorkine and Marc Alexa. Asrigidaspossible surface modeling. In SGP ’07: Proceedings of the fifth Eurographics symposium on Geometry processing, pages 109–116, 2007.
 [18] Yue Man Sun, Wengping Wang, and Francis Chin. Interpolating polyhedral models using intrinsic shape parameters. The Journal of Visualization and Computer Animation, 8(2):81–96, 1997.
 [19] Vitaly Surazhsky and Craig Gotsman. Intrinsic morphing of compatible triangulations. International Journal of Shape Modeling, 9:191–201, 2003.

[20]
Emanuele Trucco and Alessandro Verri.
Introductory Techniques for 3D Computer Vision.
Prentice Hall, 1998.  [21] George Wolberg. Visual computer. Science, 14:360–372, 1998.
 [22] Pengcheng Xi, WonSook Lee, and Chang Shu. Analysis of segmented human body scans. In Graphics Interface, 2007.
 [23] Laurent Younes. Optimal matching between shapes via elastic deformations. Journal of Image and Vision Computing, 17(5,6):381–389, 1999.
 [24] Kun Zhou, Jin Huang, John Snyder, Xinguo Liu, Hujun Bao, Baining Guo, and HeungYeung Shum. Large mesh deformation using the volumetric graph laplacian. ACM Transactions on Graphics, 24(3):496–503, 2005.