1 Introduction
Frequently, a polygon mesh is represented by its mesh combinatorics and a vector of 3D vertex coordinates, specifying the immersion of the mesh into . A polygon mesh is rigid when the only motions of the vertex coordinates for which the faces are not deformed in any way are the rigid motions (rotation and translation). Nonrigid polyhedra do exist [Bri97, Con77, Con79], although they are rare; a nonrigid polyhedron has some flexing motion in which the faces move but do not deform. That is, the dihedral angles between faces change continuously while the faces themselves remain rigid. In 1974 Herman Gluck [Glu75] proved [Gluck] A generic immersion of any mesh topology homeomorphic to the sphere is rigid. By generic we mean all vectors of vertex coordinates, except some “degenerate” subset of measure zero. So, for example, if you construct the edgeskeleton of triangulated computer graphics model, with stick edges held together at flexible joints, it almost certainly would be rigid.
Mesh deformations, in which, typically, both edge lengths and dihedrals change, is an important topic in computer graphics, computer vision and scientific shape analysis. A deformation defines a path in the space of discrete metrics  a continuous change in the vector of edge lengths. This has been quite well studied, especially for the subset of discrete conformal transformations, eg.
[SA07, BLL15, ZLL15]. But discrete metrics do not correspond to shape in any precise sense: rigidity theory tells us that a vector of edge lengths typically has multiple discrete realizations as a rigid mesh, and that it might even correspond to a flexible polyhedron.We are interested in the other possibility: characterizing a deformation by the change in its vector of dihedral angles. The first mathematical question one might ask is whether there are motions in which all the dihedral angles stay the same, but the edge lengths change. Indeed, this is trivially possible; consider a cube deforming into an arbitrary box. But notice that during such a deformation the inner face angles (the plane angles) remain unchanged. So next we ask if there are deformations in which the dihedral angles remain fixed, but the inner angles change; we call this a dihedral flex. We say that a polyhedron which does not allow a dihedral flex is dihedralrigid. It is not known if dihedralflexible polyhedra exist. Here, we prove the following analog of Gluck’s theorem: A generic immersion of any triangle mesh homeomorphic to the sphere is dihedralrigid. While interesting as a result in rigidity theory, of course this is only a small step towards a theoretical justification of the idea of representing mesh embeddings by their dihedral vectors. We also give some experimental evidence that the dihedral representation is useful and natural. We compute a morphs between two embeddings by heuristically mapping the straight line segment connecting their dihedral vectors in (Euclidean) dihedralspace onto a path in the space of embeddings. We find smooth paths connecting very different shapes, and observe that the resulting morphs seem quite natural.
2 Related work
In 1968, Stoker [Sto68] conjectured that a convex polyhedron is uniquely defined by its combinatorics and dihedral angles (and thus that it is dihedralrigid). This would be the dihedral version of Cauchy’s theorem on the rigidity of convex polyhedra [Cau13]. A fairly simple proof of Stoker’s conjecture for triangulated convex polyhedra was given by Pogorelov [Pog02]; we draw on his work as well as that of Gluck. Only recently was a complete proof of Stoker’s conjecture provided by Mazzeo and Montcouquiol [MM11], using much more sophisticated techniques and applying to the interesting case of ideal hyperbolic polyhedra as well.
In computer graphics, there is an ongoing interest in constructing shape spaces in which geodesic paths correspond to physically naturallooking morphs, which can be used for applications such as morphing, shape exploration, deformation and deformation transfer. These spaces tend to be curved and difficult to deal with, eg. [KMP07]. A recent series of papers [HRS14, HRS16, ZHRS15] explores the curved shape space implied by the elastic model of deformation. They prove that it forms a Riemannian manifold, and produce shape averages, principal components and splines in this “shell space”. Each of these operations proves to be challenging, both mathematically and computationally.
There is a practically successful line of work [BLL15, KG08, WDAH10] on interpolating mesh embeddings by interpolating both their dihedral angles and their edge lengths, and then doing some sort of leastsquares reconstruction to produce an interpolating mesh. These methods cannot realize both the dihedrals and the edge lengths exactly  there are roughly parameters and degrees of freedom in the embedding, where is the number of mesh vertices  but they are fairly simple and they provide very nicelooking results.
The space of dihedral angles was proposed recently as a representation for deformation by Paill´e et al. [PRP15], albeit for a tetrahedralized volume. Here again, we find that the number of dihedrals in a tetrahedralization is much larger than the dimension of the space of realizable meshes. Finally, [IGG01] showed that ignoring edge length and just using connectivity to reconstruct shapes is surprisingly successful.
3 Infinitesimal rigidity
One’s first instinct when considering the possibility of a dihedral flex is to consider the vertex positions as functions of some parameter , and consider the derivatives of the inner angles and dihedrals with respect to . At any point along any traditional (edge length) flex, the length derivatives at every edge, while at least some of the are nonzero. Similarly along any dihedral flex (if such a thing exists!) we expect to find an infinitesimal motion such that all , while there are inner angles for which the derivatives are nonzero. We call a polyhedron which admits such a motion dihedral infinitesimally nonrigid.
A polyhedron which is dihedral nonrigid must be dihedral infinitesimally nonrigid. It may well be possible, however, for a polyhedron to be dihedral infinitesimally nonrigid while being rigid; there are many polyhedra which are (length) infinitesimally nonrigid, but actually rigid. Following Gluck, we prove that a generic immersion of a mesh forms a polyhedron which is dihedral infinitesimally rigid, and hence dihedral rigid.
4 Dihedral infinitesimal rigidity as a matrix equation
There is a very nice relationship between the derivatives of the dihedral angles and the derivatives of the triangle inner angles , which Gluck used in his theorem on length rigidity. We have, going around the onering of any vertex ,
where is the normal to triangle , and is the unit vector in the direction of edge . This equation expresses the fact that the instantaneous angular velocities in the onering have to change in a coordinated fashion for the onering to continue to “hold together”. Their derivation appears in Appendix A. Since the edge and normal vectors have three coordinates each, we have three equations at each vertex, for a total of . Let’s call these the vertex equations.
Gluck considered the case in which we assume that the change in edge lengths, and hence the inner angle derivatives , are all zero, so that the length infinitesimally nonrigid configurations were those with
This system has equations in variables.
We make the opposite assumption, that the dihedral angles remain unchanged, so we are interested in nonzero solutions to
In our case we have equations in the variables . There are additional constraints on the variables which determine the validity of the mesh.
One is that the sum of the inner angles of any triangle add up to . Taking the derivative of this condition is gives us
We call these the face equations.
Finally, the Law of Sines implies the following differential cotangent formula for the triangles around a given onering
The derivation of this equation appears in Appendix B. We call these the cotangent equations. Together, the vertex equations, face equations and cotangent equations form a system with equations in variables.
A mesh is dihedral infinitesimally nonrigid if this system has some nonzero solution for the s, that is, if there is an infinitesimal motion of the mesh that leaves the dihedrals fixed but allows the inner angles to flex somehow, while maintaining a valid mesh.
5 Condition for a solution
Following Gluck, we observe that there is a nonzero solution for if and only if the coefficient matrix has rank less than . And for this to be true, it must be the case that every submatrix of has zero determinant. We can write this condition on the coefficient matrix itself as a system of polynomials in the matrix elements; call this system . In Gluck’s proof, he dealt with a matrix whose coefficients were themselves polynomials in the vertex coordinates of the mesh, and this allowed him to argue that the resulting variety formed a set of measure zero.
In our case, the coefficients are the face normals, ones, and the cotangents of the inner angles. These are not all polynomials in the vertex coordinates. To get around this, we treat the normals and cotangents as variables themselves; for notational clarity, let’s write . The and variables are not independent of each other. The normals must all have length one; for , we have
(1) 
In addition, the normal and cotangent variables are conveniently related to each other, and to the vertex coefficients, by the following formula.
(2) 
This formula relates the cotangent to the scaling of the crossproduct to form the triangle normal; an (easy) derivation appears in Appendix C. Note that since the crossproduct and dotproduct are both polynomial functions, this is a polynomial as well.
In order for a mesh configuration to be be dihedral infinitesimally nonrigid, we need Equations 1 and 2 to be true for every angle, as well as for all of the subdeterminants of to be zero. These conditions are all polynomial, and they define a variety (the intersection of their zerosets) in the space of the variables.
An arbitrary assignment of values to does not correspond to an immersion of the mesh; the variables are all free, but the and will not obey Equations 1 and 2. Given a choice of variables, the and variables of that embedding uniquely satisfy 1 and 2 (the normal is indeed the crossproduct, scaled as required). So there is unique lifting of the Euclidean space defined by the vertex coordinate space into space. Let be this lifting of the the vertex coordinate space, which is Euclidean. The space is similarly simply connected and dimensional.
If we have a connected component of an algebraic variety and we add an additional polynomial constraint to the system, either the the whole component satisfies the new equation, or the dimension of the new variety is reduced by the intersection with the new equation. Thus, if there is any point of which does not also satisfy the system saying that all of the subdeterminants have to be zero, the set of common zeros (the space of dihedral infinitesimally nonrigid polyhedra) has smaller dimension than , and forms a subset of measure zero.
So all we need to do to show that the dihedral infinitesimally nonrigid polyhedra form a set of measure zero is to display some point in which is not in ; that is, a dihedral infinitesimally rigid polytope. As it happens, we can do this for every mesh topology; the results of Pogorelov [Pog02] and Mazzeo and Montcouquiol [MM11] show that every convex polyhedron is dihedral infinitesimally rigid, and we know that every mesh topology can be realized as a convex polyhedron (this is Steinitz’ theorem).
This proves Theorem 1.
6 Experiments with dihedral parameterization
In this section we experiment with treating the dihedral vector for a given mesh topology as a Euclidean shape space. First, we consider interpolating between different embeddings of the same mesh by interpolating their dihedral angles. We find that this produces smooth morphs between quite different shapes. For instance, in Figure 1, we get a smooth morph from a dinosaur to a camel.
We morph between the two input embeddings by connecting their two dihedral vectors with a straight line segment in dihedral space, and reconstructing a series of embeddings corresponding to uniformlyspaced points along the segment. Since the dihedrals are scaleinvariant, we normalize the scale of the embedding as well as its rotation and translation. This means that the space of possible embeddings had dimension , where is the number of mesh vertices ( possible vertex coordinates, normalized for the sevendimensional transformation space). A mesh homeomorphic to the sphere has dihedral angles, however, so we do not expect the intermediate dihedral vectors to exactly correspond to embeddings. Instead, we use a leastsquares algorithm to compute embeddings that lie as close as possible to the dihedralspace line segment connecting the input shapes.
At each interpolated point, we use an optimization algorithm to find a mesh embedding that comes as close as possible to realizing the desired dihedrals. The optimization algorithm consists of an initialization step and a refinement step. The initialization fits an embedding to both interpolated dihedrals and interpolated edge lengths. Then a refinement step alternates between computing a set of normal vectors which realize the given dihedrals, and a set of mesh vertex positions which realize the as well as possible. The initialization, and each iteration of the refinement process, consists of a linear leastsquares solve.
The initialization step is similar to the mesh interpolation algorithms of Baek et al. [BLL15] and Kircher and Garland [KG08]. We first reconstruct the onering of each vertex, given the interpolated edge lengths and dihedral, and then we combine the onerings, using leastsquares, to produce a set of vertex positions. We describe this in more detail in Appendix D.
The refinement phase is more novel. We define an energy function for a mesh, which considers both the normal vectors and the vertices .
(3)  
indicates the Frobenious norm. Here is the normal of triangle and is the normal of triangle , adjacent across edge . The matrix is a rotation by exactly the desired dihedral angle between and , with the axis of rotation . Thus the first energy term measures how well the normals achieve the dihedral angles at every edge. The second term measures how well the normals and vertices agree with each other. The matrix takes edge into the normal of one of its adjacent triangles . It is the product of a rotation by , along with a scaling to normalize the length. The weights are and .
At each step, we recompute and from the current mesh, solve for new while keeping the fixed, and finally solve for new values of .
We see that this algorithm succeeds in reducing the dihedral error at of the interpolations by about half. We define the dihedral error simply as the Euclidean difference between the desired interpolated dihedral vector and the actual dihedrals achieved by our embedding; an example appears in Figure 2. As noted above, we do not expect to be able to achieve a dihedral error of zero.
Videos of these smooth morphs can be seen at https://vimeo.com/270302684.
In earlier experiments [RTH14], we found that attempting to optimize the embedding towards the interpolated edge lengths, rather than the interpolated dihedrals, produced morphs with discontinuities and glitches. We believe that this is because there are many possible embeddings realizing a given set of edge lengths, while we suspect that at most one embedding per vector of dihedrals.
7 Shape analysis
We also considered using the space of dihedral angles as a method for shape analysis. This idea is appealing because if we treat dihedral space as Euclidean, we can use offtheshelf techniques and software.
As an example, we analyze the groundtruth subset of the MPI FAUST dataset. The entire dataset include 300 human 3D laser scans in a wide range of poses [BRLB14], and it is intended as a benchmark for registration methods. Its ground truth subset is given as a set of embeddings of a single topological mesh, representing 10 subjects each in 10 different poses, labeled by subject and pose. Each mesh has approximately 7,000 vertices.
In the dihedral space, we used PCA to reduce the dimensions of the groundtruth dataset; a scatterplot on these first two principal coordinates is shown at the top in Figure 3. There are two distinct 460 clusters that correspond to gender, demonstrating the fact that in dihedral space the most salient features are those that reflect body shape rather than pose or size; this is not true, for example, in the Euclidean space formed by the vertex coordinates. Variation of the body shape along the first principal component in dihedral space is shown at the bottom of Figure 3. The meshes in this visualization were created using the initial approximate leastsquares reconstruction from dihedrals and edge lengths of Appendix D, without optimization, using in every case the average edge lengths over the entire corpus of 100 scans and only varying the input dihedrals along the principal component. This shows that quite large changes in shape can be visualized without changing the input edge lengths.
8 Discussion
There is a clear gap between the very basic level of our mathematical understanding of the dihedral vectors of mesh embeddings and the potential reflected in our experimental work. This suggests several conjectures, perhaps the most important being, There is at most one set of inner face angles consistent with an embedding of a mesh realizing a given vector of dihedral angles.
References
 [BLL15] SeungYeob Baek, Jeonghun Lim, and Kunwoo Lee, Isometric shape interpolation, Computers & Graphics 46 (2015), 257–263.
 [Bri97] Raoul Bricard, Mémoire sur la théorie de l’octaèdre articulé, Journal de Mathématiques pures et appliquées 3 (1897), 113–148.

