### Summary The goal of this paper is to provide intuitive controls to creating new sequences of motion from a database of motion data. The animator may wish to describe what actions should take place when and which actions should not. He may also wish to place the character at a given position or orientation at a given time. This is achieved by first annotating the database of motion in order to describe what each clip represents. Clips of motion are then clustered by inspecting how similar they are to each other (using a distance metric similar to that used by motion graphs). When the user requests specific motions by providing annotations, random samples from the clusters are searched in an attempt to match with the constraints provided by the user. After performing this search, the search is repeated on the same set at a finer resolution, and again at a finer, finally resulting in an output motion. This process is repeated a few times in order to search a larger, representative portion of the database by continually selecting random motion clips from the clusters. ### Problem It is difficult to provide intuitive controls to an animator for constructing a sequence of motion. For example, a director can ask an actor to run, jump, etc. It is difficult for an animator to request the same high level concepts from an animation package. ### Solution Annotate a large library of motion data with high level descriptions of the motion. Clips of motion are then clustered in to similar motions and representative motions of these clusters are constructed. These clusters can be searched efficiently to come up with a close solution and refined to a better solution. ### Contributions 1. Adding structure to motion graphs in order to make searching more efficient when trying to create a motion matching a high level description.