diff --git a/src/cg/utils.ts b/src/cg/utils.ts
index fc005a4714f1f925216311876e718f89355e7200..db0243a22f7e6e79759e558f60f973e4ed9f04ca 100644
--- a/src/cg/utils.ts
+++ b/src/cg/utils.ts
@@ -72,4 +72,21 @@ export function vecCrossProduct(vecOne: Array<number>, vecTwo: Array<number>){
 
     return crossProduct;
 }
+
+export function matrixProduct(a: Array<number>, b: Array<number>){
+    // for 3x3 matrix only
+    //[
+    //    0 1 2
+    //    3 4 5
+    //    6 7 8
+    //  ]
+    return [
+        //row 1
+        a[0]*b[0] + a[1]*b[3] + a[2]*b[6], a[0]*b[1] + a[1]*b[4] + a[2]*b[7], a[0]*b[2] + a[1]*b[5] + a[2]*b[8],
+        //row 2
+        a[3]*b[0] + a[4]*b[3] + a[5]*b[6], a[3]*b[1] + a[4]*b[4] + a[5]*b[7], a[3]*b[2] + a[4]*b[5] + a[5]*b[8],
+        //row 3
+        a[6]*b[0] + a[7]*b[3] + a[8]*b[6], a[6]*b[1] + a[7]*b[4] + a[8]*b[7], a[6]*b[2] + a[7]*b[5] + a[8]*b[8],
+    ]
+}
 //
\ No newline at end of file