code: def on_timer(self, event):
      # cycle every 2 sec
      self.i = (self.i + 1.0 / 120.0) % 1.0
      self.update()
  
file_path: vispy/examples/gloo/animate_images_slice.py
imports: import numpy
  from vispy.util.transforms import ortho
  from vispy import gloo
  from vispy import app
  from vispy.visuals.shaders import ModularProgram
label_desc: Use image node_id 3 for calling the Canvas obj's underlying member method code with example usage: obj.on_timer(event) without return types