code: def load_data(self):
      n = self._nAtoms
  
      data = np.zeros(
          n,
          [
              ("a_position", np.float32, 3),
              ("a_color", np.float32, 3),
              ("a_radius", np.float32),
          ],
      )
  
      data["a_position"] = self.coords
      data["a_color"] = self.atomsColours
      data["a_radius"] = self.atomsScales * self.ps
  
      self.program.bind(gloo.VertexBuffer(data))
  
      self.program["u_model"] = self.model
      self.program["u_view"] = self.view
      self.program["u_light_position"] = 0.0, 0.0, 2.0
      self.program["u_light_spec_position"] = -5.0, 5.0, -5.0
  
file_path: vispy/examples/demo/gloo/molecular_viewer.py
imports: import numpy
  from vispy import gloo
  from vispy import app
  from vispy.util.transforms import perspective, translate, rotate
  from vispy.io import load_data_file
label_desc: Use image node_id 3 for calling the Canvas obj's underlying member method code with example usage: obj.load_data() without return types