- January 19, 2004. In 2004, DTECTA continues to offer licenses and support for SOLID 3.5. See www.dtecta.com for details.
- November 1, 2003. The book "Collision Detection in Interactive 3D Environments" is out! Learn more about it here.
- October 19, 2002. The LGPL SOLID version 2.0 has been fixed an renamed to FreeSOLID. FreeSOLID is available at SourceForge.

- Object shapes are represented by primitive shapes (box, cone, cylinder, sphere), and complexes of polytopes (line segments, convex polygons, convex polyhedra). A single shape can be used to instantiate multiple objects.
- Motion is specified by translations, rotations, and nonuniform scalings of the local coordinate system of each moving object. These changes can be given absolute or relative to the previous frame. The local coordinate system can also be set according to an array of sixteen floats or doubles representing a 4x4 column-major matrix of an affine transformation, as used in OpenGL.
- Deformations of complex shapes can be specified using client-defined vertex arrays.
- Collision response is defined by the client by means of call-back functions. Response may be defined per object pair, for all pairs containing a specific object, and as default for all pairs of objects.
- Response call-backs can use collision data describing the configuration of a pair of colliding objects. As collision data can be used a point common to both objects, and the closest point pair of the objects from the previous frame. The latter response type can be used for approximating the collision plane in physics-based simulations.
- Frame coherence is exploited by maintaining a set of pairs of proximate objects (incremental sweep and prune of axis-aligned bounding boxes), and caching separating axes for these pairs. This feature is optional and may be turned on/off at any time during a simulation.

G. van den Bergen. "Efficient Collision Detection of Complex
Deformable Models using AABB Trees." *Journal
of Graphics Tools*, 2(4):1-13 (1997), PostScript
(612KB), PDF (164Kb).

G. van den Bergen. "A Fast and Robust GJK Implementation
for Collision Detection of Convex Objects." *Journal
of Graphics Tools*, 4(2):7-25 (1999), PostScript
(255KB), PDF (79Kb).

G. van den Bergen. "Proximity Queries and Penetration Depth Computation on 3D Game Objects." *Game Developers Conference 2001*, PostScript
(274KB), PDF (78Kb).

For fast intersection tests and distance computations between convex polyhedra, SOLID relies on the Qhull library for convex hull computations. Qhull is a free software library and is available for most platforms. Note that a properly operating SOLID library can be compiled without using Qhull. However, it is recommended to incorporate Qhull for a better performance when polyhedra are used.

- I-COLLIDE, a collision detection package for convex polyhedra.
- Q-COLLIDE, idem, uses a separating axis test to determine intersections.
- RAPID, based on the OBB tree (SIGGRAPH '96).
- V-COLLIDE, combines I-COLLIDE's sweep 'n' prune with RAPID.
- Ian Palmer uses sphere trees in REALISM and ACE.
- Philip Hubbard has written a thesis on collision detection.
- So has Gabriel Zachmann.
- Enhanced GJK by Stephen Cameron is a package for incrementally computing the distance between convex polyhedra.
- V-Clip, an improved implementation of the Lin-Canny closest feature tracking algorithm, as used in I-COLLIDE.
- QuickCD is a collision detection package by Klosowski, e.a., that uses discrete-orientation polytopes (DOPs) as bounding volumes.

Last updated on January 19, 2004 by Gino van den Bergen / gino@dtecta.com