A checkerboard is a square lattice with twofold color symmetry. The alternating black and white squares make it more interesting than a simple square lattice. Thus I want to have too some twofold color symmetry for our kaleidoscopes. Farris has done this too in his book “Creating Symmetry”; but I am proposing a different method.
First think about the simple square lattice. How would you tell a human or a computer to build it ? You could say: “Place squares side by side in rows and columns.” This defines the geometrical structure and does about the same as the functions X(x,y) and Y(x,y) of the kaleidoscope, which can generate rosettes, friezes or tilings of the plane. Now consider the checkerboard and how to get it. You could say: “Make a square lattice and for each square look at the sum of its row and column numbers. If the sum is an even number, then paint the square black, and else paint the square white.” Think of this sum as an extra function W(x,y) for defining the color symmetry.
Such a function W(x,y) is useful to generate kaleidoscopic images with two-color symmetry. For a pixel at the position (x,y) we look up the color of the input image at the mapped position [X(x,y),Y(x,y)]. For positive W(x,y)>>0 the pixel gets this color without change, and for negative W(x,y)<<0 we somehow transform the color. If W(x,y) is near 0 then we use an interpolated color. Clearly, symmetries of W must relate to symmetries of X and Y as in the example of the checkerboard.
For further discussion, we use the more convenient complex numbers z=x+i*y for points in the plane and a complex function Z(z)=X(x,y)+i*Y(x,y) for the mapping. A complex function S(z) is a symmetry of the function Z if Z(S(z))=Z(z) for all z. Thus the kaleidoscope will look up the same point in the input image for z and for S(z). Then, both points will have the same color in the kaleidoscopic image if use no color transformation. To get two-color symmetry we make that W(S(z))=-W(z) and use it to control a suitable transformation of color. This makes that z and S(z) in general have different colors. Then the symmetry S(z) is broken in the image but S(S(z)) is still a symmetry because W(S(S(Z)))=-W(S(z))=W(z).
For the checkerboard, the important symmetries S(z) are translations in x or y-direction: S(x,y)=(x+a,y) and S(x,y)=(x,y+a), where a is the length of the sides of the squares. As color control function we can use W(x,y)=cos(π*x/a)*cos(π*y/a), which is positive on some squares and negative on their neighboring squares. We get a checkerboard pattern if we draw white pixels for W>0 and black pixels for W<0. Note that doubled translations by 2*a in x or y-direction are symmetries of the checkerboard.