Seem to have solved the problem using quaternion rotation (at least for the specific case or rotation about X then about Z).   Created this function to rotate anti-clockwise a given position vector p about an axis through and angle function rotateParoundAxis(p, axis, angle) { //p is position (Vector3) to rotate clockwise about axis (Vector3) through angle        var _p = new BABYLON.Quaternion(p.x, p.y, p.z, 0);  //change p to quaternion for quaternion multiplication        axis.normalize(); //