Not going to win by byte count but maybe it'll make for an enjoyable rob.
import re
exec("d,*r=[[f]*9for f in' YBRGOW'];u,q,v,p,s,w,x,y,z=lambda v:[v[x],y(y(y(v[z]))),v[s],y(v[q]),v[0][::-z],v[p][::-z]],3,lambda w:[y(w[0])]+[w[j%p-~all(s<len(set(f))for f in w)][:q]+w[j][q:]for j in(z,x,q,p)]+[w[s]],4,5,lambda u:[y(u[0])]+u[x:s]+[u[z],y(y(y(u[s])))],2,lambda f:[f[int(v)]for v in'630741852'],1;r="+"(r);r=".join("".join("uuuvu v uuvuu wwwuvuuuw uvuuu wuvuuuwww".split()[778194%ord(t)%9]*(ord(n or'y')%6)for t,n in re.findall("([B-U])(['2i]?)",input())))+"(r);y=' '.join")
for u in[d,r[0]],r[z:s],[d,r[s]]:
for w in 0,q,6:print(y(y(v[w:w+q])for v in u))
A full program reading a valid move sequence from STDIN that attempts to print the net of a Rubik's cube scrambled as instructed. I'll also specify a bound of 20 face turns :)
Try it online! Or see a few working ones here (the last one places the cube into the Superflip)
The simulator performs a quarter-turn of a face by rotating the entire cube as need be, turning the cube's "U" face a quarter-turn, and rotating back. To turn the "U" face it permutes the stickers on the face and, separately, the stickers around the "U" face's edge, on the "L", "F", "R", and "B" faces. The latter is performed by concatenating two slices, but the code:
...+[w[j%p-~all(s<len(set(f))for f in w)][:q]+w[j][q:]for j in(z,x,q,p)]+...
should be:
...+[w[j%p+z][:q]+w[j][q:]for j in(z,x,q,p)]+...
...or with less obscured code:
...+ [faces[j%4+1][:3] + faces[j][3:] for j in (1,2,3,4)] +...
i.e:
...+ [first_3_of_previous + last_6_of_current for LFRB] +...
This is only the case when all(s<len(set(f))for f in w)
is False
(~False = ~0 = -1-0 = -1
)
or, equivalently, when:
all(5 < len(set(stickers)) for stickers in faces)
Otherwise ~all(...)
evaluates to ~True = ~1 = -1-1 = -2
and stickers are copied from the wrong faces for this band (instead of using the first three stickers of each of the FRBL faces to fill the LFRB band it uses the first three stickers of each of the RBDF faces.
Thus, after the cube shows all six colours on every one of its six sides the simulator fails.
An 8-move sequence that achieves such a state is F' B L R' B F R2 D2
, so adding one more face turn does it, thus a crack is something like F' B L R' B F R2 D2 U
- see that the fourth cube net output here is different to the, correct, third cube net, while the first and second are the same, and show all six colours on all faces prior to the attempted final "U".