code: def export_gltf(scene,
                  extras=None,
                  include_normals=False):
      
      # if we were passed a bare Trimesh or Path3D object
      if (not util.is_instance_named(scene, "Scene")
              and hasattr(scene, "scene")):
          scene = scene.scene()
  
      # create the header and buffer data
      tree, buffer_items = _create_gltf_structure(
          scene=scene,
          extras=extras,
          include_normals=include_normals)
  
      # store files as {name : data}
      files = {}
      # make one buffer per buffer_items
      buffers = [None] * len(buffer_items)
      # A bufferView is a slice of a file
      views = [None] * len(buffer_items)
      # create the buffer views
      for i, item in enumerate(buffer_items):
          views[i] = {
              "buffer": i,
              "byteOffset": 0,
              "byteLength": len(item)}
  
          buffer_data = _byte_pad(bytes().join(buffer_items[i: i + 2]))
          buffer_name = "gltf_buffer_{}.bin".format(i)
          buffers[i] = {
              "uri": buffer_name,
              "byteLength": len(buffer_data)}
          files[buffer_name] = buffer_data
  
      tree["buffers"] = buffers
      tree["bufferViews"] = views
      files["model.gltf"] = json.dumps(tree).encode("utf-8")
      return files
docs: Export a scene object as a GLTF directory.
  
      This puts each mesh into a separate file (i.e. a `buffer`)
      as opposed to one larger file.
  
      Parameters
      -----------
      scene : trimesh.Scene
        Scene to be exported
  
      Returns
      ----------
      export : dict
        Format: {file name : file data}