Mathematica, 237 bajtów
n={-1,1}#&;c_~g~s_:=Polygon[c+s#&/@{k={12,9},m=n@k,t={0,-12}}];p={#,#2~g~1,#3~g~-1}&;a=p[Cyan,#-k,#+m]&;b=p[Blue,#-t,#+k]&;c=p[Red,#-m,#+t]&;Graphics@{{a@#,b@#,c@#}&/@{j=4k,s=4{4,9},n@s,4m,r={-32,8},q=-4{4,5},4t,n@q,n@r},a@j,b@s,c@j,c@s}
Wersja łatwiejsza do odczytania:
1 n = {-1, 1} # &;
2 c_~g~s_ := Polygon[c + s # & /@ {k = {12, 9}, m = n@k, t = {0, -12}}];
3 p = {#, #2~g~1, #3~g~-1} &;
4 a = p[Cyan, # - k, # + m] &;
5 b = p[Blue, # - t, # + k] &;
6 c = p[Red, # - m, # + t] &;
7 Graphics@{
8 {a@#, b@#, c@#} & /@
9 {j = 4 k, s = 4{4, 9}, n@s, 4 m, r = {-32, 8},
10 q = -4{4, 5}, 4 t, n@q, n@r},
11 a@j, b@s, c@j, c@s}
Wiersz 1 definiuje funkcję, nktóra neguje pierwszą współrzędną uporządkowanej pary. Linia 2 definiuje funkcję, gktóra tworzy (z grubsza) równoboczny trójkąt wyśrodkowany w punkcie ci skierowany w dół lub w górę w zależności od tego, czy sjest 1lub -1. Linia 3 określap się szablon równoległobok składający się z koloru i dwa trójkąty, a linie 4-6 określić a, bic się trzy różne typy szczególnych z równoległoboków, które pojawiają się w kostki.
Linia 8 definiuje funkcję, {a@#, b@#, c@#}&która rysuje cały sześcian wyśrodkowany w punkcie #; wiersze 9 i 10 odnoszą się do dziewięciu punktów potrzebnych do utworzenia większego trójkąta. W ten sposób powstaje dziewięć kostek, zaczynając od prawego górnego rogu i idąc w kierunku przeciwnym do ruchu wskazówek zegara, przy czym kolejne zakrywają części wcześniejszych. Na koniec linia 11 przerysowuje cztery równoległoboki (w prawym górnym rogu obrazu), aby ostatecznie zakryły późniejsze kostki, tak jak powinny. Dane wyjściowe są poniżej:
