### Summary This paper presents a method for constructing a seamless motion using a set of motion clips from a motion database. A graph structure is used to represent the motion. Frames in the motion are represented as nodes in the graph. Transitions between frames are represented by edges in the graph where the weight of the edge is the probability that the two frames provide a transition point between motions. This weight is calculated by looking at the weighted differences in the root position and joint angles of the frames. As this graph can be quite large, edges with low probabilities are pruned as well as those that lead to dead ends in the graph and those that have dissimilar contact states. This underlying graph structure is not necessarily usable for the purpose of interactive control, though. Therefore, cluster analysis is performed to group nodes in the graph in an attempt to identify behaviors. This higher level structure provides a much easier way to map user defined behaviors to the lower level graph structure. ### Problem Interactive control of avatars is a difficult problem. The avatars must have a variety of behaviors available for display and the user must be given control over them. At the time of this paper, this required the motion database to contain short, carefully planned pieces of motion tailored specifically to the application. ### Solution Construct a graph that identifies paths for connecting clips of motion in a motion database together to create a new motion. Further, clusters of motion are analyzed to describe higher level behaviors for the purpose of interactive control. ### Contributions 1. Graph structure for describing how clips of motion in a large motion database can be connected and strung together. 2. Clutering of similar clips of motion to simplify searching the graph to perform desired higher level behaviors. ### Questions, Comments, Flaws This paper was published at the same time as the motion graphs paper and offers a similar solution to a similar problem. It is useful to make some comparisons between the papers. First, the metric used to measure distance in this paper seems crude compared to the motion graphs paper. The authors' distance metric is simply to compare the weighted difference of joint angles. As mentioned in the motion graphs paper, using this metric fails to account for the relative effect of different joint angles. For example, changing the orientation of the hips has a much larger impact on the pose than changing the ankle's orientation. The use of point clouds for distance measuring in the motion graphs paper seems to provide a better metric for comparing two poses. While the underlying structure of the graph described in this paper is like that in the motion graphs paper, this paper provides an interesting higher level structure to the graph. Specifically cluster analysis is used to identify groups of similar motions. The advantage of performing this clustering is that it makes searching the structure much simpler, and provides a much simpler mapping to high level descriptions input from the user. For every frame in the underlying graph, a cluster tree is maintained. If the user desires to perform a particular behavior, the algorithm need only determine a path in the cluster tree to get from the current cluster to the cluster representing the desired behavior. Then the actual frames of motion and transitions can be generated by using the built-in markov model in the lower level graph structure to determine the exact path of the motion. In the motion graphs paper, there is no concept of this higher level organization to the graph, making searches more difficult. One potential problem with this higher level organization, though, is that there is no guarentee that the clustering will map well to the higher level behaviors described by the user.