Ctr + s || Command + s : リロード(エディタにフォーカス中)
Esc : アニメーションの停止
ダウンロードボタンから HTML ファイルをダウンロードできます。文法チェックはしてません。
precision mediump float;
uniform vec2  m;       // mouse
uniform float t;       // time
uniform vec2  r;       // resolution
uniform sampler2D smp; // prev scene
vec3 hsv(float h, float s, float v){
	vec4 t = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
	vec3 p = abs(fract(vec3(h) + t.xyz) * 6.0 - vec3(t.w));
	return v * mix(vec3(t.x), clamp(p - vec3(t.x), 0.0, 1.0), s);
}
void main(void){
	vec2 p = (gl_FragCoord.xy * 2.0 - r) / min(r.x, r.y);
	int j = 0;
	vec2 x = vec2(-0.345, 0.654);
	vec2 y = vec2(t * 0.005, 0.0);
	vec2 z = p;
	for(int i = 0; i < 360; i++){
		j++;
		if(length(z) > 2.0){break;}
		z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + x + y;
	}
	float h = abs(mod(t * 15.0 - float(j), 360.0) / 360.0);
	float f = 0.1 / length(p - m);
	vec4 smpColor = texture2D(smp, gl_FragCoord.xy / min(r.x, r.y));
	if(length(smpColor) > 0.0){
		vec3 tmp = mix(hsv(h, 1.0, 1.0) + f, smpColor.rgb, 0.975);
		gl_FragColor = vec4(tmp, 1.0);
	}else{
		gl_FragColor = vec4(hsv(h, 1.0, 1.0) + f, 1.0);
	}
}