The Linkage program was meant to be simple to use; If you add a rotating input connector, it will rotate any links or gears it is a part of. To create a crank, just drop in a link with two connectors and change one of them to be an input (which are always also anchors). That’s it!

A Crank

But the simplicity of the Linkage user interface comes at a price; Any more complex mechanism starts to require more work than what might be necessary in other software. My examples of planetary gear mechanism are an example of this. The problem is that there is a center shaft that needs to rotate the sun gear but also needs to have a carrier link rotate with the planet gear. Although it’s possible to have the planet in a real system float between the sun and ring, that gear really needs to be kept in place from falling out of the mechanism (and attached to sun/ring with a link so the software has something it can use to simulate the mechanism). The center shaft as an input will try to rotate both the carrier and the sub gear, something that breaks the mechanism. To solve this right now, I usually use a chain drive to turn the sun gear on an anchor since the carrier link can also spin freely and differently on that anchor (see below)

Planetary Gears

One solution that I am considering is a special input option that says “only rotate elements that are fastened to this input.” But that’s not how fastening works and the elements might also need to be fastened to something else. Maybe I could just add a link properties option that says “This rotates freely on any inputs.” That would be a good way to do this too and would be the easiest to test. But what happens later when I allow motors to be on moving links? A link could have two input connectors and only one that needs to work (the other being a “spin freely” connector). Arg. This stuff is harder than it looks.

I will go with the fastening idea since fastening is already working. I can just make all inputs only work on fastened elements until later after this is shown to be a viable solution. Then I’ll add the UI to make it an option and release it.


Oh darn. I already use the fasten option to make a gear not rotate on an anchor and be fixed to the ground unable to rotate at all. I’ll need a completely new idea I guess.