In this paper, the authors describe how to use locally rigid transformations (sampled on nodes in space) to deform mesh vertices. In the paper, rotations are relative to the pivot point, which corresponds to the node's position in world space. I wonder why the authors chose this formulation and what would change if we instead used rotations with the pivot point in the world origin (my attempted explanation is at the bottom).

This is how the authors of the paper transform an undeformed vertex $\mathbf {v}_i$ from the world space into a deformed vertex $\mathbf {\widetilde{v}}_i$, using the rotations $\mathbf R_j$ and translations $\mathbf t_j$ of the $m$ nearest deformation nodes, where $\mathbf g_j$ is the position of the $j$-th deformation node in world space: $$ \mathbf {\widetilde{v}}_i = \sum^m_{j=1} w_j(\mathbf v_i) \left( \mathbf R_j (\mathbf v_i - \mathbf g_j) + \mathbf g_j + \mathbf t_j\right) $$

The equation above uses the nodes' position $\mathbf g_j$ as the pivot point for rotation.

In the paper, this equation is then used in a regularization term $E_{\text{reg}}$, which ensures that neighbouring deformation nodes deform the same vertex into roughly the same deformed point (equation 7 in the paper). So for deformation node $j$, the term $E_{\text{reg}}$ finds each neighbouring deformation node $k$ and for the sake of simplicity uses $\mathbf g_k$ (the world position of the node $k$) as the undeformed vertex which should ideally deform into the same point after applying deformation of either the node $j$ or $k$. This is the regularization term as defined in the paper:

$$ E_{reg} = \sum^m_{j=1}\sum_{k\in\cal N(j)} \alpha_{jk} \left\lVert \mathbf R_j (\mathbf g_k - \mathbf g_j) + \mathbf g_j + \mathbf t_j - (\mathbf g_k + \mathbf t_k)\right\rVert^2_2 $$

The paper mentions that other earlier papers used the world origin as the pivot point instead of using a different pivot point for each node:

This regularization equation bears some resemblance to the deformation smoothness energy term used by previous work on template deformation. However, the transformed vertex positions are compared, rather than the transformations themselves, and the transformations are relative to the node positions, rather than to the global coordinate system.

I'd like to ask what are the benefits of using the deformation node's position as the pivot point for rotation compared to rotating relative to the origin?

This is how I imagine the two equations from above would look like if we instead used rotations relative to the world origin:

$$ \mathbf {\widetilde{v}}_i = \sum^m_{j=1} w_j(\mathbf v_i) \left( \mathbf R_j \mathbf v_i + \mathbf t_j\right) $$

$$ E_{reg} = \sum^m_{j=1}\sum_{k\in\cal N(j)} \alpha_{jk} \left\lVert (\mathbf R_j\mathbf g_k + \mathbf t_j) - (\mathbf R_k\mathbf g_k + \mathbf t_k) \right\rVert^2_2 $$

My guess is that when an object (consisting of multiple vertices) is far away from the origin and is rotated when the pivot in the world origin, then in addition to "pure rotation", the points of the object will appear to be translated too. I see this translation as something like a "absolute term" that has to be implicitly subtracted during optimization. On the other hand, having the rotations relative to each node removes this "absolute term" and lets us estimate only incremental motion, so the optimization process can converge faster and more robustly.

I think that in the variant with rotations relative to the origin, the optimization would need to "focus too much effort" on implicitly finding not only the incremental term, but also the absolute term. In other words, it seems like the variant where the pivot is the node's position lets the optimization focus on estimating only the incremental increase as opposed to "absolute increase" in the case when pivot is in the origin. Therefore by explicitly including the node's position as the pivot point into the regularization term's formula, we are "helping" the optimization focus more on "the important parts".

Would either formulation (pivot point in the world origin or in deformation node position) result in a similarly robust objective function or is one of the formulations "more convex" or "easier to optimize" or "more robust"?

I am not fully satisfied with my own explanation because other papers seem to be using rotations relative the origin without any issues. Are my assumptions any good?

What is the true motivation behind using rotations relative to the deformation nodes' positions?

  • $\begingroup$ Yes rotation is a multi-scale concept. Zoom in deep enough anywhere and a global rotation will be approximated well enough by a local translation. You can build a pyramid of it if you want to. $\endgroup$ Commented Oct 6, 2023 at 18:39
  • $\begingroup$ @mathreadler This sounds like the concept of (local) linearization of a function. During optimization of $E_{reg}$, I'd expect the rotation parameters to be already linearized and mapped onto a rotation matrix by the exponential map. Such linearization using the exponential map would be present in both variants of $E_{reg}$ (i.e. pivot in the origin vs in a deformation node), so I'm not entirely sure what is the benefit of introducing this additional "linearization" induced by representing rotations relative to a pivot point. Is the benefit a more convex function, as I guessed in my question? $\endgroup$
    – jordi
    Commented Oct 7, 2023 at 9:48
  • $\begingroup$ No. It is not just a linearization. There is a conceptual difference. Microscopic rotation (curl) relates to macroscopic rotation by a scale pyramid centered on the pivotal point. A rotation is not defined without also saying "around which point". I don't see where an exponential map comes into play. What it seems to me that paper is doing is not related to that but estimating local affine transformations to regularize motion if sparse edits are made. If I alter the position of this point, which local linear transformation if applied in a whole neighbourhood gives the smoothest movement? $\endgroup$ Commented Oct 7, 2023 at 14:02

