Tile the plane with this modified circle Take a unit circle centered on the origin. In any two neighboring quadrants, mirror the curve of the circle across the lines connecting the circle's x and y intercepts.

With the resulting shape, you can tile the plane:



I made this image with the awesome 2D physics sandbox Algodoo!

Write a program that outputs an image similar to this one in some common lossless image file format. You may save the image as a file with the name of your choice or you may simply display it. No input should be taken.

Rules:


The entire image must be tessellated with the modified-circle tiles using any two visually distinct RGB colors: one for the vertically pointing tiles, one for the horizontally pointing tiles.
The radius of the circle tiles should be at least 32 pixels. (The radius in the image above is about 110 pixels.)
The image should be at least 4 tiles wide and 4 tiles tall. This, combined with the rule above, means that images can have a minimum size of 256&times;256 pixels. (The image above is 4 tiles by 4 tiles.)
The tessellation may be translated by any amount. For example, the top left corner of the image does not need to be the vertex where tiles meet. (The tessellation should not be rotated, however.)
You may use external graphics libraries that have commands for drawing circles and outputting images and the like.
The curves really should approximate circles, as can done with the midpoint circle algorithm, which most graphics libraries will do for you.
Anti-aliasing around the edges of the tiles is allowed but not required.


The shortest submission in bytes wins.
POV-Ray, 199 163
Old version
camera{location -9*z}light_source{-9*z}#declare L=union{#for(X,-9,9,2)#for(Y,-9,9,2)cylinder{X*x+x+Y*y,&lt;.001*pow(-1,(X+Y)/2),0,.1&gt;+X*x+x+Y*y,1}#end#end}object{L pigment{color x}}object{L rotate z*90}

Same output, but golfed down further by using default light/camera, so I dont even need to specify them
#declare L=union{#for(X,-9,9,2)#for(Y,-9,9,2)cylinder{&lt;X+1,Y,9&gt;,&lt;.001*pow(-1,(X+Y)/2),0,.1&gt;+&lt;X+1,Y,9&gt;,1}#end#end}object{L pigment{color rgb x}rotate z*90}object{L}


I am using as many default parameters for camera and lightsource as possible, thats why it is a little dark. Lets ungolf it first
camera{location 9*z look_at 0}
light_source{9*z color 1} 
#declare L=union{
    #for(X,-9,9,2)
        #for(Y,-9,9,2)
            cylinder{&lt;1+X,Y,0&gt;,                                 //central axis, start
                     &lt;1+X,Y,0&gt; + &lt;.001*pow(-1,(X+Y)/2), 0, .1&gt;, //central axis, end
                      1}                                        //radius
        #end         
    #end
}                         
object{L pigment{color x}} // x is the &lt;1,0,0&gt; vector, here interpreted as RGB
object{L rotate&lt;0,0,90&gt;}

It is obvious what is happening once we increase the offset of the cylinder axis and change the perspective