[BRLB14]
Federica Bogo, Javier Romero, Matthew Loper, and Michael J Black, Faust:
Dataset and evaluation for 3d mesh registration
, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014, pp. 3794–3801.
 [Cau13] Augustin Louis Cauchy, Sur les polygones et polyedres, J. Ec. Polytechnique 16 (1813), 87–99.
 [Con77] Robert Connelly, A counterexample to the rigidity conjecture for polyhedra, Publications Mathématiques de l’Institut des Hautes Études Scientifiques 47 (1977), no. 1, 333–338.
 [Con79] , The rigidity of polyhedral surfaces, Mathematics Magazine 52 (1979), no. 5, 275–283.
 [Glu75] Herman Gluck, Almost all simply connected closed surfaces are rigid, Geometric topology, Springer, 1975, pp. 225–239.
 [HRS14] Behrend Heeren, Martin Rumpf, Peter Schröder, Max Wardetzky, and Benedikt Wirth, Exploring the geometry of the space of shells, Computer Graphics Forum, vol. 33, Wiley Online Library, 2014, pp. 247–256.
 [HRS16] , Splines in the Space of Shells, Computer Graphics Forum, vol. 35, Wiley Online Library, 2016, pp. 111–120.
 [IGG01] Martin Isenburg, Stefan Gumhold, and Craig Gotsman, Connectivity shapes, Proceedings of the conference on Visualization’01, IEEE Computer Society, 2001, pp. 135–142.
 [KG08] Scott Kircher and Michael Garland, Freeform motion processing, ACM Transactions on Graphics (TOG) 27 (2008), no. 2, 12.
 [KMP07] Martin Kilian, Niloy J Mitra, and Helmut Pottmann, Geometric modeling in shape space, ACM Transactions on Graphics (TOG), vol. 26, ACM, 2007, p. 64.
 [LSLCO05] Yaron Lipman, Olga Sorkine, David Levin, and Daniel CohenOr, Linear rotationinvariant coordinates for meshes, ACM Transactions on Graphics (TOG) 24 (2005), no. 3, 479–487.

