diff --git a/src/mol-geo/geometry/mesh/mesh.ts b/src/mol-geo/geometry/mesh/mesh.ts
index e8431f261a5b458cc851645095f57ae0b847a6e5..272cdfd03a458a354ba9048c3c3e824c0da55a42 100644
--- a/src/mol-geo/geometry/mesh/mesh.ts
+++ b/src/mol-geo/geometry/mesh/mesh.ts
@@ -64,6 +64,19 @@ export namespace Mesh {
         }
     }
 
+    export function fromArrays(vertices: Float32Array, indices: Uint32Array, normals: Float32Array, groups: Float32Array, vertexCount: number, triangleCount: number, normalsComputed: boolean): Mesh {
+        return {
+            kind: 'mesh',
+            vertexCount,
+            triangleCount,
+            vertexBuffer: ValueCell.create(vertices),
+            indexBuffer: ValueCell.create(indices),
+            normalBuffer: ValueCell.create(normals),
+            groupBuffer: ValueCell.create(groups),
+            normalsComputed,
+        }
+    }
+
     export function computeNormalsImmediate(mesh: Mesh) {
         if (mesh.normalsComputed) return;