ODE is an open source, high performance library for simulating rigid body dynamics. It is fully featured, stable, mature and platform independent with an easy to use C/C++ API. It has advanced joint types and integrated collision detection with friction. ODE is useful for simulating vehicles, objects in virtual reality environments and virtual creatures. It is currently used in many computer games, 3D authoring tools and simulation tools.

Supported Features

General

Object-Oriented Design

Save/Load System

ODE is good for simulating articulated rigid body structures. An articulated structure is created when rigid bodies of various shapes are connected together with joints of various kinds. Examples are ground vehicles (where the wheels are connected to the chassis), legged creatures (where the legs are connected to the body), or stacks of objects.

ODE is designed to be used in interactive or real-time simulation. It is particularly good for simulating moving objects in changeable virtual reality environments. This is because it is fast, robust and stable, and the user has complete freedom to change the structure of the system even while the simulation is running.

ODE uses a highly stable integrator, so that the simulation errors should not grow out of control. The physical meaning of this is that the simulated system should not "explode" for no reason (believe me, this happens a lot with other simulators if you are not careful). ODE emphasizes speed and stability over physical accuracy.

ODE has hard contacts. This means that a special non-penetration constraint is used whenever two bodies collide. The alternative, used in many other simulators, is to use virtual springs to represent contacts. This is difficult to do right and extremely error-prone.

ODE has a built-in collision detection system. However you can ignore it and do your own collision detection if you want to. The current collision primitives are sphere, box, capped cylinder, plane, ray, and triangular mesh - more collision objects will come later. ODE’s collision system provides fast identification of potentially intersecting objects, through the concept of ``spaces’’.

ODE for rollercoaster simulation

hi, im an undergraduate college student. I just wna know if it is possible to simulate a rollercoaster ride using ODE. along with this, hydraulics will be placed on a seat which will be activated according to the program...so it acts as a virtual rollercoaster ride that you would see in arcades or amusement parks...this is due next year by the end of sept, but i need the program up and running by end of nov...is this possible for a beginner? thanks in advance

My Choice

It gives you almost full control of the scenes you like to create and lets you tweak a lot of variables. It can run very fast and unprecise/unstable or fast and precise/stable. The documentation and community support is very good and its still in continously development. The API is straightforward and very easy to use once you get into it.

The drawbacks are that ODE has no build-in higher level features and the collision of TriMesh->TriMesh results in confusing contact points so that you may stick to Primitive->TriMesh or Primitive->Primitive collisions. Optionally you may use ODE with your own collision detection!

Again, ODE ist a scaleable low-level physics engine, and as such its excellent!