// rework of this https://glslsandbox.com/e#80649.0
#ifdef GL_ES
precision mediump float;
#endif
//uniform float iTime;
//uniform vec2 iResolution;
#define PI 3.14159265358979
vec3 color = 0.3*vec3(1.0,0.7,0.3);
float d2y(float d){return 1./(0.5+d)*sin(iTime/7.);}
float radius = 0.95;
float rad(float radius) {
return radius*sin(iTime);
}
float fct(vec2 p, float r){
float a = 0.2*mod((p.y, p.x)+sin(0.)*2.+sin(1.)*2., 2.*PI);
float scan = 0.*9.;
return (d2y(a)+scan)+(1.-step((radius*+0.5),r));
}
float circle(vec2 p, float r){
float d=distance(r, radius*+0.5);
return d2y(35.*d);
}
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
vec2 position = (( fragCoord.xy )-0.5*iResolution.xy)/ iResolution.y;
position/=cos(.0*length(position));
float y = 0.0;
float dc = length(position);
y+=fct(position, dc);
y+=circle(position, dc);
y=pow(y,4.90);
fragColor = vec4( sqrt(y)*color,1. );
}