code: def get_3D_scatter_trace(points, name="", size=3, caption=None):
      assert (
          points.shape[1] == 3
      ), "3d scatter plot input points are not correctely shaped "
      assert (
          len(points.shape) == 2
      ), "3d scatter plot input points are not correctely shaped "
  
      trace = go.Scatter3d(
          x=points[:, 0].cpu(),
          y=points[:, 1].cpu(),
          z=points[:, 2].cpu(),
          mode="markers",
          name=name,
          marker=dict(
              size=size,
              line=dict(
                  width=2,
              ),
              opacity=1.0,
          ),
          text=caption,
      )
  
      return trace
  
imports: import plotly.graph_objs
  import plotly.offline
  import numpy
  import torch
  from skimage import measure
  import torchvision
  import trimesh
  from PIL import Image
  from utils import rend_util
  import pickle
label_desc: Use image node_id 3 for calling a global function with example usage: get_3D_scatter_trace(points, name, size, caption) and returns: trace