Can someone be so kind to verify the derivation of the gradient of a normalized cross product?
I have translated the pseudo code from "Position Based Dynamics" to working code, but the Bending Constraint Projection section gives me headaches - last page, right column.
$$\boldsymbol{n}=\frac{ \boldsymbol{p_1} \times \boldsymbol{p_2}}{\vert \boldsymbol{p_1} \times \boldsymbol{p_2}\vert}$$ $$\frac{\partial \boldsymbol{n}}{\partial \boldsymbol{p_1}}=\begin{bmatrix} \frac{\partial n_x}{\partial p_{1_x}} & \frac{\partial n_x}{\partial p_{1_y}} & \frac{\partial n_x}{\partial p_{1_z}} \\\ \frac{\partial n_y}{\partial p_{1_x}} & \frac{\partial n_y}{\partial p_{1_y}} & \frac{\partial n_y}{\partial p_{1_z}} \\\ \frac{\partial n_z}{\partial p_{1_x}} & \frac{\partial n_z}{\partial p_{1_y}} & \frac{\partial n_z}{\partial p_{1_z}}\end{bmatrix}$$ $$=\frac{1}{\vert \boldsymbol{p_1} \times \boldsymbol{p_2}\vert} ( \begin{bmatrix} 0 & p_{2_z} & -p_{2_y} \\\ -p_{2_z} & 0 & p_{2_x} \\\ p_{2_y} & -p_{2_x} & 0\end{bmatrix} ) +(\boldsymbol{n}(\boldsymbol{n} \times \boldsymbol{p_2})^{ \mathrm{ T } }) $$ Shorter and for both arguments we have: $$\frac{\partial \boldsymbol{n}}{\partial \boldsymbol{p_1}}=\quad \frac{1}{\vert \boldsymbol{p_1} \times \boldsymbol{p_2}\vert}(-\tilde{\boldsymbol{p_2}} + \boldsymbol{n}(\boldsymbol{n} \times \boldsymbol{p_2})^{ \mathrm{ T } })$$ $$\frac{\partial \boldsymbol{n}}{\partial \boldsymbol{p_2}}=-\frac{1}{\vert \boldsymbol{p_1} \times \boldsymbol{p_1}\vert}(-\tilde{\boldsymbol{p_1}} + \boldsymbol{n}(\boldsymbol{n} \times \boldsymbol{p_1})^{ \mathrm{ T } })$$ where $\tilde{\boldsymbol{p}}$ is the matrix with the property $\tilde{\boldsymbol{p}}\boldsymbol{x}=\boldsymbol{p} \times \boldsymbol{x}$
Unfortunately, I don't have the math skills to arrive at the above derivation. If the above is right, I don't know how the authors use these equations to (21)--->(25) in the paper.
$$\boldsymbol{n_1}=\frac{ \boldsymbol{p_2} \times \boldsymbol{p_3}}{\vert \boldsymbol{p_2} \times \boldsymbol{p_3}\vert}$$ $$\Biggl(\frac{\partial \boldsymbol{n_1}}{\partial \boldsymbol{p_3}}\Biggr)^{ \mathrm{ T } }\boldsymbol{n_2} \to \frac{ \color{red}{\boldsymbol{-}}\boldsymbol{p_2} \times \boldsymbol{n_2} + (\boldsymbol{n_1} \times \boldsymbol{p_2})d}{\vert \boldsymbol{p_2} \times \boldsymbol{p_3}\vert}$$
I corrected what I think is missing, a minus sign. The same is true for equation (26-27). Thank you!
After a good sleep, and with the help of Wolfram Mathematica I was able to verify that the equations are correct. I basically write the initial statement in its full form and made it equal with the end result / equation. It returned True, so they are correct!
The red minus sign is not missing, I just needed another look.