diff --git a/src/mol-math/linear-algebra/3d/vec3.ts b/src/mol-math/linear-algebra/3d/vec3.ts
index 0be0f033dcbff1020f4ea5f9ac22566f45daf100..c0437fd5770afa42a9e867d8369494f819c8444f 100644
--- a/src/mol-math/linear-algebra/3d/vec3.ts
+++ b/src/mol-math/linear-algebra/3d/vec3.ts
@@ -452,9 +452,15 @@ namespace Vec3 {
     }
 
     const rotTemp = zero();
+    const flipMatrix = Mat4.fromScaling(Mat4.zero(), create(-1, -1, -1))
     export function makeRotation(mat: Mat4, a: Vec3, b: Vec3): Mat4 {
         const by = angle(a, b);
         if (Math.abs(by) < 0.0001) return Mat4.setIdentity(mat);
+        if (Math.abs(by - Math.PI) < EPSILON.Value) {
+            // here, axis can be [0,0,0] but the rotation is a simple flip
+            Mat4.copy(mat, flipMatrix);
+            return mat;
+        }
         const axis = cross(rotTemp, a, b);
         return Mat4.fromRotation(mat, by, axis);
     }