This page is currently maintained by
Ying Lu.
In the following brief reviews, it is
our 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 our assessment, know of any packages
that we've missed, or know that some of the packages listed
are no longer available, please let us know. Send email to Ying Lu.
This survey is limited to simulation packages that
can handle systems with intermittent unilateral contacts
Open Source Packages

Bullet
Bullet Physics is a professional open source collision detection,
rigid body and soft body dynamics library. Bullet relaxes the friction
model to make solution by projected GaussSeidel possible.
Bullet's strength is in its recent developments for parallel computation.
Collision detection and physics solutions can run entirely on a GPU without
needing to communicate with a CPU. The recentlly released
Bullet 2.80 includes a preview of the GPU OpenCL rigid body pipeline.
Collision detection and physics have been optimized to run on multiple
parallel processors. By using a special collision dispatcher, the code can activate
parallel optimizations.
03/06/12.

Dance
Recently updated the binary version which is available for Windows with installer.
The entire DANCE system is now open with all source code included.
It supports the import/export of motion capture with easy plugin interface.
Physical simulation of characters with dynamic control and posebased dynamic control is
available for DANCE. Besides, it has also been integrated with the Open Dynamics Engine(ODE).
1/1/13.
This system is still actively being developed.
1/9/10.
This is a multibody dynamics simulator based on SD/Fast and
targetted at animation applications. It appears as though
rigidrigid contacts are supported through "actuator plugins,"
which can be implemented as a penalty method.
1/31/02.

dVC3d
dVC3d is a physical simulation engine that focuses on accurate
robotics application and testing of different cutting edge
theories in physical simulation. Theoretically, it inherits
the basic framework from dVC2Dd. Beside moving completely to 3D,
dVC3d also integrates research works developed recently.
03/06/12.

IBDS
These comments are based on my reading of the 2006 paper, "Constraintbased collision and contact handling using impulses". In one timestep, this simulator identifies all imminent collisions and existing contacts. Then it executes two main steps. First, it iterates through all collisions to find impulses consistent with Newton's restitution model. Second it processes the sustained contacts, iteratively until it finds impulses that prevent penetration. The first part is done in a way very similar to what Mirtich implemented in Impulse. The second is similar to the Euler approximation of the dynamic equations used in velocitylevel complementarity methods. The two iterative phases are essentially fixedpoint iteration schemes applied in a GaussSeidel fashion. A benefit is that implementation as an anytime method is possible. The videos are impressive.
4/22/10.

MBSim
This project is being developed by the Center for Applied Mechanics
at Technical University of Munich. It uses prox function formulations
of the timestepping subproblems to properly handle unilateral contacts
with quadratic Coulomb friction. One drawback is that collision detection
is not general. Pairs of geometric primitives are manually chosen for
contact monitoring.
3/7/12.

Moby
Moby contains multiple joint constraints such as revolute, prismatic, spherical
and so on. Besides, two optional convex solving methods incorporated in Moby are
fast(active set QPbased) solver and accurate(interiorpoint quadratically constrained quadratic
programbased) solver. Multiple integrator types are supported and thanks to the plugin of
ODEPACK, the time stepper in Moby can now be variable step. Articulated bodies are supported
using both independent coordinate and absolute coordinate representations.
1/1/13.
Moby uses the Anitescu/Potra timestepping method augmented
with Baumgarte stabilization for the bilateral constraints.
No stabilization is used for the unilateral constraints, which
means that unilateral constraints are added to the timestepping
subproblems as penetrations occur, and no attempt is made to
correct these penetrations. This means that penetrations are
controlled using an eventdriven approach that adjusts the
time steps to find the time when each contact occurs. Several
LCP methods have been incorporated: Lemke, Lemke with Yamane's
modification, and PATH.
4/1/10.

Open Dynamics Engine
The friction models are not Coulomb friction. The user can choose one of
two approximations that make the timestepping subproblem (an
LCP) much easier to solve, but at the expense of some accuracy.
There are several LCP solvers available in ODE. I like the
documentation.
1/9/10.
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.
1/29/02.

