Des précisions sur comment marchent ces rubiks cube ?
C'est assez simple en fait. Déjà comme l'a dit xtrium il n'y a que la face avant qui a des cubes jaunes, tous les autres sont noirs. On commence par faire le centre en envoyant colonne par colonne tous les cubes qui doivent passer au noir sur la face du haut avec une suite de 3 rotations. Par exemple pour la deuxième colonne du "E" ça donne : Rz(Pi/2, {1, 3}), Rx(Pi/2, {3}) puis Rz(-Pi/2, {1, 3}), où Rz(Pi/2, {1, 3}) est une rotation directe de Pi/2 autour de l'axe des x des tranches 1 et 3 du Rubik's cube (comptées selon la direction de l'axe).
Avec une astuce similaire on peut faire les arêtes puis terminer par les sommets. Par contre petit problème, moi qui voulait avoir un algorithme général indépendant de la lettre à afficher c'est raté puisque je ne peux pas faire les lettres qui ont 4 coins noirs (le O, le I et l'espace) par le même procédé. Pour ces 3 là je fais donc au cas par cas, ce qui est heureusement ridiculement facile

Le truc avec ce procédé c'est qu'il est linéaire avec la taille du cube. On pourrait très bien afficher un Rubik's cube 100x100x100 sans trop de problèmes, mais ça ne serait pas je pense un bon calcul parce que la méthode de résolution deviendrait alors trop apparente et un peu monotone.
Pour passer d'une lettre à une autre je défait juste les rotations précédentes pour revenir à l'état de départ (tout jaune) avant d'enchaîner sur la séquence suivante. Ça ne se voit pas trop au final parce que la fonction qui concatène les rotations détecte celles qui s'annulent mutuellement, ce qui fait que bien souvent on ne passe pas par l'état "tout jaune".