Someone asked (
https://news.ycombinator.com/item?id=6230807) in the discussion of
507 Mechanical Movements for a tool that could simulate those movements. This is such a tool. You could pick an interesting mechanical movement (
http://507movements.com/index23.html) and try building it.