Trajectory optimization is a technique for finding dynamically feasible trajectories of a mechanical system that approximate a desired trajectory. These tools provide an excellent abstraction from a system's dynamics, allowing a user to animate a robot without considering dynamic complexities, including coupling, instability, and uncontrollable subspaces. The animator focuses on the more relevant ideas of expression and communication. The trajectory optimization bridges the gap between animator and robot, automatically projecting trajectories into the system's reachable set and determining the necessary inputs to the system. These techniques handle closed kinematic chains, constraints, and unstable systems without modification. We give a detailed overview of the optimization technique and present an example from the autonomous marionette project. A waving motion is animated for a two-dimensional arm and the corresponding dynamically-feasible trajectory is found for an under-actuated marionette arm. The trajectory is tested on robotic marionette platform and correctly approximates the original waving animation. The marionette arm is an excellent test bed because it is under-actuated, highly nonlinear, and highly coupled.