RBDL
Rigid Body Dynamics Library(RBDL) performs the dynamics computation in a very efficient
manner for models using generalized coordinates. It uses Featherstone's Spatial Algebra
and allows for efficient evaluation of forward and inverse dynamics using the Articulated
Body Algorithm and the Recursive Newton Euler Algorithm. RBDL also has implementation of methods
to compute collisions and bilateral contact forces.
1/1/13.

Siconos Platform
This project is still being actively developed. It would be nice
if some videos were easily accessible.
1/9/10.
This software was developed for general nonsmooth dynamical
systems, including multirigidbody systems with unilateral
contacts. Timestepping is based on subproblems formulated
as complementarity problems.
12/11/07.

SOFA
An open source (LGPL) software package, primarily intended for
realtime dynamic simulation in the medical field. It's been around
since 20062007, and is developed by a large team. SOFA includes cluster and GPU
support, including using CUDA, and they are working on support for
haptic devices. The software is very well organized. There are
several collision checkers and dynamic models (flex
and rigid). It appears to have good support for finite element methods also.
03/06/12.

Solfec
Solfec is an implicit threedimensional multibody frictional Contact Dynamics software. Both serial and parallel (MPI) versions are being actively developed. The nonsmooth, velocity level frictional contact law (SignoriniCoulomb) is solved by means of a nonlinear GaussSeidel or a projected quasiNewton method. Rigid, pseudorigid and finite element kinematics is included.
05/19/11.
ClosedSource Packages

Adams
Simulation of unilateral contact is still via a penalty method.
1/9/10.
"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.
11/10/01.

Animats
According to John Nagel of Animats, Falling Bodies, mentioned
below, has been licensed to Havok for the past five years.
4/1/10.
The Animats web page is still under active development. Of interest
is that they have patented at least two algorithms: (Patent 1)
"Robots which can run up hills without slipping are usually covered by
this patent." This patent appears to be based on a control method
that reduces the magnitudes of the friction forces needed to prevent
foot slip. (Patent 2) "This broad patent covers most spring/damper
character simulation systems. If it falls, it has joints, it looks
right, and it works right, it's usually covered by our patent." My
interpretation of the patent is that they use a penalty method
that begins responding in before the bodies are in contact and
grows quickly to ensure that penetration never occurs.
1/9/10.
The Falling Bodies software takes a spring/damper approach
with a Featherstonetype approach to articulated characters,
but with very careful handling of the details (SDFast is used
to generate Ccode from Featherstone's algorithm). It slows down
on difficult collisions, but eventually grinds its way through them.
11/10/02.

Chrono::Engine
This engine is based on the work of Anitescu and Tasora. See Tasora's mechanical system simulation page for pictures and technical papers on the methods. The basic model is the complementarity problem similar to the engines described on this page, but it is modified to take the form of a secondorder cone constrained optimization problem (SOCCOP). It is solved with a matrixfree method. They have simulated up to about 1,000,000 bodies coupled through contact on Tesla GPUs. To form the SOCCOP, the friction model is regularized with the undesirable side effect being the aphysical formation of gaps at all sliding contacts.
3/7/12.

Cinema 4D Dynamics
Animations are done by keyframing, which would imply that
there are no builtin rigid body dynamics algorithms.
I was unable to find impressive videos that I saw 8 years ago here.
1/9/10.
This software simulates 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.
2/2/02.

DynaWiz
DynaWiz has been updated to allow unilateral contacts to occur during
runtime. Here is a quote from the web page about solution the
complexity of their timestepping method: "Order(N + sum(n_i^3)),
where N = number of bodies, and n_i^3 = number of flexible modes for
the ith body." The implication here is that unilateral contacts
are treated as permanently connected. If an LCP (or NCP) formulation
were employed, then there should be another term in the complexity
expression; something like O(n_c^3), where n_c is the number of
unilateral contacts.
1/9/10.
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 rigidrigid 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.
1/28/02.

Havok Physics
This system is still actively being developed. There are many
interesting videos with flexible objects and fluid flow.
Havok is free for noncommercial use.
1/9/10.
A dynamics engine geared toward rigid body
dynamics for realtime 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.
2/3/02.

Internet Movie Database (IMDb)
The IMDb is an online database of information related to movies,
television shows, actors, video games and fictional characters
featured in visual entertaiment media.
3/6/12.
I didn't find anything related to Multibody Dynamics on the web page.
3/6/12.

LMS DADS
From an engineer at LMS, I learned that the user can specify a
linear stiffness and damping model KelvinVoigt) to generate the
contact force or use a Hertzian contact model. The API will return
depth of penetration, velocity, normal, etc. for advanced users
who want to create their own penaltybased contact force model.
1/9/10.
A fullblown 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 transitions by monitoring contact
forces (as Haug did in the original DADS package).
1/30/02.

