code: def concatenate(a, b=None):
      
      if b is None:
          b = []
      # stack meshes into flat list
      meshes = np.append(a, b)
  
      # extract the trimesh type to avoid a circular import
      # and assert that both inputs are Trimesh objects
      trimesh_type = type_named(meshes[0], 'Trimesh')
  
      # append faces and vertices of meshes
      vertices, faces = append_faces(
          [m.vertices.copy() for m in meshes],
          [m.faces.copy() for m in meshes])
  
      # only save face normals if already calculated
      face_normals = None
      if all('face_normals' in m._cache for m in meshes):
          face_normals = np.vstack([m.face_normals
                                    for m in meshes])
  
      # concatenate visuals
      visual = meshes[0].visual.concatenate(
          [m.visual for m in meshes[1:]])
  
      # create the mesh object
      mesh = trimesh_type(vertices=vertices,
                          faces=faces,
                          face_normals=face_normals,
                          visual=visual,
                          process=False)
  
      return mesh
docs: Concatenate two or more meshes.
  
      Parameters
      ----------
      a: Trimesh object, or list of such
      b: Trimesh object, or list of such
  
      Returns
      ----------
      result: Trimesh object containing concatenated mesh