code: def on_timer(self, event):
      t = event.elapsed
      self.program["sphere_position_0"] = (
          +0.75,
          0.1,
          2.0 + 1.0 * cos(4 * t),
      )
      self.program["sphere_position_1"] = (
          -0.75,
          0.1,
          2.0 - 1.0 * cos(4 * t),
      )
      self.update()
  
file_path: vispy/examples/demo/gloo/raytracing.py
imports: from math import cos
  from vispy import app, gloo
label_desc: Use image node_id 2 for calling the Canvas obj's underlying member method code with example usage: obj.on_timer(event) without return types