### Summary This paper introduces a data structure for stringing together clips of motion from a motion database called a motion graph. Motion graphs can beconstructed automatically from a collection of motion data by identifying similar frames. These frames become nodes in the graph while the motions before and after these frames are directed edges in to and out of the nodes respectively. After these frames are identified, transitions are generated between the motions. This allows any motion entering the node to transition to any motion leaving the node. Given this structure, any graph walk becomes a complete motion that looks good. ### Problem Motion capture data alone is only useful for reproducing an exact motion. Motion capture data is also expensive and difficult to collect. It is therefore desirable to reuse existing data to create new motions. Editing motion capture data, though, is a very hard problem. ### Solution Create new motions from existing data by identifying potential transition points between existing clips and storing them in a graph structure to allow easy traversal. ### Contributions 1. Data structure allowing motion clips to be seamlessly strung together by performing a simple graph walk. 2. Metric for calculating the similarity between any two frames of motion data. 3. Method for constructing the motion graph automatically from a database of motion data. ### Questions, Comments, Flaws In general this method seems to be a powerful way to control and use a large database of motion. One of the problems with it, however, is that there is no guarentee how close any two poses are or what type of transitions are between the poses. This makes sense. However, if a character is in a karate stance, I may wish him to sit in a chair. Depending on where the chair is in the environment this may require the character to take a very indirect path to the chair, or even perform a jump kick along the way. One possible (though not guarenteed solution) is to lower the error thresholds to increase graph connectivity. However, this greatly increases the size of the graph requiring more time to create and search it as well as more memory to store it.