WebGL Lab.
// title: sketch-2020-01-13-17-33 // author: yue #ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; void main(){ vec2 st=gl_FragCoord.xy/u_resolution.xy; float s_time=sin(u_time); float c_time=cos(u_time); vec3 color=vec3(.3); float diff=st.x+mod(abs(sin(u_time+st.x)),2.5*st.x*st.y); vec3 diff_color=vec3(diff*s_time+st.x,.8*c_time+st.y*diff,diff*st.x+st.y); gl_FragColor=vec4(color/diff_color,1.); }