def METHOD_NAME(self):
    count = self.count.value
    self.positions = (np.random.normal(0, 1, (3 * count, 3))
                      + np.repeat(np.random.normal(0, 5, (count, 3)), 3, axis=0)
                      ).astype(np.float32)
    ctmp = np.asarray([self.tf.value.sample(i / count) for i in range(count)])
    color = np.repeat(ctmp, 3, axis=0)
    # resize picking manager to fit all triangles
    self.pm.resize(count)
    # generate picking IDs and make sure all vertices of a triangle share the same ID
    ptmp = np.asarray([self.pm.pickingId(i) for i in range(count)], dtype=np.uint32)
    picking = np.repeat(ptmp, 3)
    indices = np.arange(0, count * 3, dtype=np.uint32)
    mesh = ivw.data.Mesh(ivw.data.DrawType.Triangles, ivw.data.ConnectivityType.Unconnected)
    mesh.addBuffer(ivw.data.BufferType.PositionAttrib, ivw.data.Buffer(self.positions))
    mesh.addBuffer(ivw.data.BufferType.ColorAttrib, ivw.data.Buffer(color))
    mesh.addBuffer(ivw.data.BufferType.PickingAttrib, ivw.data.Buffer(picking))
    mesh.addBuffer(ivw.data.BufferType.IndexAttrib, ivw.data.Buffer(indices))
    self.outport.setData(mesh)