Upon implementing the modal analysis part of "Shape Decomposition Using Modal Analysis" [Huang et al. 2009], I noticed a small typo in the derivation.
However, I ran into a small issue regarding the construction of matrix C in Equation 6. C_i is responsible for the quadratic terms involving c_i. Namely,
∑j_N(i) wij || c_i x (pi - pj) ||^2
The squared norm of a cross product can be written as the sum of the product of individual squared norms and the squared dot product: ||a x b||^2 = ||a||^2 ||b||^2 - (a.b)^2
. Or in our case:
∑j_N(i) wij || c_i ||^2 || pi - pj ||^2 + wij (ci . (pi-pj) )^2
Now, in the 2009 paper only the latter term is included in C_i as it is equivalent to the covariance matrix (sum of outerproducts):
ci' C_i ci = ci' ( ∑j_N(i) wij (pi-pj) (pi - pj)' ) ci
where a' is the transpose of a.
C_i should also contain a diagonal term accounting for ∑j_N(i) wij || c_i ||^2 || pi - pj ||^2
. This is of course easy to add to C_i.
Update: Huang replied to me with another way to rewrite the construction C_i correctly and using a notation more familiar to the original paper:
∑j wij (p_{i}-p_{j})_x (p_{i}-p_{j})_x',
where a_x
is the matrix representing cross product with a and it follows that a_x a_x' = ||a||^2 - (aa').
And then it's working. Here're some modes of a cow: