IrrODE is a wrapper for the Open Dynamics Engine (ODE) and Irrlicht. In the package you find Irrlicht scene nodes that use ODE, some tutorials to learn IrrODE and a couple of demo applications as well. You can browse the Tutorials and the doxygen API documentation online. The current version of IrrODE is using Irrlicht 1.7.2 and ODE 0.11. The following versions are available for download:

Contents of the package:

11.04.2012 | IrrOde update
 No new functionality, but I have moved the VC projects from VC2008 to VC2010 and added the IrrOdeTestbed to the VC projects.
24.03.2012 | IrrOde update
 This time the update includes quite a huge API change: a lot of functions have been moved from the CIrrOdeManager class to CIrrOdeWorld. This is planned as a step towards multithreading. This version does also include everything needed to compile (also ODE libs), so the ODE is no longer necessary.

Last but not least: upgraded to ODE 0.12
10.03.2012 | IrrOde update
 A new update. This update does mainly fix an issue reported in the Irrlicht forum, the length of (dynamic) capsules is now defined by the height of the object, not the ODE way (depth of the object). Additionally the IrrOdeCar demo is now mostly event driven, a huge step in it's design.
25.12.2011 | IrrOde update
 Finally another update of IrrOde:
  • Cleanup of the IrrOde car scene
  • modified the car's model
  • added steeringwheel to the car
  • little bugfix in IrrOdeGeomTrimesh: initial mass is now 1
05.11.2011 | IrrOde update
 Added the missing clone functionality for the new joint attributes added with the last upload + added a switch to the IrrOdeCar demo to turn the rearview monitors on and off.
02.11.2011 | IrrOde update
 Some changes:

  • the cars, helicopters and planes do now have a rearview camera
  • modified car and plane models
  • Joint events can now be prevented from being serializes
  • Fixed texturing problem of roads
  • Enhanced road loader
  • Fixed normal problem in the road loader
  • Added exhaust smoke to car (if boost is active)
11.10.2011 | IrrOde update
 Another little update: I fixed some issues with the roads in the IrrOdeCar demo .. well ... actually it's not a fix, just a workaround. Sometimes the ending vertices of the base of a connection are in the wrong directions. This can be fixed by modifying the number of steps in the connection.
10.10.2011 | IrrOde update
 This time it's a small update, mainly to improve the cars in the IrrOdeCar demo: improved the model (does now have a V8 engine), and added some good brakes (default key: SPACE).
21.09.2011 | IrrOde update
 A new version is online. This time it's a step to get a better separation between the ODE and Irrlicht. Updates to the properties of bodies and joints (at the moment Hinge and Hinge2) are now completely sent through the message queue instead of querying some parameters from the ODE.
12.09.2011 | IrrOde update
 Added a differential to the cars in the IrrOdeCar demo to make them more controllable. This differential can be switched of (default key: "D")
06.09.2011 | IrrOde update
 Modified some parameters to make the car in the IrrOdeCar demo much more controllable.
30.08.2011 | IrrOde update
 I have added the "loop.road" demo track from the Bulletbyte RoadCreator to the IrrOdeCar demo. You can find the track near the shooting range.
23.08.2011 | IrrOde update
 A new version is onine reflecting the latest changes in the RoadCreator where it is now possible to add walls to the sides of the roads.
21.08.2011 | IrrOde update
 Oops ... I just realized that I didn't include the new roads of the IrrOdeCar demo in the download package. New version (including roads) is now available online.
19.08.2011 | IrrOde update
 A new update: added a lot of roads created with the "BulletByte RoadCreator" to the IrrOdeCar demo.
15.08.2011 | IrrOde update
 A new version of IrrOde is online: I have added some sound to the IrrOdeCar demo, mainly engine sounds. Still some problems to solve. Plans are that I include all sounds I want by coding it into the demo, and when that's working I'll move them to a scenenode.
07.08.2011 | IrrOde update
 This time I have added an internal view to the car. Looks ugly but works. The camera can be rotated just like the internal cameras of the planes and the helicopters.
31.07.2011 | IrrOde update
 Some enhancements to the IrrOdeCar demo:

  • installed movable camera to plane and helicopter. See the controller setup section for the default keys
  • enhanced joystick input for plane and helicopter
  • codewise: merged helicopter and plane into a shared superclass
27.07.2011 | IrrOde update
 Another small update: enhanced the RenderToTexture code which can now easily be reused.
26.07.2011 | IrrOde update
 Replaced the needle indicator for the cockpits of the planes/helicopters by a new one.
21.07.2011 | IrrOde update
 I have added cockpits to the airplane and the helicopter in the IrrOdeCar demo:

