code: def icosphere(subdivisions=3, radius=1.0, color=None):
      
      def refine_spherical():
          vectors = ico.vertices
          scalar = (vectors ** 2).sum(axis=1)**.5
          unit = vectors / scalar.reshape((-1, 1))
          offset = radius - scalar
          ico.vertices += unit * offset.reshape((-1, 1))
      ico = icosahedron()
      ico._validate = False
      for j in range(subdivisions):
          ico = ico.subdivide()
          refine_spherical()
      ico._validate = True
      if color is not None:
          ico.visual.face_colors = color
      return ico
docs: Create an isophere centered at the origin.
  
      Parameters
      ----------
      subdivisions : int
        How many times to subdivide the mesh.
        Note that the number of faces will grow as function of
        4 ** subdivisions, so you probably want to keep this under ~5
      radius : float
        Desired radius of sphere
      color: (3,) float or uint8
        Desired color of sphere
  
      Returns
      ---------
      ico : trimesh.Trimesh
        Meshed sphere