\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
input colorbrewer-rgb
beginfig(1);
 path o; numeric r; r = 1/4;
 o = (for i=0 upto 3: subpath (i+r, i+1-r) of unitsquare shifted -(1/2, 1/2) -- endfor cycle) scaled 42;
 picture unit; path s; s = unitsquare scaled arclength subpath (1, 3/2) of o
 rotated -45 shifted point 3/2 of o;
 unit = image(
   fill o withcolor Blues 8 5;
   for i=0 upto 3: fill s rotated 90i; endfor
 );

 pair u, v; u = 42 right; v = u rotated 90; numeric n; n = 3;
 for i=-n upto n:
   for j=-2n upto 2n:
     draw unit if (i+j) mod 4 < 2: reflectedabout (dir 135, dir -45) fi
       shifted ((2i + j mod 2)*u  + j*v);
   endfor
 endfor

endfig;
\end{mplibcode}
\end{document}