I don't know the optimal way to jumble them up though. I could do translations, and rotations, then calculate new sticks. Maybe do some box tiling with rotations, for repetition? Maybe rotation tiling?
I don't know if I'll be able to fix the color assignment. I've a couple of ideas. Took me a couple of days to code this though. And I have more than one direction to take this. First- random assignment of location (rather than simple translation+rotation per cycle).