JSFiddle - React, Tailwind, and code Playground
by HDL52
HTML
<script src="https://unpkg.com/kokomi.js/build/kokomi.umd.js"></script>
<shader-toy>
<script type="frag"></script>
</shader-toy>
CSS
body {
margin: 0;
background: black;
}
JavaScript
document.querySelector("[type=frag]").textContent = /* glsl */
`
#define t iTime
#define r iResolution.xy
void mainImage( out vec4 fragColor, in vec2 fragCoord ){
vec3 c;
float l,z=t;
for(int i=0;i<3;i++) {
vec2 uv,p=fragCoord.xy/r;
uv=p;
p-=.5;
p.x*=r.x/r.y;
z+=.07;
l=length(p);
uv+=p/l*(sin(z)+1.)*abs(sin(l*9.-z*2.));
c[i]=.01/length(abs(mod(uv,1.)-.5));
}
fragColor=vec4(c/l,t);
}
`
kokomi.ShaderToyElement.register()