For some unknown reason, the code below does not work in Maple 2018.1, but works in Maple 2015 and Maple 2017 (the idea is taken from here)
restart; with(plottools): with(plots): V1,V2,V3,V4,V5,V6,V7,V8:=[0,-1,0],[0,0,0],[1,0,0],[1,-1,0],[0,-1,1],[0,0,1],[1,0,1],[1,-1,1]: # The vertices of the cube Faces:=[[V1,V4,V8,V5],[V5,V6,V7,V8],[V2,V3,V7,V6],[V1,V2,V3,V4],[V3,V4,V8,V7],[V1,V2,V6,V5]]: # The list of the faces Colors:=[green, red,RGB(1, 0, 4),blue,grey,gold]: # The list of the colors Cube[0]:=display([seq(polygon(Faces[i],color=Colors[i]),i=1..6)]): for n from 1 to 7 do F[n]:=t->rotate(Cube[n-1],t, [[0,n-1,0],[1,n-1,0]]): Cube[n]:=rotate(Cube[n-1],-Pi/2, [[0,n-1,0],[1,n-1,0]]): A[n]:=animate(display,[F[n](t)], t=0..-Pi/2,paraminfo=false); od: for m from 6 to 0 by -1 do G[m]:=t->rotate(Cube[m+1],t, [[0,m,0],[1,m,0]]): B[m]:=animate(display,[G[m](t)], t=0..Pi/2,paraminfo=false); od: C1:=display([seq(A[k], k=1..7)], insequence): C2:=display([seq(B[k], k=6..0, -1)], insequence): display([C1,C2], insequence, scaling=constrained, axes=normal);