@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.
@foone until you need to troubleshoot the device they're giving inputs to.
Then they can be a real headache.
@foone *gets out her punchcard*
Also I really should make either an actual punchcard or maybe a stamp card and appropriate stamps for the joke.