IMPS: Implicit Surfaces for Interactive Animated Characters
Master of Science project by Kenneth B. Russell, Synthetic Characters Group, The Media Lab, MIT. The reference to this work is:
IMPS: Implicit Surfaces for Interactive Animated Characters. Kenneth B. Russell. Master of Science Thesis, Synthetic Characters Group, The Media Lab, MIT, May 1999. [PDF (4.34 MB)]
A minimal C++-based VRML 2.0 library, libvrmlapi, was written
to support reading and writing of VRML 2 files. IMPS is built on top of
libvrmlapi. Most of IMPS' data types, for example blends,
metaballs, and line segments, are subclasses of VrmlNode and
can be written to and read from files with the VRML 2 syntax, although of
course the node types are not in the VRML 2 specification and are only
compatible with IMPS' viewer.
IMPS uses gleem, an OpenGL-based 3D manipulator
library, for its user interaction during the modeling process. The 3D
painting functionality IMPS implements uses the color chooser widget from
FLTK. Textures are loaded using
SGI's Image Format
Library. The library makes heavy use of SGI's version of the Standard Template Library. IMPS'
user-level application and interactive modeler, glImplViewer,
uses OpenGL for its output. An older
version of the viewer, ivImplViewer, uses Open Inventor for its
interaction and rendering.
IMPS was developed primarily on an 8-processor SGI Onyx2. As described in the thesis, IMPS' most current polygonizer was designed to be parallelized as much as possible. The system currently runs on single- and multiple-CPU SGIs as well as NT workstations. Porting to additional Unix platforms should be straightforward; as described in the thesis, platform- specific code has been minimized as much as possible.
The biped figure in the images above was hooked up to Digital Image Design Incorporated's Monkey, a physical armature which helps sketch out animations. Posing the armature causes the implicit surface-based bipedal figure to move. The source code for this demonstration is included with IMPS (see below), although you'll need a Monkey for it to be useful.
IMPS' OpenGL-based renderer, modeler and 3D painting system,
glImplViewer, is the standard demonstration of IMPS and
precompiled versions, as well as its source code, are available below.
There are three packages available:
imps-1.0-src.tar.gz (1837k) contains
the source code for IMPS, which consists of the implicit surface library
and libvrmlapi, both of which are covered under the Media Lab's academic license. Packages
which IMPS depends on and which are also included are SGI's Standard Template Library, FLTK, and gleem. These subsystems are
covered under various licenses. LICENSE.txt,
included with all three versions of IMPS, describes these licenses in
detail.
imps-1.0-nt.zip (695k) contains a
precompiled binary of glImplViewer for Windows NT, as well as
a set of implicit surface scenes to view. No source code is included. In
order to run this executable you will first need to download and install GLUT and SGI's
Image Format
Library for Windows.
imps-1.0-sgi.tar.gz (2033k) contains a precompiled binary and supporting DSOs for Silicon Graphics machines running Irix 6.5 or later and having the Image Format Library DSOs installed. This archive also contains a set of implicit surface scenes to view. No source code is included. In order to run this executable you will first need to download and install GLUT.