Mosey: Motion Capture Playback and Cleanup Manual

Mosey is a motion capture playback tool for playback, cleanup, and limited editing operations for raw motion capture marker data. The source code is freely distributed for educational, research and non-profit purposes. Permission to use the library in commercial products may be obtained from MERL - A Mitsubishi Electric Research Lab, 201 Broadway, Cambridge, MA 02139.

This page gives a brief overview of Mosey. We encourage you to experiment with it.

Index

Command-Line

The command-line is simply "mosey" and the name of a motion capture file in the
raw marker format. Many other command-line options are provided; run "mosey" without arguments for a list of options. All of the command-line options can also be controlled via mosey's user interface, with the exception of anti-aliasing (via multisampling hardware, if available), which is enabled by "-aa 1"; the command-line arguments are provided for convenience with batch rendering.

Playback

Mosey uses two windows: a Viewer Window, and a Controls Window:

Left-drag in the play window to rotate the camera.
Middle-drag (or Control-Left-Drag) in the play window to zoom in and out.
Right-click on a marker in the play window to select a marker.

Playback can be controlled with the keyboard in the Viewer Window. Press Space to start or stop an animation, and press the arrow keys to step through an animation frame-by-frame.

The upper-left portion of the controls window gives various rendering options, controlling whether markers and/or bones are displayed, marker and bone size, whether colors are used, and so on.

The Streamers rollout provides the ability to visualize the motion of a marker over time. Click on "Streamers" to open the rollout, and the "Streamers" check box to toggle streamers. "Tracer Mode" creates a short trail of tracers that follows the motion during animation. The other controls provide the ability to determine when streamers start and stop, and which markers are rendered with streamers. (Note that the "subset" labels only apply to a specific marker layout).

The Frame Rate panel shows the frame rate of the data file. The spinner allows frames to be skipped for faster playback.

The buttons on the lower-left allow one to save a still image frame to a file.

Dropout markers

Mosey treats markers with XYZ position equal to (0,0,0) as dropout markers. Dropouts are not normally rendered. (If you want to change the dropout value to be other than (0,0,0), change the value of Animation::_dropout, currently initialized in Animation.cpp).

Editing

Mosey can be used to modify motions in the following ways:
  1. Make the animation shorter by marking a new start frame ("in") and/or a new end ("out") frame.
  2. Swap the Y-Z coordinates of the animation, or mirror about the Y=0 plane.
  3. Split, join, delete, and interpolate marker curves.
  4. Delete channels without data (i.e. every frame is a dropout).
Editing controls are provided under the "Editing" rollout. The modified file can be saved by pressing "Save file".

Right-click on a marker or it's streamer to select it. The index of the currently-selected marker is shown in the upper-left of the controls. A specific marker may also be selected by changing this number.

To add a bone between to markers, select one of the markers and then Shift-Right click the other marker.

Cleaning-Up Raw Capture Data

Raw capture data produced by motion capture systems is usually quite flaky: markers drop out for many frames at a time and then reappear with new indices, markers get confused and merge, and so on. mosey provides basic interactive tools for fixing these problems.

The most common problem is when a marker disappears and then reappears with a new index. This can be discovered by inspection by looking for dropouts: (1) Play back the motion, and watch for markers to disappear and reappear with new colors, or (2) Render the streamers; boxes will show where markers appear and disappear:
A marker, illustrated by the black streamer drops out in the middle of the motion. The blue cube shows where the marker disappears. The marker reappears later with a new index, rendered as the blue streamer. Right-click on the black streamer to select the first marker.

Control-right-click on the blue streamer to merge the two selected markers. The two are merged into a single marker, shown by a cyan streamer, and the dropout frames are interpolated:

Note that when two markers are merged that overlap in time, the spatial position of the combined marker will be the average of the input positions.

Another problem occurs when one marker begins tracking the wrong part of the body. To fix this, select the marker where the transition occurs, and click the "Split" button in the controls window. The marker will be split into two indices, one which occurs before the split and one after the split.

Press "Fill Gaps" to interpolate missing data for the currently-selected marker. Press "Extrapolate" to fill in missing marker data at the beginnings and ends of an animation.

Creating QuickTime

On SGI platforms, Mosey can create QuickTime movies using the dmedia library. Controls are provided in the "Make Movie" rollout. Press "Start" to start recording a movie to the file given in the "Output Path" box. The movie will appear exactly as it does in the viewing window, with the same camera projection, window size, and viewing options.

Every frame in the playback will be saved to the file. The frame skip spinner can be used to control what portion of the frames are saved. The "Frame Rate" spinner controls the nominal frame rate saved to the file. The settings frame skip 0 and frame rate 60Hz will create a QuickTime containing every frame of the input motion, for playback at 60Hz.

File Format

Mosey uses a very simple motion capture file format. A file contains a list of numbers in the following order:
  1. The number of frames in the file
  2. The number of markers per frame
  3. The frame rate (in Hz)
  4. The marker data, listed by frames. Each frame contains 3 XYZ values for each marker.

    Optional:

  5. The number of bones in the skeleton used for rendering.
  6. List of bones. Each bone is a pair of numbers, corresponding to the indecies of the markers connected by the bone.
White space is ignored. The software assumes that a marker at location (0,0,0) is a dropout marker, and will not normally render dropouts.


Aaron Hertzmann / hertzman@mrl.nyu.edu
Matthew Brand / brand@merl.com / 1 May 2000