Something, don't know what, made me think of Kaleidoscopes (an optical pattern making toy, if you haven't come across them before) and I thought maybe this would be a good moderately complex graphical project to tackle in Python.
It appears that the term Kaleidoscope / Kaleidoscopic is more often applied to Kaleidoscope-like mirrored / reflected photo effects nowadays, but what I want is to make something that looks very like the effect produced by the bits of coloured glass / plastic used in the traditional toy.
I'm assuming Pygame would be where to start with this, but maybe I'm wrong: Is there a better way / better toolbox for this?
The basic approach will be to have a circular display area populated with a large number of simple 2D shapes. All of these objects initially need to be able to rotate around the centre of the circle as though glued to a circular cardboard base and disappear / reappear as they enter / exit the upper right quadrant. Once that's working, the other three quadrants of the display will be filled with appropriately reflected / mirrored copies of what is visible in the upper right quadrant.
That's the first phase:
Second phase would be to allow the pieces to push / move each other around on the circular 'base' as the Kaleidoscope is 'turned' to make an infinitely variable succession of patterns. They will ideally never overlap, but preferably loosely interlock side by side. This bit is where I think it is likely to get quite complicated.