code: def generate_vis(notebook_display: bool = False):
      global r
      nodes = pd.read_csv(NODES_URL)
  
      colors = pdk.data_utils.assign_random_colors(nodes["group"])
      # Divide by 255 to normalize the colors
      # Specify positions and colors as columns of lists
      nodes["color"] = nodes.apply(
          lambda row: [
              c / 255 if notebook_display else c
              for c in colors.get(row["group"])
          ],
          axis=1,
      )
      nodes["position"] = nodes.apply(
          lambda row: [row["x"], row["y"], row["z"]], axis=1
      )
  
      # Remove all unused columns
      del nodes["x"]
      del nodes["y"]
      del nodes["z"]
      del nodes["group"]
  
      if not notebook_display:
          r = make_renderer(nodes, use_binary_transport=False)
          r.to_html(
              "binary_transport.html",
              css_background_color="charcoal",
              notebook_display=notebook_display,
          )
      else:
          r = make_renderer(nodes, use_binary_transport=True)
          display(r.show())
  
imports: import pydeck
  import pandas
label_desc: Use image node_id 3 for calling a global function with example usage: generate_vis(notebook_display) without return types