code: def smoothed(mesh, angle):
      
      # if the mesh has no adjacent faces return a copy
      if len(mesh.face_adjacency) == 0:
          return mesh.copy()
  
      # face pairs below angle threshold
      angle_ok = mesh.face_adjacency_angles <= angle
      # subset of face adjacency
      adjacency = mesh.face_adjacency[angle_ok]
      # list of connected groups of faces
      components = connected_components(adjacency,
                                        min_len=1,
                                        nodes=np.arange(len(mesh.faces)))
      # get a submesh as a single appended Trimesh
      smooth = mesh.submesh(components,
                            only_watertight=False,
                            append=True)
      return smooth
docs: Return a non- watertight version of the mesh which will
      render nicely with smooth shading by disconnecting faces
      at sharp angles to each other.
  
      Parameters
      ---------
      mesh : trimesh.Trimesh
        Source geometry
      angle : float
        Angle in radians, adjacent faces which have normals
        below this angle will be smoothed
  
      Returns
      ---------
      smooth : trimesh.Trimesh
        Geometry with disconnected face patches