I've written a space colony simulation game called High Frontier. It correctly simulates rotational stability when most of the mass is dominated by a single large spinning part. For example, a squat cylinder will be stable, but a long cylinder will end up tumbling end over end, as shown: This tumbling doesn't happen in ideal physics bodies; it's an effect of energy loss (due to subtle flexing, for example). I simulate this in the following way: for each part of the structure, I hypothesize a small random change in its spin axis (imagine some minor perturbation), calculate what its angular velocity would be around that axis, and its new kinetic energy as described here. If the new kinetic energy is less than the previous kinetic energy, I keep the change; otherwise I throw it out. So, over time the system ends up in its lowest-energy state. But now I want to simulate systems that involve multiple spinning parts joined together. For example, consider O'Neill cylinders, which is a space colony design consisting of two counter-rotating cylinders joined at the end: When I build such an assembly in my simulator, despite the cylinders rotating in opposite directions, it still flops over and starts rotating end-over-end. When we imagine changing the axis a little bit (towards the short axis), this is a reduction in kinetic energy for both cylinders, and so a reduction in the total energy of the system... or so it seems to me. I'm pretty certain this is not how conjoined rotating parts behave in real life, so clearly I've missed something in my simulation. I get that the total angular momentum of the system is zero, but each of the parts has kinetic energy, and I'm simulating on a part-by-part basis. So what's missing? Finally, if it helps focus our thoughts: how does the arrangement of the parts matter? Would two cylinders connected end-to-end work just as well as side by side?