In the following brief reviews, it is my intent to be as accurate as possible in my descriptions of the capabilities of the packages with respect to rigid body dynamics with intermittent unilateral contact. If you find errors, disagree with my assessment, know of any packages that I've missed, or know that some of the packages listed are no longer available, please let me know.
Multibody Simulation Packages that can Handle
Rigid Bodies with Unilateral Contacts
Multibody Simulation Projects Aimed at
Handling Rigid Bodies with Unilateral Contacts
Multibody Simulation Packages that can NOT
Handle Rigid Bodies with Unilateral Contacts
Francios Faure's Abdula can do some pretty amazing animations;
up to 64,000 frictionless spheres dropped into a bowl. The
simulation method is not published, but is related to the
"optimization-based animation" of Schmidl and Milenkovic.
Abdula is no longer being improved as Francios is developing
a more general and flexible library.
Updated 2/1/02.
"Adams Solver" solves rigid body contact problems with a
penalty method. It exhibited problems typical of penalty
methods. For example, I tried rolling a faceted approximation of
a uniform sphere on a plane and had to try many parameter
settings before Solver returned a solution approximating the
known exact solution.
Updated 11/10/01.
Refers to itself as a physically-based animation system.
This software uses a penality method to calculate the
contact forces. It also uses a "fixed set of bodies
instead of triangular meshes." Complementarity theory and
Baraff's method are mentioned as worthy goals that are not
implemented.
Updated 1/31/02.
The Falling Bodies software takes a spring/damper approach
with a Featherstone-type approach to articulated characters,
but with very careful handling of the details. It slows down on
difficult collisions, but eventually grinds its way through them.
Updated 11/10/02.
This software imulates rigid body systems and other
flexible systems like cloth. Only $500. This package seems
to be an equal (on paper) to "Total Havok." Excellent videos.
There is no information about the method used for rigid body
dynamics.
Updated 2/2/02.
This is a multibody dynamics simulator based on SD/Fast and
targetted at animation applications. It appears as though
rigid-rigid contacts are supported through "actuator plug-ins,"
which can be implemented as a penalty method.
Updated 1/31/02.
A dynamics engine geared toward rigid body
dynamics for real-time virtual environments. The package
"Total Havok" adds flexible bodies and fluid dynamics. The
demos are as impressive as any I've seen, but there is no
indication of the simulation method used.
Updated 2/3/02.
A full-blown commercial package similar to MDI
Adams. Intermittent contacts are handled, but I don't yet
know the method used. However, there is mention of using
DAE methods for integration, which implies that they
manage contact state transistions by monitoring contact
forces (as Haug did in the original DADS package).
Updated 1/30/02.
Free software still under development from Russell Smith who
worked at Math Engine. The method of integration is based on
complementarity formulations of Stewart/Trinkle and
Anitescu/Potra. The solver is based on Baraff's pivoting
method. Collisions are handled following Mirtich's method.
Updated 1/29/02.
This software was developed for general non-smooth dynamical
systems, including multi-rigid-body systems with unilateral
contacts. Time-stepping is based on subproblems formulated
in the form of a complementarity problem. The code has been
released under the Gnu Public Licence.
Updated 12/11/07.
A rigid body dynamics engine developed by Arachi.com that is
based on the algorithms of Featherstone (dynamics with
bilateral constraints), Mirtich (collision impulse response),
and Baraff (contact transitions e.g., sticking to sliding).
A haptic interface allows real-time interaction with a
virtual enviroments as long as the number of degrees of
freedom and number of steady contacts is not too large.
Updated 3/16/02.
Umbra is a general simulation and visualization environment
developed by Fred Oppel and Eric Gottlieb at Sandia National
Laboratories. It contains a rigid body dynamics module developed
by Eric Gottlieb with technical guidance from Florian Potra and
Jeff Trinkle. The time-stepping algorithm is based on the
Stewart-Trinkle LCP formulation (in terms of velocities and impulses).
All the videos on this web page were produced with Umbra. Even
though there is currently no impact law is implemented, bouncing
behavior can be observed in the animations. This is simply a
side effect of the constraint stabilization in the Stewart-Trinkle
algorithm. Many enhancements are underway.
Updated 12/23/02.
Formerly Working Model. The integration method for rigid
body dynamics is a penalty method. Even though it probably
exhibits the usual problems that plague penalty methods,
vN4D ran right "out of the box" on a problem in which three
parts with about 1500 facets each were dropped onto a plane
such that they would collide with each other. The API does not
provide access to contact point locations and normals, but
is schedule to in the next release - Q1 of 2002.
Updated 9/25/01.
Specialized for rigid body dynamics
with unilateral, frictional contacts. However, dry friction
does not obey Coulomb's Law. There are three choices, zero
friction, infinite friction, and "box" friction. Box
friction is simple limits on the tangential force values in
two directions - no dependency on the normal load. A
first-order semi-implicit time-stepper is used. The contact
constraints are likely to be formulated as a complementarity
problem, since it is possible to get a warning about cycling
during constraint solution. The solver is at least partially
based on algorithms to solve complementarity problems. The
demos are impressive.
Updated 1/28/02.
(software is NOT available)
Mihai Anitescu started his work on rigid body dynamics on the
Isaac project. Work is continuing at the University of Pittsburgh.
Updated 2/7/02.
Galileo is Saur's and Schomer's project at Daimler-Benz
and U of Saarlandes. One goal is to unify
collision-based methods (such as Mirtich's) and
constraint-based methods (such as Stewart and Trinkle's).
Updated 2/2/02.
Chris Hecker has been working on rigid body dynamics simulators
with game applications in mind.
Updated 2/7/02.
Brian Mirtich's Impulse does rigid body simulation with
nothing but collisions. A hybrid version was developed to
combined impulse with joint constraints. While at MERL
Mirtich added a
"time-warp" feature to avoid the crippling bottleneck
caused by synchronous processing for large numbers
of bodies.
Updated 1/31/02.
Jim Cremer's Isaac project was one of the original projects
aiming at extending VR into the realm of multibody dynamics.
It was headed by Jim Cremer at the U of Iowa.
Updated 2/2/02.
Harald Schmidl is working on his phd thesis with
Victor Milenkovic at U of Miami.
Updated 2/7/02.
This is symbolic multibody dynamics software that can
output C or Fortran code - much like SD/Fast (below).
Updated 1/30/02.
John McPhee's (U of Waterloo) free symbolic dynamics package
for flexible multibody systems built in Maple.
Updated 1/31/02.
Free software being developed at Ohio State University.
Dynamics of mechanisms with and without closed loops.
Contact force models are being developed to support applications
such as walking robots. There was no mention of rigid-rigid
contacts - probably not yet included.
Updated 1/29/02.
DynaWiz formulates multibody dynamics in
Lagrangian form, and provisions are made for event detection.
However, in the introductory web pages, there is no
description of how rigid-rigid contacts are handled. A
direct communication with CDI indicated that DynaWiz does not
support unilateral rigid contacts. The user would have to insert
his own solvers.
Updated 1/28/02.
Here's a quote from Lumeo: Lumeo has created world's
fastest multi-physics engine. 3D CAD designers can easily
test the dynamics of their products, see them moving, and
interact in real-time. ... You can add hydraulics to the 3D
dynamics, and test the design, still in real-time!
Updated 2/4/02.
Another symbolic dynamics package. Rigid-rigid contact not
supported.
Updated 1/28/02.
Here's a quote from the SD/Fast web page: SD/FAST provides
physically-based simulation of mechanical systems by taking a
short description of an articulated system of rigid bodies
(bodies connected by joints) and deriving the full nonlinear
equations of motion for that system. The equations are then
output as C or Fortran source code, which can be compiled and
linked into any simulation or animation environment. The
symbolic derivation of the equations provides the fastest
possible simulations.
Updated 1/31/02.