// -6  thanks to iq      ??
// -14 thanks to Fabrice ??
void mainImage( out vec4 O, vec2 u )
{
    vec3 p = iResolution,
         v = vec3((u+u-p.xy)/p.y/6., 1);        
    v.zy *= mat2(cos(vec4(0, -11, 11, 0) - .37));
    
    for (float d, i; i++ < 1e2; d += 1. - .3*O.r + .5*p.y) 
        p = vec3(.1,0,.5) * iTime + v*d + .3*p.y * v*d // 100% jank
          + cos(p.x + p.z + iTime) / 1e2, // cos for waves
        O = texture(iChannel0, .07*p.xz);
       
    O *= 5. * O*O;
}


// Original
/*
#define T texture(iChannel0, .07*p.xz)

void mainImage( out vec4 O, vec2 u )
{
    vec3 R = iResolution,
         v = normalize(vec3(u + u - R.xy, 6. * R.y)),
         p;
            
    v.zy *= mat2(cos(vec4(0, -11, 11, 0) - .37));
    
    for (float d, i; i++ < 1e2; ) 
        p = vec3(.1, 0, .5) * iTime + v * d + .3 * p.y * v * d // 100% jank
          + cos(p.x + p.z + iTime) / 1e2, // cos for waves
        d += 1. - .3 * T.r + .5 * p.y;
       
    O = O - O + 5. * T * T * T;
}
//*/
