The center tile was drawn in Inkscape as SVG and converted using svg_to_drawables.py from the tools/ directory. Then it's repeated over the infinite surface using {8, 3} octagonal tiling with some dynamic corrections to the fill colors to make them depend on tile index, as they do in M.C. Escher's original.
See the code in docs/escher.html.