Oh, the joys of being a programmer - you can put your nose into any topic and do something fun. In this case a team of researchers has automated and improved the design of wind-up toys.

The researchers, from University of Science and Technology of China, the Chinese University of Hong Kong and University College London, will present their work at SIGGRAPH Asia 2017 in Bangkok at the end of November.

They introduce it saying:
"Wind-up mechanism, also known as clockwork mechanism, generally employs a winding key for one to deposit energy in an internal metal spring. Once released, the spring triggers the attached shaft to rotate and drive the motions of the toy parts through the various mechanisms inside the toy. Although hugely popular as lightweight small toys, to the best of our knowledge, this is the first work that presents a computational system on constructing mechanisms in wind-up toys."

If you have studied a formal course in computer science you might have been lucky enough to take a unit in linkages - the design of mechanical systems to convert one sort of motion into another. Linkages is not a popular topic, but it is very important for tasks such as building factory automation devices and even robots.

In this case some of the same principles have been applied to clockwork toys. The idea is that in this day and age of the 3D printer it should be possible to use software to generate and optimize the linkages needed to produce the movements you want in a toy.

I have to say that I think the teapot is amazing and everyone involved in computer graphics should have at least the teapot on their desk to play with. (In case you have missed it, the teapot is a icon of computer graphics.) The rabbit, however, is like something dreamed up by a neural network and should come with a warning.
teapotwindup

The basic method uses a system of mechanisms that can be put together to make the desired motions and then an analysis and optimization step. It is quite involved, but not difficult to understand so if you want to know more read the paper:

"First, we identify eleven elemental mechanisms commonly found in wind-up toys, and model their geometry, kinematics, and connections with analytical equations. Second, we automatically construct conceptual designs represented as motion transfer trees and initialize mechanisms by connecting elemental mechanisms following the transfer trees. Finally, we iteratively optimize the geometry and layout of elemental mechanisms in a coarse-to-fine manner, so that the wind-up mechanism becomes more compact and its part motions resemble the user-specified motions."

There is more work to be done, specifically a torque analysis to make sure that the motor can drive the linkages and the addition of a walking mode.

Are there any practical applications apart from improved toys?

"Lastly, besides wind-up toys, we plan to explore the use of our methods on micro robots and mechanical toys that are driven with limited battery power."

There was a time when to achieve a complex motion you would always consider a suitable linkage first. Everything from a case catch to a shaker and sorter for small parts. Today, we tend to just throw a few motors at the job and let software program the motion. Perhaps there are still cases where clever mechanics is the solution.