Well I brute forced it. Although I like the expressions idea. I set up a simple example with each side of nine squares centered at 0,0,0. I also created up, down, front, back, right and left nulls to be have each side parented to. These in turn were ALL parented to one global null so that I could move the whole cube.
As in the posts above I comped all pertinent squares to the side that was to rotate. At the end of each 90 degree rotation, I duplicated the comp and deleted all keys in the new comp. I then re-parented to whichever controllers were about to make the next 90 degree move. And then I made the new 90 degree animation… And repeat.
Check it out at https://www.rit.edu/~accpph/media/00_ANIMATION.wmv
It’s not perfect yet, but the next one will be really good.
ACC