Center and orient mesh of a head I have a very accurate mesh of my head, captured by photogrammetry (http://ir-ltd.net/)



I would like to rotate and translate it so that it is as symmetrical as possible on the x axis.

How could I go about doing this?

Here is a close up of an ear:



Now maybe I could position a sphere...





And then position one of the opposite side in the same place, and then take the average of their centres, translate that back to the origin, and then perform appropriate rotation.

I can write a Python script that gets as far as the translation, but I'm not sure how to do the final rotation.

Also can anyone think of any other techniques?

PS it is essential to mesh scale must be preserved!

EDIT:
Another technique might involve selecting one ear and calculating the average of all vertex positions. Then doing the same for the other ear.  And then taking the line between these two centroids to be the new X axis.

But then the problem becomes how to select the ear?  Specifically, how to make sure the second ear is selected in a similar way.
A easy way would be:


Select three vertices (right, left and middle) on the head;
Create a empty based on that virtual plane using Precise Align.
Select the empty, the AltR. You may want to rotate manually along Z axis if it's not expected after that.
Select your object, AltP > Clear and Keep Transformation. Then delete the empty.




Similar usage like this.

One thing that is worthy mentioning is: it's a scanned head in your case. Since real human body can be just roughly symmetrical, but not exactly as it appears, so the result may not be perfectlly symmetrical as expected. Of course, you can still give it a try.