Software Library for Interference Detection

Version 1.0

Contents

Introduction

SOLID 1.0 is a library for interference detection of three-dimensional polygonal objects undergoing rigid motion. The shapes used by SOLID are sets of nonconvex polygons without topological constraints (polygon soups). An object is an instance of a shape. A shape may be used to instance multiple objects. Motion is given by changing the position and orientation of each object's local coordinate system. The position and orientation may be set either by using a vector and a non-zero quaternion, or by using a 4x4 column-major matrix as used in OpenGL.

As SOLID evolved, VRML97 came to be. I've tried to keep the API flexible enough to allow fast and easy communication with a VRML browser. Some features that are useful in this context are:

Response may be simple or smart. Simple response uses no collision data. Smart response uses a list representing the set of intersection segments of the intersecting pair of polygons.

The library exploits frame coherence by maintaining a set of pairs of proximate objects (incremental sweep and prune of axis-aligned bounding boxes). The update time for this set is small for scenes with much frame coherence. This feature is optional and may be turned on/off at any time during a simulation.

Requirements

The library is written in standard C++ and relies heavily on STL. Currently it compiles under GNU g++ version 2.7.2. The library has a standard C API and can be linked to both C and C++ applications. In order to link it to C applications you need the libstdc++ library.

License

The SOLID library and accompanying C++ classes for 3D transformations are released under the terms of the GNU Library General Public License (see documentation). This means that you can do anything with the source code, as long as you do not try to own it.

Download

Current SOLID is version 1.01a. It is available for downloading in any of these archived formats:

Installation

The README file has instructions on how to build and install SOLID for your platform. In case you have a recent GNU developers environment installed simply typing make in the root of the distribution directory will suffice.

Demo

Smart response is demonstrated in a demo application written by Elisabeth Melby. The demo source is available for downloading in the following archived formats: Besides the SOLID library, you need to have Mesa installed in order to be able to compile the demo. Mesa is a freely available OpenGL implementation. Questions regarding compilation and use of the demo should be sent to liesbeth@win.tue.nl.

Differences between SOLID and V-COLLIDE:


accesses to this page since August 26, 1998.


Last updated on August 20, 1998 by Gino van den Bergen / gino@win.tue.nl