#define highp float

vec2 uv;
vec2 rr;
vec2 myXY;
float pi;

float myTime;
vec3 col;
float random (vec2 st) {
return fract(sin(dot(st.xy,
vec2(12.986698,78.276733)))*43758.545317);
}


float random2 (vec2 st) {

  float a = 12.9898;
     float b = 78.233;
     float c = 43758.5453;
     float dt= cos(st.x)+cos(b)+cos(st.y)+cos(a);
     float sn= mod(dt,3.14);
    return fract(sin(sn) * c);
 }
 
vec2 frame(){
rr=uv+vec2((uv.x/(3.0+(random(vec2(pi,pi))))),uv.y*(mod(myTime,pi)));
return rr;
}

void mainImage( out vec4 fragColor, in vec2 fragCoord ){
pi= 1.0-(1.0/3.141592);
myTime-=mod(iTime,220.0777);
uv = fragCoord/iResolution.zz;
pi+=sin(pi);
col.b+=cos(1.0-col.b);
myTime+=iTime*0.0000988;
pi = 3.141592;

uv = uv*1.001;

uv = (fragCoord/(random(vec2(myTime,pi))))/iResolution.xz;
    // Normalized pixel coordinates (from 0 to 1)
    // Time varying pixel color
vec3 col = random(vec2(1.0,pi))-cos(uv.xyx+vec3(random(vec2(abs(myTime),pi)),frame()));
col = random(vec2(1.0,pi))-cos(uv.xyx+vec3(random(vec2(abs(myTime),pi)),frame()));
col=col*pow(1.110,col.g);
uv = fragCoord/iResolution.yy;
uv += uv*1.01;
myTime=iTime*0.0588;

uv = (fragCoord/(random(vec2(myTime,pi))))/iResolution.xz;
    // Normalized pixel coordinates (from 0 to 1)
    // Time varying pixel color
 col = random(vec2(1.0,pi))-cos(uv.xyx+vec3(random(vec2(abs(myTime),pi)),frame()));
col = random2(vec2(1.0,pi))-cos(uv.xyx+vec3(random2(vec2(abs(myTime),pi)),frame()));
col=col*pow(1.110,col.r);
uv = fragCoord/iResolution.xx;
uv += uv*1.01;
myTime=iTime*0.0588;

  uv = vec2(random(vec2(0.51,pi)),random2(vec2(0.51,pi)));
col=col*sqrt(col.r);
uv += fragCoord/iResolution.zx;
col=col/iResolution.zzz;
col+=vec3(0.532,0.0,0.330);
    fragColor =vec4(col,1.0);col+=vec3(0.532,0.0,0.330);
    fragColor =vec4(col,1.0);col+=vec3(0.532,0.0,0.330);
    fragColor =vec4(col,1.0);col+=vec3(0.532,0.0,0.330);
    fragColor =vec4(col,1.0);
 //   fragColor =vec4(col,0.9988);


}
