#define MOIRE_STEP 0.13

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    vec2 U = (2.0*fragCoord-iResolution.xy)/iResolution.y;
	
    vec2 foci_1 = vec2(-1.1*sin(2.0*iTime)+1.0*cos(3.0*iTime), 1.0*cos(3.0*iTime));
    vec2 foci_2 = vec2(1.1*sin(4.0*iTime)+1.0*cos(5.0*iTime), 0.2*cos(3.0*iTime));

    float d1 = length(foci_1-U);
    float d2 = length(foci_2-U);
    
    float check = floor(d1/(MOIRE_STEP+0.1*sin(iTime)))*floor(d2/(MOIRE_STEP + 0.1*sin(iTime)));
    if(mod(check,2.0) == 0.0) fragColor = vec4(abs(sin(iTime)), abs(cos(iTime)), abs(sin(iTime)), 1.0);
	else fragColor = vec4(0.0);
}
