Menu
Projects

3D Physics

3D Physics


Besides graphics programming, I have an extreme interest in 3D physics and rigid body dynamics. I have now started to look at implementing my own 3D physics engine but before this I had a look at the ODE physics engine.

The archive given below contains 11 demos I have made with the ODE engine. Please let me know if this interests you as if there is a great demand, I will release some tutorials on the subject.

FILE DETAILS :

File Name : 3dphysics.zip
File Size : 643K
Date Released : 01 December 2005

INSTRUCTIONS :

A description of each demo along with instructions is given on both this page and in the readme.txt file contained in the archive.

01 - Falling Blocks

01 - Falling Blocks

This demo was created to create the basis for all future demos. The simplest of all objects (the cube) was used to test collision detection and response of the engine.

Keyboard Controls

None


02 - Falling Shapes

02 - Falling Shapes

After getting blocks to collide properly, it was necessary to expand this to allow collisions of other objects. This demo allows collisions of boxes, spheres and capped cylinders.

Keyboard Controls

B : Spawn Box
S : Spawn Sphere
C : Spawn Cylinder


03 - Composite Objects

03 - Composite Objects

This demo shows how multiple objects can be linked together to form one composite object. Each composite object in this demo is made up of a sphere, box and cylinder.

Keyboard Controls

B : Spawn Box
S : Spawn Sphere
C : Spawn Cylinder
X : Spawn Composite Object


04 - Disabling

04 - Disabling Objects

This demo shows how multiple objects can be linked together to form one composite object. Each composite object in this demo is made up of a sphere, box and cylinder.

Keyboard Controls

B : Spawn Box
S : Spawn Sphere
C : Spawn Cylinder
X : Spawn Composite Object


05 - Friction

05 - Friction

In the previous demos, you would have seen how objects continue to roll until they fall off the floor. This demo overcomes this effect by applying friction to objects. Spheres and cylinders will now roll slower until coming to a complete stop.

Keyboard Controls

B : Spawn Box
S : Spawn Sphere
C : Spawn Cylinder
X : Spawn Composite Object


06 - Ball and Socket Joint

06 - Ball and Socket Joint

This demo makes use of the Ball and Socket joint. The object is made up of a number of boxes, each connected by a Ball and Socket joint.

Keyboard Controls

L : Lift object


07 - Hinge Joint

07 - Hinge Joint

This demo makes use of the Hinge joint. The object is made up of a number of boxes, each connected by a Hinge joint.

Keyboard Controls

L : Lift object


08 - Slider Joint

08 - Slider Joint

This demo makes use of the Slider joint. The object is made up of two boxes which are connected by a slider joint. The joint has been implemented in such a way to keep the distance between the two boxes lower than a specified maximum.

Keyboard Controls

L : Lift object


09 - Universal Joint

09 - Universal Joint

This demo makes use of the Universal joint. The object is made up of two boxes which are connected by a universal joint. A white cross is shown between the boxes to indicate the current orientation of the universal joint.

Keyboard Controls

L : Lift object


10 - Hinge2 Joint

10 - Hinge2 Joint

This demo makes use of the Hinge2 joint. A simple go-kart type vehicle has been created consisting of two Hinge2 joints, one for each axle. This demo is aimed at the usage of a Hinge2 joint rather than vehicle physics. The vehicle physics on the go-kart is therefore relatively poor. Try lifting the vehicle to get a weird hydraulics effect.

Keyboard Controls

L : Lift object
Up / Down Arrow : Accelerate / Reverse
Left / Right Arrow : Turn left / Turn right


11 - Ragdoll

11 - Ragdoll

This demo makes use of a number of joints to create a ragdoll. This ragdoll was not completely finished and can be improved drastically.

Keyboard Controls

L : Lift ragdoll

Please let me know of any comments you may have : Contact Me



All Rights Reserved, © Zeus Communication, Multimedia & Development 2004

Read the Disclaimer

Links