code: def __init__(self):
      app.Canvas.__init__(self, keys="interactive")
      self.size = 800, 600
  
      self.program = gloo.Program(VERT_SHADER, FRAG_SHADER)
  
      self.theta, self.phi = -80, 180
      self.translate = 3
  
      self.faces = gloo.IndexBuffer(faces)
      self.program.bind(gloo.VertexBuffer(data))
  
      self.program["u_color"] = 1, 1, 1, 1
      self.program["u_light_position"] = (1.0, 1.0, 1.0)
      self.program["u_light_intensity"] = (1.0, 1.0, 1.0)
  
      self.apply_zoom()
  
      gloo.set_state(
          blend=False, depth_test=True, polygon_offset_fill=True
      )
  
      self._t0 = default_timer()
      self._timer = app.Timer("auto", connect=self.on_timer, start=True)
  
      self.update_matrices()
  
file_path: vispy/examples/demo/gloo/brain.py
imports: from timeit import default_timer
  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 1 to create a new Canvas object from inherited base classes: app with example: obj = Canvas()