\documentclass[border=5mm]{standalone} \usepackage{luamplib} \begin{document} \mplibtextextlabel{enable} \begin{mplibcode} input colorbrewer-rgb beginfig(2); numeric u, v; u = 60; v = 21 * sqrt(3); path face[]; for i=0 upto 2: face[i] = unitsquare scaled u rotated 45 yscaled (1/sqrt(3)) rotated (120-120i); endfor picture cube, sides; cube = image( for i=0 upto 2: fill face[i] withcolor Oranges[8][i+1]; endfor for i=0 upto 2: draw subpath (1, 4) of face[i]; endfor ); sides = image( for i=0, 2: fill face[i] withcolor Oranges[8][i+1]; endfor for i=0, 2: draw face[i]; endfor ); draw cube shifted (0u, 2v); draw cube shifted (0u, 4v); draw cube shifted (0u, 6v); draw cube shifted (1u, 5v); draw cube shifted (2u, 4v); draw cube shifted (3u, 3v); draw cube shifted (2u, 2v); draw cube shifted (u, v); draw cube; draw sides shifted (0u, 2v); endfig; \end{mplibcode} \end{document}