{
const fragmentShader = `
varying vec2 vUv;
uniform float time;
void main() {
vec2 xy = sin(time * 1.5 + 3.0 * vUv) * 0.5 + 0.5;
gl_FragColor = vec4(xy, 1.0, 1.0);
}
`
const {mesh, scene, camera, renderer} = setup(fragmentShader, invalidation)
const clock = new THREE.Clock();
while (true) {
const time = clock.getElapsedTime();
mesh.rotation.y = time * 0.25;
mesh.material.uniforms.time.value = time;
renderer.render(scene, camera);
yield renderer.domElement
}
}