code: def plot3d(points, color=(0.5, 0.5, 0.5), tube_radius=0.005, n_components=30, name=None):
          
          points = np.asanyarray(points)
          mp = MaterialProperties(
              color = np.array(color),
              k_a = 0.5,
              k_d = 0.3,
              k_s = 0.0,
              alpha = 10.0,
              smooth=True
          )
  
          # Generate circular polygon
          vec = np.array([0,1]) * tube_radius
          angle = np.pi * 2.0 / n_components
          rotmat = np.array([
              [np.cos(angle), -np.sin(angle)],
              [np.sin(angle), np.cos(angle)]
          ])
          perim = []
          for i in range(n_components):
              perim.append(vec)
              vec = np.dot(rotmat, vec)
          poly = Polygon(perim)
  
          # Sweep it out along the path
          mesh = trimesh.creation.sweep_polygon(poly, points)
          obj = SceneObject(mesh, material=mp)
          if name is None:
              name = str(uuid.uuid4())
          Visualizer3D._scene.add_object(name, obj)
docs: Plot a 3d curve through a set of points using tubes.
  
          Parameters
          ----------
          points : (n,3) float
              A series of 3D points that define a curve in space.
          color : (3,) float
              The color of the tube.
          tube_radius : float
              Radius of tube representing curve.
          n_components : int
              The number of edges in each polygon representing the tube.
          name : str
              A name for the object to be added.