convert this shader to our format: // Copyright Inigo Quilez, 2016 - https://iquilezles.org/ // I am the sole copyright owner of this Work. // You cannot host, display, distribute or share this Work in any form, // including physical and digital. You cannot use this Work in any // commercial or non-commercial product, website or project. You cannot // sell this Work and you cannot mint an NFTs of it. // I share this Work for educational purposes, and you can link to it, // through an URL, proper attribution and unmodified screenshot, as part // of your educational material. If these conditions are too restrictive // please contact me and we'll definitely work it out.  // based on https://www.shadertoy.com/view/XdXGDS  #define AA 2  // Other "Iterations" shaders: // // "trigonometric"   : https://www.shadertoy.com/view/Mdl3RH // "trigonometric 2" : https://www.shadertoy.com/view/Wss3zB // "circles"         : https://www.shadertoy.com/view/MdVGWR // "coral"           : https://www.shadertoy.com/view/4sXGDN // "guts"            : https://www.shadertoy.com/view/MssGW4 // "inversion"       : https://www.shadertoy.com/view/XdXGDS // "inversion 2"     : https://www.shadertoy.com/view/4t3SzN // "shiny"           : https://www.shadertoy.com/view/MslXz8 // "worms"           : https://www.shadertoy.com/view/ldl3W4 // "stripes"         : https://www.shadertoy.com/view/wlsfRn   vec3 shape( in vec2 uv ) { 	float time = iTime*0.05  + 47.0;      	vec2 z = -1.0 + 2.0*uv; 	z *= 1.5;          vec3 col = vec3(1.0); 	for( int j=0; j<48; j++ ) 	{         float s = float(j)/16.0;         float f = 0.2*(0.5 + 1.0*fract(sin(s*20.0)));  		vec2 c = 0.5*vec2( cos(f*time+17.0*s),sin(f*time+19.0*s) ); 		z -= c; 		float zr = length( z ); 	    float ar = atan( z.y, z.x ) + zr*0.6; 	    z  = vec2( cos(ar), sin(ar) )/zr; 		z += c;          // color		         col -= 0.5*exp( -10.0*dot(z,z) )* (0.25+0.4*sin( 5.5 + 1.5*s + vec3(1.6,0.8,0.5) )); 	}              return col; }  void mainImage( out vec4 fragColor, in vec2 fragCoord ) {     float e = 1.0/iResolution.x;      vec3 tot = vec3(0.0);     for( int m=0; m<AA; m++ )     for( int n=0; n<AA; n++ )     {                 vec2 uv = (fragCoord+vec2(m,n)/float(AA))/iResolution.xy; 	    vec3 col = shape( uv );         float f = dot(col,vec3(0.333));         vec3 nor = normalize( vec3( dot(shape(uv+vec2(e,0.0)),vec3(0.333))-f,                                      dot(shape(uv+vec2(0.0,e)),vec3(0.333))-f,                                      e ) );         col += 0.2*vec3(1.0,0.9,0.5)*dot(nor,vec3(0.8,0.4,0.2));; 	    col += 0.3*nor.z;         tot += col;     }     tot /= float(AA*AA);      tot = pow( clamp(tot,0.0,1.0), vec3(0.8,1.1,1.3) ); 	     vec2 uv = fragCoord/iResolution.xy;     tot *= 0.4 + 0.6*pow( 16.0*uv.x*uv.y*(1.0-uv.x)*(1.0-uv.y), 0.1 );      fragColor = vec4( tot, 1.0 ); } Shape Deformations