At the moment I am working on building web based viewer (ofcourse using three.js) for incremental 3D reconstruction framework. I have VoxelBlocks which are then “meshed” into meshes (let’s call them m0, m1 … mx). At the moment, I am merging them as follows:

```
var mesh1 = getMineCraftMesh(MCMesher,dataField,dataDims,[1,0,0]);
var mesh2 = getMineCraftMesh(MCMesher,dataField,dataDims,[0,3,0]);
var mesh3 = getMineCraftMesh(MCMesher,dataField,dataDims,[2,2,0]);
var singleGeometry = new THREE.Geometry();
mesh1.updateMatrix();
singleGeometry.merge(mesh1.geometry, mesh1.matrix);
mesh2.updateMatrix();
singleGeometry.merge(mesh2.geometry, mesh2.matrix);
mesh3.updateMatrix();
singleGeometry.merge(mesh3.geometry, mesh3.matrix);
var material = new THREE.MeshPhongMaterial({color: 0x777777});
surfacemesh = new THREE.Mesh(singleGeometry, material);
surfacemesh.geometry.computeBoundingBox();
surfacemesh.geometry.computeBoundingSphere();
scene.add(surfacemesh);
```

Considering if some mesh (let’s say m2) gets updated, how can I efficiently update the merged mesh?

PS. I have already tried to consider a big bufferedGeometry with some predefined number of vertices, colors, normals and faces but that strategy wasted a lot of memory as meshes comes in various shape and sizes.