[Mao86]
Jianqin Mao,
Optimal orthonormalization of the strapdown matrix by using singular value decomposition
, Computers & mathematics with applications 12 (1986), no. 3, 353–362.  [MM11] Rafe Mazzeo, Grégoire Montcouquiol, et al., Infinitesimal rigidity of conemanifolds and the stoker problem for hyperbolic and euclidean polyhedra, Journal of Differential Geometry 87 (2011), no. 3, 525–576.
 [Pog02] AV Pogorelov, On a problem of stoker, Dokl. Akad. Nauk 385 (2002), no. 1, 25–27.
 [PRP15] GillesPhilippe Paillé, Nicolas Ray, Pierre Poulin, Alla Sheffer, and Bruno Lévy, Dihedral anglebased maps of tetrahedral meshes, ACM Transactions on Graphics (TOG) 34 (2015), no. 4, 54.
 [RTH14] Carlos Rojas, Alex Tsui, Stewart He, Lance Simons, Shengren Li, and Nina Amenta, Edge length interpolation, ACM Symposium on Solid and Physical Modeling, 2014, poster paper.
 [SA07] Olga Sorkine and Marc Alexa, Asrigidaspossible surface modeling, Symposium on Geometry processing, vol. 4, 2007, p. 30.
 [Sto68] James J Stoker, Geometrical problems concerning polyhedra in the large, Communications on pure and applied mathematics 21 (1968), no. 2, 119–168.
 [WDAH10] Tim Winkler, Jens Drieseberg, Marc Alexa, and Kai Hormann, Multiscale geometry interpolation, Computer graphics forum, vol. 29, Wiley Online Library, 2010, pp. 309–318.
 [ZHRS15] Chao Zhang, Behrend Heeren, Martin Rumpf, and William AP Smith, Shell PCA: Statistical shape modelling in shell space, Proceedings of the IEEE International Conference on Computer Vision, 2015, pp. 1671–1679.
 [ZLL15] Zhibang Zhang, Guiqing Li, Huina Lu, Yaobin Ouyang, Mengxiao Yin, and Chuhua Xian, Fast asisometricaspossible shape interpolation, Computers & Graphics 46 (2015), 244–256.
