Reference
This is an automata watch created by the Swiss watchmaker company Jaquet Droz. The company was founded by Pierre Jaquet-Droz in 1738 and has grown to make luxury watches costing up to $500,000. The birds are modeled from clay and hand painted. This is one of the more famous watches. Source: https://www.youtube.com/watch?v=yJamzhuA1Jc&list=PLbBjIAd7Lpp2- PDuo2s0fyv7Yp_Ipf7x6&index=4
Technical Process
Feathers – To first position the feathers, I oriented a grid along the YZ Plane, keeping them in a row behind on another. I changed the primitive type to Points, making sure there was only one row of points on the grid. I modeled a single feather and copied it onto the points of the grid using a copy node so they would overlap one another.
I then added a primitive node and used the expression abs(sin($F x 1) x ($PT / $NPT) x -50) in the Z rotation parameter to make each feather swing one after another within the positive sine values along a specified angle. The feather geometry had to be packed so that each point would hold only one primitive.
Expressions – For rotating the gears and clock hands, I used $F x 1 which represents the number of angles rotated per frame. To make sure the gears had the correct ratio when rotating, the smaller gear references the rotation expression of the larger gear and multiplies it by the number of teeth on the larger gear divided by the number of teeth on the smaller gear. This allows both to rotate without intersecting one another.
For animating the nodding/swinging of the birds, levers, and egg shells, I used abs(sin($F x 2) x 20) in the rotation Z parameter which takes the absolute sine value of the angle per frame and rotates the object until it reaches the specified angle. The inner number represents the speed of rotation or how many angles the object rotates per frame and the outer number represents the angle determining the range of rotation. I used the same expression for the bobbing motion of the bird emerging from the egg but plugged the expression into the transform Y parameter instead of rotation. The values now represent units rather than angles.