cockpit plane

cockpit helicopter

The instruments:
  • 1: speed meter
  • 2: artificial horizon
  • 3: altitude meter
  • 4: compass
  • 5: vario showing altitude chang
  • 6: power gauge
  • 7: information lights (autopilot, low altitude, brakes (planes only) and stall alert (planes only)
  • 8: target and shooting information showing the name and distance of the currently selected target and the number of shots and hits
09.07.2011 | IrrOde update
 Today I have created a new branch of IrrOde on sourceforge (irrode_1) in order to gain the necessary freedom to move the development into a slightly different direction. For all those using the wrapper: simply stick to the old version, it's stable and won't have any changes applied. If you discover bugs feel free to contact me.
03.07.2011 | IrrOde update
 Another small update:
  • modified the brakes of the planes
  • adapted the startup dialog to the scene modifications
30.06.2011 | IrrOde update
 This is just an internal update: I moved all files to "trunk" in the SVN repository on to comply to the SVN standard. This was necessary because I want to be able to create tags or branches in the future.
26.06.2011 | IrrOde update
 Finally managed to get the spaces in IrrOde working. Check the IrrOdeCar demo to see the performance boost this procdues.
25.06.2011 | IrrOde update
 A new version of IrrOde is ready for download. It adds an autopilot to the helicopters, and the autopilot for the planes and homing missiles of the planes have been enhanced (though the missiles still lack some precision).

new controls:
  • Select Target (default key "T")
  • (de)activate autopilot (default key "P")
03.06.2011 | IrrOde update
 Just uploaded a new version with two enhancements:

  • added a free camera when no vehilce is selected. It can be controlled using the mouse buttons and moving the mouse
  • fixed a bug in the autopilot: sometimes invalid values were passed causing a crash in the ODE
02.06.2011 | IrrOde update
 Just for the fun of it I have added an autopilot to the planes in the IrrOdeCar demo. It's just great to see those four planes fly around all on their own.
25.05.2011 | IrrOde update
 I have included the "MeshCombiner" from the official Irrlicht forum into the IrrOdeCar demo to speed it up a bit. Thanks to Lonesome Ducky.
19.05.2011 | IrrOde update
 This is just a little update. I have added another force to the CIrrOdeAeroDrag motor used in planes. The new force uses a fraction of the uplift and sideward damp forces applied to the airplane to push it foreward. With this modification it is quite easy to fly a looping (this was almost impossible before).
18.04.2011 | IrrOde update
 Fixed a nasty little "NULL" pointer bug that occured when a new motor was added in using the IrrOdEdit plugin.
22.01.2011 | IrrOde update
 Added ODE's "approx" flags to IrrOde's surface parameters. Thanks to ulao from the Irrlicht forum for pointing out these were missing.
11.12.2010 | IrrOde update
 The main fix in this update can be found in the IrrOdeCar demo: if you shoot a bullet or shell with a tank or airplane it sometimes occured that it exploded immediately. This is now fixed.
I have also brought the IrrOdeCar demo a step further with the long-term target of networking. Now there are four cars, four planes, two tanks and two helicopters.
04.12.2010 | IrrOde update
 Got a new version online:
  • removed the IrrOdeMarble project
  • added new attributes to CIrrOdeTorque. It's not possible to influence how much roll, pitch and yaw is applied
  • Updated the IrrOdeCar demo trying to bring down the size of the replays
18.11.2010 | IrrOde update
 Updated the IrrOdeCar demo with the latest version of the advanced particle system: now there are explosions whenever you shoot something.
01.11.2010 | IrrOde update
 It's been a few weeks now, but here's a new version which adds some recording feature to IrrOde. This feature has been adapted from "Stunt Marble Racers". You can hit the "F2" key in the "IrrOdeCar" demo to start a recording and to stop and save it. The (yet very simple) IrrOdeRePlayer will check for this recording (located in "data/replay/car.rec") and replay it. There are still some problems, but in gereral it works.
09.10.2010 | IrrOde update
 I finally found a way around the gimbal lock problem in the IrrOdeCar demo. The current demo is working again. If you use IrrOde in your project you should just make sure that the initial rotation of a body does not cause a gimbal lock. It works, but it causes some jittering.
05.10.2010 | IrrOde update
 This is just a little fixed upload, there were some new files (in the "source/observer" and "include/observer") missing so that it was not possible to compile IrrOde out of the box.
06.09.2010 | IrrOde update
  • updated IrrOdEdit project
  • fixed little ifdef bug
  • moved body ids in some events from u32 to s32
  • added "isObservable" to IIrrOdeEvent
  • removed double body-removal from IrrOdeCar's projectile class
  • some improvements in the world observer
  • Added the start of IrrOdeWorldObserver. This class will be an important part for the coming replay and network functionality.
  • added "clone" method the events
  • updated vc2008 project
  • extracted the event queue from the CIrrOdeManager class into it's own class "event/CIrrOdeEventQueue"
  • events are now forewarded to the listeners as soon as they are posted (no more caching of events)
  • initialization of IrrOde changed: instead of setting the timer and scene manager there is now a single call "CIrrOdeManager::install" that must be called with the Irrlicht device as parameter before anything else of IrrOde is called
  • Moved the "body moved" callback that updates the scene graph from CIrrOdeWorld to CIrrOdeManager
  • added a "CIrrOdeEventQueue" header that will be used to separate the queue from the CIrrOdeManager class for reuse purposes
08.08.2010 | IrrOde update
  • Added method to CIrrOdeManager that encapsulates the "loadScene" method of the Irrlicht scene manager
  • some cleanup work done
  • Fixed buffer size bug in IrrOdeCar
  • new car model in IrrOdeCar
  • added a progress bar to IrrOdeCar initialization
26.07.2010 | IrrOde update
 Finally I managed to get rid of the memory leak I introduced almost a year ago. The current version doesn't leak at all (at least no leak was observed when using the IrrOdeCar demo).
17.07.2010 | IrrOde update
 Fixed a little bug in the selection of objects in the IrrOdeCar demo: it now works for all objects that can be removed.
11.07.2010 | IrrOde update
 Fixed methods to remove objects from a scene created with the "IrrOdEdit" plugin and added the possibility to remove parts of the scene to the IrrOdeCar demo.
28.06.2010 | IrrOde update
  • added a flag "updateGraphics" to CIrrOdeBody. With this flag you can disable the automatic update of the graphical representation of an ODE body. This is useful for "dummy bodies" that are just used to have more than one joint connect two bodies (e.g. a slider and hinge for a car's wheels)
  • added a "collision group" value to CIrrOdeGeom. Geoms with the same value not equal to zero won't collide. Useful for dummy bodies, e.g. to make sure the car's wheels don't collide with anything else of the car
22.06.2010 | IrrOde update
 Another small update: you can now specify a name for the parameters of bodies and reuse them with other bodies (there is a "useDefined" flag). This feature is available in the IrrOdEdit plugin.
20.06.2010 | IrrOde update
  • fixed some nasty bug with CIrrOdeJointSlider and joints in general
  • removed deprecated and unused geom parameter "isSurfaceMaster"
  • added some ODE functions to CIrrOdeBody, IIrrOdeDevice and it's implementations
  • improved the IrrOdeMarble and the IrrOdeCar demo
  • updated IrrOdEdit project
15.06.2010 | IrrOde update
 Added a XCode project to the zip file. Thanks to bluecat from the Irrlicht forum for providing this.
10.06.2010 | IrrOde update
  • moved the Code::Blocks project to Code::Blocks 10.05
  • remove some old methods
  • some "const" adaptions for the latest gcc
  • added implementation of the set and get methods for the world's ERP and CFM to CIrrOdeWorld
  • fixed a bug in CIrrOdeAeroDrag for reverse moving objects (it's not a real fix but a workaround)

I also started a project for IrrOde on where you can always access the latest code of IrrOde, often before a new version is available for download on
03.06.2010 | IrrOde update
  • added new event CIrrOdeEventProgress which is posted after each initialization step
  • added CIrrOdeSceneNode::initPhysics implementation (posting CIrrOdeEventProgress events)
  • made sure CIrrOdeSceneNode::initPhysics is called from all initPhysics methods
  • updated project files for new event
31.05.2010 | IrrOde update
 Another tiny update: I improved the config controller and added the new functionality to the IrrOdeCar demo.
28.05.2010 | IrrOde update
 Fixed a nasty little bug: the axes of joints attached to a body with a rotation that is not equal to (0,0,0) are now correct.
25.05.2010 | IrrOde update
 This time it's a little update. I modified the IrrOdeCar demo, the name of which is now (again) closer to what it is. I added 2 new cars with suspension, one with a rigid axle (use the "Select Car" button), and one with independent wheel suspension for all four wheels (use the "complex car"). The already known car is still available using the "Select Simple Car" button.
22.05.2010 | IrrOde update
 This time I fixed a nasty little but in CIrrOdeGeomTrimesh::removeFromPhysics. This method does now work. Thanks to Darkcoder from the official Irrlicht forum for reporting this bug and helping me with the solution.
18.05.2010 | IrrOde update
 Uploaded a new version with minor changes to IrrOdeCar. This demo is now linked to the static ODE lib, because there are some collision issues with static trimeshes when using the dynamic link version. I also replaced the CIrrOdeGeomHeightfield by a CIrrOdeGeomTrimesh for this demo as suggested as workaround in the ODE forum.
15.05.2010 | IrrOde update
 With the new version the handling of fast moving object collisions is improved. Collision is now not only detected between bodies, but also between bodies and static meshes.

I also added a road to the IrrOdeCar demo that connects the airfield, the car jump and the tank's shooting ground.
09.05.2010 | IrrOde update
 Moved the functionality of the airplane from the IrrOdeCar demo to the IrrOde lib. Created 3 new motors:

- CIrrOdeAeroDrag
- CIrrOdeImpulseMotor
- CIrrOdeTorqueMotor

all these new motors are subclasses of the new interface IIrrOdeStepMotor.
02.05.2010 | IrrOde update
 This time it's a nice update: I activated the plane that has been around in the IrrOdeCar demo for quite a long time. I figured out how to get it behave in a way I like - far from being realistic, but I think it's OK.
27.04.2010 | IrrOde update
 Added a new feature: it is now possible to mark a body as "fast moving". If this is done a ray will be cast from the old position to the new position after each step to detect missing collisions with other bodies. This is a nice feature, but it does have some drawback:
- only body-body collisions are detected
- only linear movement is compensated. Fast rotating bodies can still pass each other
- the collision between two fast moving bodies will not be detected (unless the do a "real ODE collision")
23.04.2010 | IrrOde update
 - fixed IrrOdeCar
- fixed problem with motors, servos and disabled bodies
- enabled collision of ray with static geoms
20.04.2010 | IrrOde update
 I have added a nice little tool that might make development of games and levels a lot easier and less work: the IrrOdeSurfaceEdit. You can use this tool to define all surface parameters in a central xml file and reference these settings later on.
16.04.2010 | IrrOde update
 This time I added support for .bsp (Quake3) levels and the Irrlicht octree scenenode.
10.04.2010 | IrrOde update
 - fixed demo projects for removed CIrrOdeEventCollision
- fixed case issues for building with Linux
29.03.2010 | IrrOde update
 This is a major update:

- modified event handling so that (for future projects) all network and replay stuff can be done through events
- moved fuctionality to update irrlicht scene from the ode device to the world object
- removed CIrrOdeEventCollision event. Collision data is now integrated in the CIrrOdeBodyMoved event
26.02.2010 | IrrOde update
 Switched from Irrlicht 1.6 to Irrlicht 1.7.1
14.02.2010 | IrrOde update
 - added functionality to limit collision detection to certain materials in CIrrOdeGeomBox
- fixed clone-bugs for all geoms
09.01.2010 | IrrOde update
 Little de-initialization bugfix
27.12.2009 | IrrOde update
 - New events added (CIrrOdeEventInit and CIrrOdeEventClose)
- little bug fixed in CIrrOdeEventBodyMoved
23.12.2009 | IrrOde update
 added namespaces
13.11.2009 | IrrOde update
 switched to Irrlicht 1.6
29.09.2009 | IrrOde update
 - added damping parameters for materials of static geoms
17.09.2009 | IrrOde update
 completed multiple materials for static trimeshes
13.09.2009 | IrrOde update
 prepared multi surface parameter for single static trimesh
07.09.2009 | IrrOde update
 Some little fixes
20.06.2009 | IrrOde update
 Added "IrrOdeMarble"
26.05.2009 | IrrOde update
 VC 2008 Projects added
05.04.2009 | IrrOde update
 IrrOdeCar improved
30.03.2009 | IrrOde update
 IrrOdeDevice completed
23.03.2009 | IrrOde update
 - added adaptive steering to IrrOdeCar
- added help screens to IrrOdeCar and IrrOdePlayground
21.03.2009 | IrrOde update
 IIrrOdeDevice added (+implementation, +NULLDevice)
17.02.2009 | IrrOde update
 Some Updates, e.g. update to Irrlicht 1.5 and ODE 0.11
10.01.2009 | IrrOde update
 - joints added
- joint limits added
- joint motors added
05.01.2009 | IrrOde update
 - redesigned directory structure (again)
- added joints
28.12.2008 | IrrOde update
 Trimesh now working correctly
26.12.2008 | IrrOde update
 CIrrOdeGeomTrimesh -- first attempt
21.12.2008 | IrrOde update
 - added Events
- Cylinder Geom added
- directory structure redone
16.12.2008 | new project: IrrOde
 A new project can be found in the Irrlicht section: IrrODE, a wrapper to easily integrate the Open Dynamics Engine into an Irrlicht project.