PhysX
You can easily find lots of info on PhysX on line. What you
won't find is that when Ageia originally developed the engine,
it was based on the impulsevelocity timestepping formulations
of StewartTrinkle and AnitescuPotra. So friction and
intermittency of contact was handled with the framework of
complementarity problems. I don't know how much of this has
been retained in the Nvidia product.
4/1/10.

SIMPACK
This package implements a penalty method using a polygonal contact model developed by Gerhard Hippman. Contact forces can be specified as functions of penetration volumes, depths, elastic moduli, material deformation damping constants, Poisson's ratio, etc.
6/3/10.

Tokamak
Tokamak Game Physics SDK is a high performance
realtime physics library designed specially for
games. Tokamak features a unique iterative method
for solving consraint, which allows developers to
make the tradeoff between accuracy. Besides, Tokamak
supports a variety of joint types and joint limits
and provides a very realistic friction model.
6/3/10.

Umbra
Umbra development has intensified. Michael Skroch, manager of
the group developing Umbra, said, "I have been focusing on Umbra
being useful for the nexus of physicalcyberbehavior concepts
in a 3D embodied environment. We've started work on parallelizing
Umbra and providing multithread enhancements. We also are
working with GPUs to improve speed."
5/1/10.
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 timestepping algorithm is based on the
StewartTrinkle 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 StewartTrinkle
algorithm. Many enhancements are underway.
12/23/02.

visual Nastran 4D
This product is available, but I found much less information about
it than other MSC products.
1/9/10.
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.
9/25/01.

Vortex
Vortex 5.1 with the new Vortex Editor puts the vehicles, robots, heavy
equipment and more into highfidelity synthetic environments for operator
training, mission rehearsal, virtual prototyping and testing.
1/1/13.
Version 3 of Vortex will include "scaled" box friction, which
approximates a quadratic friction cone with a 4sided friction
pyramid (Chris Funk, CMLabs).
4/1/10.
In the PackBot video, I noticed penetration between the PackBot
and the ground (especially when the Bot moves up and over a curb.
This can come from an offset in the geometry used for collision
detection and that used for visual rendering, OR it can come
from using a penalty approach for contact force resolution.
1/9/10.
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
firstorder semiimplicit timestepper 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.
1/28/02.
Defunct Packages

Abdula
This was a link to Abdula on Francois' page at
TU Wien (Technical University of Vienna), but it is broken now.
1/9/10.
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
"optimizationbased animation" of Schmidl and Milenkovic.
Abdula is no longer being improved as Francios is developing
a more general and flexible library.
2/1/02.

AERO
No new information.
1/9/10.
Refers to itself as a physicallybased animation system.
This software uses a penalty 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.
1/31/02.

DynaMechs
I can't find anything about unilateral contacts on the
web page, but I learned from David Orin that unilateral
contacts for a walking machine were implement using a
penalty method.
1/9/10.
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 rigidrigid
contacts  probably not yet included.
1/29/02.

Impulse
Nothing new here.
1/9/10.
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
"timewarp" feature to avoid the crippling bottleneck
caused by synchronous processing for large numbers
of bodies.
1/31/02.

Simulation and Active Interfaces
This project is no longer under development and the link is broken
03/06/12.
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 realtime interaction with a
virtual enviroments as long as the number of degrees of
freedom and number of steady contacts is not too large.
3/16/02.