Appendix A Derivation of the vertex equation
First, we need to review some material on the derivatives of the rigid motions. To warm up, let us consider translation. As goes from zero to one, the coordinate vector changes to , meaning the vector is added to every component of . At time , we have . The derivative then is .
Rotations are more interesting. Let the matrix represent the rotation through the axis (through the origin) by angle . At time , we have , that is, the angle of rotation increases with but the axis stays the same. So
(4)  
(5) 
Interestingly, the derivative
is a matrix, where is the matrix
which performs the crossproduct. The vector is the axis of rotation of , is known as the angular velocity vector; the actual angular velocity of a point at time undergoing the rotation, however, is represented by the value of the derivative at , .
Notice that ; this is easy to see since the matrix on the righthandside does not have zero diagonal, and the matrix on the left does. In fact, the correct transformation is , and we can say , since . This property comes in handy when working with the derivative of a series of rotations, as follows. Say
Then
and hence
Notice that the vectors are given in the local coordinate system, so that the multiplications by the preceding rotations in the equation above are transforming them into the global coordinate system.
Appendix B Derivation of the cotangent equation at a vertex
Let be a vertex, and consider the vertices of its onering, , etc. Using the Law of Sines, we have
Going around the onering,
and so
Taking the natural logarithm, we have
Next we take the derivative. We have and , so we get
or
Appendix C Derivation of Equation 2
We know that
We also know that
So we can write
and hence
Appendix D Initialization algorithm
We can initialize the dihedral angle morph in Section 6 by computing an approximate embedding of the interpolated point.
We approximate the embedding by linearly interpolating the dihedral angles and the edge lengths between the two inputs; we can construct a mesh that satisfies both in a leastsquares sense. The method we use combines the ideas of [BLL15, KG08, LSLCO05, WDAH10]. At each vertex , we construct a leastsquares approximation to its star (the set of triangles containing ), achieving the desired dihedrals but introducing error in the edge lengths opposite . We also define an arbitrary canonical coordinate system at each vertex . For every two stars at and connected by an edge , we find the three dimensional rotation that takes to when the two stars are merged. This gives us a relative rotation along each edge. We use these to solve for a global orientation at each vertex:
where indicates the Frobrenious norm. This is a leastsquares solve for the . Because of numerical error and the poor conditioning of the system, we may end up with “rotations” that are not actually orthonormal. Following [Mao86], we correct these using the singular value decomposition. This produces a set of global rotations aligning the coordinate frames at every vertex. Given a good set of matrices, we can then use them to reconstruct vertex positions, using
Here represents the position of the copy of vertex in the original coordinate frame at ; as transformed by the global rotation, it should be equal to . Again, this is a leastsquares computation.
Comments
There are no comments yet.