@TomF @foone What I realized is that a quadrature direction encoder is also the upper 2 bits of a Gray code, so it's actually the same thing.
I don't have a great intuitive reason for why it "looks" like the pattern breaks in the last row, but thinking about every column needing 1 bit to flip: the "extra" flip in the top row fills in the gap where everything else has gone to 0 to fill out the sequence of 2^6 values.
@TomF @foone One way to prove it, is that if you look at one complete wedge in 1/6 of the wheel, then cut it in half by taking only the half where the inner ring is black, the pattern will be self-similar, and you can repeat this until you reach the last 2 rows.
The top row is always "half" the pattern it would be if there were another row on top, which ends up giving its pulses the same width as the second last row.