WebGL Lab.
#ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; void main(void){ float t=u_time+100.; vec2 p=(gl_FragCoord.xy*2.-u_resolution)/min(u_resolution.x,u_resolution.y); float x=sin(length(p*gl_FragCoord.xy)); vec3 destColor=vec3(0.); for(float i=0.;i<3.;i++){ float j=i+.8; vec2 q=p+vec2(cos(t*j),sin(t*j))*.300; destColor+=vec3(.4*x,.2*cos(t),2.*sin(t*p))*.08/(length(q)-(.1*sin(t)+.4)); } gl_FragColor=vec4(destColor,1.); }