WebGL Lab.
// title: sketch-2020-01-24-15-27 // author: yue precision mediump float; uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; void main(){ float s=sin(u_time); float c=cos(u_time); vec2 p=gl_FragCoord.xy/u_resolution.xy; vec2 r=p; p=fract(p*3.); vec3 color=p.y+.2*s>.5?vec3(1.):vec3(-1.); color*=p.x+.2*s-.5; color*=p.x+.2*c-.3; color*=p.y+.2*c-.5; color*=p.x+.2*s-p.y; color*=p.y+.2*s-p.x; color*=p.y+p.x+.2*s-.8; color*=p.y+p.x+.2*c-1.2; //color *= distance(p, vec2(.5)) - .3 - .1 *s; //color *= distance(p, vec2(.5)) - .1 - .4 *abs(c); color*=r.x+.2*c-.5; color*=r.x+.2*s-.3; color*=r.y+.2*s-.5; color*=r.x+.2*s-p.y; color*=r.y+.2*c-p.x; color*=r.y+p.x+.2*c-.8; color*=r.y+p.x+.2*s-1.2; color*=distance(r,vec2(.5))-.4>0.?0.:1.; color=color.x>0.?vec3(1.):vec3(-1.); gl_FragColor=vec4(color,1.); }