Some weirdness with Vec3.angleDeg

It’s a good point–there are lots of different things that might be meant by “the angle between two vectors”. Certainly the comment isn’t very informative.

Certainly. You can build a quaternion up with setFromAxisAngle(), which allows you to specify the axis determined by the cross product, and the angle determined by the dot product, of your two vectors. Then you can use this quat in a LerpQuatInterval.

Or, you can use the higher-level functions like lookAt(), which are designed to save you from having to think about trigonometry at all.

Without an up vector, “rotate A to look at B” is ambiguous. If you don’t care about the ambiguity, like for missiles and similar stuff, then it doesn’t matter what your up vector is, so you can just let it default. If it’s important to you that the up vector doesn’t change when you do the rotation, then you can pass in the current up vector to lookAt().

David