1 Answer 1


I don't believe this is about the energy being more robust or more convex - if you were to naively replace these with global rotations in the energies they use, then this simply will not make sense from a conceptual standpoint. In the above framework they explicitly mention that their concept is motivated by skeleton-subspace deformation from character animation. This is well illustrated in figure 2, where the edges connecting the nodes would be the bones. The difference to skeleton-based animation is that you do not have a hierarchy of bones, that the rotation of all bones at a vertex is shared, and that you have a translation element. In either case, this framework makes sense only if the rotations are around their vertices.

Now assume you want to fix a few of the vertices - then the rotations for those are fixed to the identity and the translation to zero. Then the optimisation problem consists of finding the translations and rotations for the non-fixed vertices, and you desire for this to happen in a smooth way preserving local rigidity. The objective function is a linear combination of three terms $E_{rot}$, $E_{con}$, and $E_{reg}$. $E_{rot}$ tries to force the matrices $R_j$ to be rotation matrices, and $E_{con}$ tries to penalize deviations of your "fixed" vertices from their prescribed positions. The interesting term is $E_{reg}$: Remember how one of the differences to standard skeleton based animation was that there was no hierarchy? This means that neighbour $j$ tries to rotate neighbour $k$, but neighbour $k$ also tries to rotate neighbour $j$, but with different rotations, so you need a way to reconcile the predicted positions, which is achieved by $E_{reg}$. The other obvious thing is that unlike in skeleton-based animation you have not explicitly prescribed rotations for non-fixed nodes so this finds ones that try to minimize a form of rigidity given some "fixed" vertices (see figure 2 again for an illustration).

A final note: the objective function in the paper seems fairly sloppy and ad hoc - e.g. I would have expected for $E_{con}$ and $E_{rot}$ to be replaced by hard constraints. My guess is that their model didn't work too well or was hard to optimise if they did that, which is why they stuck to the above formulation. On the other hand this puts into question their energy. A paper I much prefer is "as-rigid-as-possible surface modelling", since it is better motivated and the energy makes much more sense.

  • $\begingroup$ I still don't understand why would it be impossible to use a global transformation in $E_{reg}$. Sure, using local transforms is conceptually more intuitive in terms of skeleton deformations, but I don't see why would it imply that global transform are out of question. Isn't a local rotation (i.e. wrt. a pivot point) just the same exact rotation, but with added translational offset? If you can represent a local rotation with a global tranformation (rotation + translation), then it should be possible to use global transformations in $E_{reg}$. Am I missing something obvious? 1/2 $\endgroup$
    – jordi
    Commented Oct 9, 2023 at 8:16
  • $\begingroup$ In my understanding, the only difference between local and global parametrization would be that in case of the global parametrization, the translation components of the transformations would not be "zero-centered". As I understand it, the only difference between local and global parametrizations is the coord. system wrt. which we describe the transforms (rotations are exactly the same, only the translation differs). In my question, I wondered if the choice of coordinate system wrt. which we describe the transformations has any practical influence on robustness or convergence of $E_{reg}$. 2/2 $\endgroup$
    – jordi
    Commented Oct 9, 2023 at 8:23
  • 2
    $\begingroup$ @jordi Sure, you can argue that $R_j(g_k - g_j) + t_j = R_j g_k + t'_j$ if $t_j' = t_j-R_jg_j$, and thus the two are equivalent up to a reparametrization. Note however that this is much less readable in the framework they have (i.e. it's just a rewriting for the sake of it and not because it makes sense), and it couples the variables $t_j'$ and $R_j$. I don't know whether this makes the optimisation harder in practice, but I am pretty sure it shouldn't make it easier (my guess is that there's no big difference for a reasonable initialisation). The real question is why would you even do this? $\endgroup$
    – lightxbulb
    Commented Oct 9, 2023 at 8:31
  • $\begingroup$ Thank you, I have no deeper goal in mind. All I want is to poke the problem and get a better understanding of how different reparametrizations would influence the optimization robustness. As you wrote, $t'_j$ and $R_j$ would be coupled in the global parametrization, which is why I originally assumed it might be harder to optimize this problem. In the end, I just want to learn how to design objective functions that are more robust and easier to optimize. Is there a field of study or a course or a book that covers practical optimal design of objective functions? I'm not even sure what to google. $\endgroup$
    – jordi
    Commented Oct 9, 2023 at 8:48
  • 2
    $\begingroup$ @jordi I personally think that implementing the formulation with the global rotation is a waste of time. You're probably better off studying better energy definitions, e.g. like in the paper I mentioned, as well as newer publications on the subject (I don't know whether there is a good review on that). $\endgroup$
    – lightxbulb
    Commented Oct 9, 2023 at 10:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.