code: def split_scene(geometry):
      
      # already a scene, so return it
      if util.is_instance_named(geometry, 'Scene'):
          return geometry
  
      # a list of things
      if util.is_sequence(geometry):
          metadata = {}
          for g in geometry:
              try:
                  metadata.update(g.metadata)
              except BaseException:
                  continue
          return Scene(geometry,
                       metadata=metadata)
  
      # a single geometry so we are going to split
      split = collections.deque()
  
      metadata = {}
      for g in util.make_sequence(geometry):
          split.extend(g.split())
          metadata.update(g.metadata)
  
      # if there is only one geometry in the mesh
      # name it from the file name
      if len(split) == 1 and 'file_name' in metadata:
          split = {metadata['file_name']: split[0]}
  
      scene = Scene(split, metadata=metadata)
  
      return scene
docs: Given a geometry, list of geometries, or a Scene
      return them as a single Scene object.
  
      Parameters
      ----------
      geometry : splittable
  
      Returns
      ---------
      scene: trimesh.Scene