code: def on_timer(self, event):
      self.theta += 0.5
      self.phi += 0.5
      model = np.eye(4, dtype=np.float32)
      rotate(model, self.theta, 0, 0, 1)
      rotate(model, self.phi, 0, 1, 0)
      loc = gl.glGetUniformLocation(self.cube, "u_model")
      gl.glUniformMatrix4fv(loc, 1, False, model)
      self.update()
  
file_path: vispy/examples/gloo/gl/cube.py
imports: import math
  import numpy
  from vispy import app
  from vispy.gloo import gl
label_desc: Use image node_id 6 for calling the Canvas obj's underlying member method code with example usage: obj.on_timer(event) without return types