BVH to H-ANIM motion capture process


This page contains examples and links to software to let you use BVH (Biovision) motion capture files and apply then to CAESAR human body scan files. You can make the CAESAR files dance!

Detailed instructions and the source code for how to do this yourself will be available shortly. For now just have a look at the examples below.

First you must understand the process. A CAESAR body is a single static mesh of polygons with no heirarchical information defining the body. We must segment the body into individual parts and then reassemble them following the hierchy defined in the H-ANIM standard.

Click to launch VRML worldClick to launch VRML world Click to launch VRML world Click to launch VRML world

Click pictures above to launch VRML worlds. QuickTime Movie of VRML body. Dancing for Exercise 4.3Mb Quicktime movie.
The spheres on the bottom of the VRML world are controls. The rightmost green sphere is a toggle to start and stop the animation. The red sphere will play one frame forward and the blue will play one frame backwards. The yellow square is a reset.

Short Explanation of Process (details will be avaliable shortly)- first the CAESAR body is segmented using an INTEGRATE script we developed. Next the resulting ply file body segments are reduced in complexity and converted to VRML by using the QSLIM polygon reduction utlities. Next the BVH file is turned into a partial VRML file containing VRML animation. The body parts plus the animation are combined into a complete VRML file following the H-ANIM spec plus the animation resulting in a complete H-ANIM figure animated by the BVH file.
Note that the bvh2wrl perl script (original name bvh2hanim) was created originally by Matt Lewis of Ohio State and we could not have produced this so quickly without his code. (Being good computer scientists we first searched for existing code, and then stole it ;-)

Instructions for BVH to H-ANIM Motion Capture Process Instructions

The steps of the process:

  1. Segment the CAESAR body into several parts.
  2. Compress each part of the body and generate related VRML file.
  3. Convert the bvh file into a partial VRML file containing VRML animation.
  4. Resemble the vrml parts into H-ANIM file and combine the animation VRML file.

Software requirement for running on PC:

  1. "Integrate": software to process the CAESAR data developed by Air Force CARD lab. Click to go to Web site with software.
  2. "QSlim" : software to compress the polygon developed by Michael Garland. Click go to software Web site.
  3. "perl" for PC.
  4. "gcc" for PC if you want to compile the C programs.

File format used:

  1. .ply : original CAESAR scan data format which is Cyberware format.
  2. .g, .g.color: ascii format to describe the geometry and color of the CAESAR body.
  3. .smf : Simple Model Format, used by "QSlim".
  4. .wrl : VRML file format.
  5. .bvh : Biovision motion capture file format.

Tools for process:

  1. "genHanimSegs.c" : generate an "INTEGRATE" script for segmentation of a CAESAR body.
  2. "gtosmf.c" : convert .g and .g.color file to .smf format.
  3. "smftovrml.c" : translate .smf file to .wrl file.
  4. "" : perl script to translate the bvh file to VRML animation file.
  5. "genHanimWrl.c" : resemble the part vrml files to one vrml based H-ANIM specification. The joint centers are calculated using landmarks. Finally combine the animation part to it.


The package for download covers the tools with source code, executable code for PC, instruction and oneScript batch file which can be used to process the whole procedure. Click here to download.

This work is a product of the Visualization and Usability Group, Information Access Division, Information Technology Laboratory of the National Institute of Standards and Technology and is partially funded by the SIMA program.

Specific bvh2wrl and genHanimWrl questions: Qiming Wang
Project Manager/General Infomation and Comments: Sandy Ressler

NIST | Information Technology Lab (ITL) | Information Access Division | Visualization and Usability Group |
Privacy Statement/Security Notice. | Disclaimer