1. The problem statement, all variables and given/known data We have (3d) vectors v1 and v2, and some matrix M, v2 = M v1. This scales and rotates vectors, but I need to constrain this to rotation only. So we have this in a form M = S * R (or R * S) where S is scaling only matrix, and R is rotation only. 2. Relevant equations If I knew these, I wouldn't be posting. 3. The attempt at a solution I figured that S must be diagonal matrix, and if we put ort vectors through M, we could somehow find its non-zero coefs and then easily invert it, but the exact math escapes me... Then I thought, there must be someone who did this, or knows someone who did :)  I have found this unfinished discussion on gamedev, that suggests this thing is implemented in directx, so it is definitely possible; meanwhile, I will keep searching.  holy crrr carramba, it seems so complex. 1 + 2 and 3... my head is going to explode. is there at least any simple way to extract rotation part alone?