IrrODE - an Irrlicht - ODE wrapper (now with SVN)

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki

IrrODE - an Irrlicht - ODE wrapper (now with SVN)

Postby Brainsaw » Mon Apr 20, 2009 10:47 am


I've been working some time on this project and I want to share it with you. It is an Irrlicht-ODE wrapper ( There is still quite a lot to do for me, but I thought I could do a first "official" release, now that I finished the plugin. Contents of the package:

- source code
- 3 demo applications
- an IrrEdit plugin

You can grab the wrapper at my homepage (

There is a little additional dependency in the IrrOdeCar demo. You need to download the "AdvancedParticleSystem" I developed if you want to compile it. It can be found at

The demo applications:

- helloIrrOdeWorld

A little application with a sphere bouncing off a cube. It is part of the first tutorial. It is almost the same as the "IrrOdEditExample" demo

- IrrOdePlayground

Just a terrain and a FPS camera (in the beginning). You can add objects and watch them being affected by gravity and collide with the terrain and other objects. F1 gives a help screen where the keyboard mapping is explained. Some screenshots:

- IrrOdeCar

With the latest version the name of this app is outdated. It should be IrrOdeVehicle (or something like that), because I added a tank and a helicopter. Simple tank and heli but real fun to play around with.

- IrrOdEditExample

A very simple program with a sphere dropping on a cube and bouncing back. It was done using the IrrOdEdit plugin. A screenshot:

- IrrOdeMarble

this is a simple demo game inspired by "Marble Madness". Just use the mouse to control your marble and roll it to all of the checkpoints.
I hope you have as much fun playing around with this project as I had developing it.

You can find IrrOde's sourceforge project on (SVN:
Last edited by Brainsaw on Tue Jul 18, 2017 6:01 am, edited 9 times in total.
Posts: 1115
Joined: Wed Jan 07, 2004 12:57 pm
Location: Bavaria

Postby shadowslair » Mon Apr 20, 2009 6:11 pm

I like it. It`s nice to have working ODE wrapper for Irrlicht. Thank you! :wink:
"Although we walk on the ground and step in the mud... our dreams and endeavors reach the immense skies..."
User avatar
Posts: 758
Joined: Mon Mar 31, 2008 3:32 pm
Location: Bulgaria

Postby Frank Dodd » Mon Apr 20, 2009 6:53 pm

This looks very cool! I am going to download it and try it out at the weekend, thanks a lot.
Frank Dodd
Posts: 208
Joined: Sun Apr 02, 2006 9:20 pm

Postby Malgodur » Tue Apr 21, 2009 5:10 am

good job!! Ill try iit.
Posts: 195
Joined: Sun Mar 15, 2009 8:22 pm

Postby Brainsaw » Tue Apr 21, 2009 5:33 am

Thanks for your comments. I am currently working on some tutorials, first one to get it compiled with Code::Blocks and gcc, and then I will add another one on how to build a scene with the IrrOdEdit plugin for IrrEdit. I hope that I can get (at least) those two finished until next weekend and will upload a new version.
Posts: 1115
Joined: Wed Jan 07, 2004 12:57 pm
Location: Bavaria

Postby firnafin » Wed Apr 22, 2009 9:42 am

Thx . Great job.
( to compile ODE 0.11 under linux use --with-pic option).
Posts: 1
Joined: Sun Apr 12, 2009 9:05 pm

Postby Brainsaw » Thu Apr 23, 2009 3:04 pm

I just uploaded a new version with the following changes:

- bugfix: IrrOdEdit does now load the dummy scenenodes even if the working directory was changed
- added a "helloIrrOdeWorld" application
- added 2 tutorials

Initial post is also updated.
Posts: 1115
Joined: Wed Jan 07, 2004 12:57 pm
Location: Bavaria

Postby Brainsaw » Sun Apr 26, 2009 9:07 am

Another update:

added 2 new classes:

- CIrrOdeMotor: a motor that can be attached to a joint and encapsulates the motor functionality of the joint
- CIrrOdeServo: can be attached to a joint to set an axis of the joint to a specific position, e.g. steering of a car

The demos "IrrOdePlayground" and "IrrOdeCar" have also been updated with the new classes. Happy downloading.
Posts: 1115
Joined: Wed Jan 07, 2004 12:57 pm
Location: Bavaria

Postby Malgodur » Mon Apr 27, 2009 4:26 am

Playground sometimes crash... i happened 3 times for me.

Brainsaw, ill probably use it. Can i easy make with it colision for model? But not the bounding box. Real-looking collisiion.
Posts: 195
Joined: Sun Mar 15, 2009 8:22 pm

Postby Brainsaw » Tue Apr 28, 2009 5:44 am

I uploaded a new version yesterday. The IrrOdEdit plugin was improved, you can now clone all geoms and the basic ODE objects. Joints and Motors can't yet be cloned. In addition I updated the IrrOdeCar demo, the scene is now loaded from an .irr file instead of creating it manually.

@Malgodur: You should use the Trimesh for that. But using this is slower and leads to errors sometimes (doesn' crash often, but gives error messages on stdout ... you have to compile the debug version for that).

The playground crashes from time to time, this happens when some of the values get in an invalid range. It happend with the IrrOdeCar demo quite often when you crashed into one of the obstacles and made them spin too fast. I solved the problem with the car demo by adding angular damping and a maximum angular velocity to those bodies. To make it short: if the application crashes because of an ODE internal error it is a good idea to play around with the values for the collisions, e.g. damping and such.
Posts: 1115
Joined: Wed Jan 07, 2004 12:57 pm
Location: Bavaria

Postby Dorth » Tue Apr 28, 2009 7:07 am

Rule no 1 of physic: It doesn't like infinite force, it's intolerant to unmovable objects and it REALLY HATES applying a on b. Be careful that all moving parts have friction both angular and linear. Give masses to everything. Don't move object directly if you can avoid it, use forces/impulses instead (and if you must, remove the object from the scene first, place it, add it back). Those are general tips for the vast majority of physic engines, both 2d and 3d. I think it might help you here.

(For example, I usually use only one static object in my scenes if I can get away with it. As weird as it may seems, it often goes faster, not slower and give a far more stable simulation. If I can avoid giving it a body/shape and only use links/joints connected from it's position to other 'static' objects, even better!)

Ah, and don't forget, while many engines claim to have plenty of nice way of calculating a moving object, it still relies on steps somewhere deep. The smaller the time steps, the better, always. As long as you don't break floats or slow your app :roll: (why won't they use Reals with a decimal instead of floats! ARGH!)
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Postby Brainsaw » Wed Apr 29, 2009 5:40 am

Once again: a tiny update: I implemented the "clone" functionality for all scene nodes where it was still missing (joints and motors) yesterday and uploaded it.

This was the last update for 3 weeks, because I am going on vacation to the US (Westcoast 8) ) on friday.
Posts: 1115
Joined: Wed Jan 07, 2004 12:57 pm
Location: Bavaria

Postby Brainsaw » Thu Apr 30, 2009 6:02 am

OK, this time it's the definite-absolute-totally-last-update-before-my-vacation ;). Found a little time yesterday and I did two things:

- the joints in the IrrOdEdit plugin were modified: you do now only get the joint parameters that are interesting for the joint, i.e. there are up to three groups of joint parameter, but most joints do not use all of them, so I did a modification so that you can only change those that are relevant
- the IrrOdeCar demo scene is now completely done in IrrEdit with the plugin, so not a single node is created in program code any more.

I hope you have some fun with it and see you in 3 weeks.
Posts: 1115
Joined: Wed Jan 07, 2004 12:57 pm
Location: Bavaria

Postby ulao » Mon May 04, 2009 10:02 pm

Hey, nice wrapper man! Going to give you a hand stress testing it ;)Here are a few things I would recommend doing and / or found not working.

Libs? You did not include any?
I was able to build a lib by creating a sln from your irreditode, just porting it to the irrode files.. But I think you should leave the sln’s in there for all examples as most of us use VS anyways. Just a nitpick, but it helps.

What is getBodyCound ? did you mean getBodyCount ?

What are the class names for in the irr edit plugin?

Your IrrOdeCar dir is missing h files?

IrrOdEditExample broke.
I set up IrrOdEditExample and the ball will not move, also tried the non edit version and no movement. But running the exes it bounces? I see your irrlicht.dll is not the right size. If I use the correct version of irrlicht.dll with your examples I get a crashes as you compiled with the corresponding lib.

I just realized you never mentioned the version it was for? This maybe part of my problem. I'm able to compile it against 1.5 but its not working.

correct files size of irrlicht.dll for version 1.5
2.17 mb
dec 14th 08

Your version of irrlicht.dll
1.22 mb
may 01 2009

Based on the dates I would guess this is the latest from the svn? Going to check that.( -- nope the latest is twice the size of the original 1.5 ) Not sure where this version came from?

I tried to render my bounding boxes with
but nothing shows. I did try to render() my bodies in the update but nothing changed. IS the render for world a way to render all bodies? - This could be related to the problem above, as it seems the physics do not run with my version of irrlicht.dll.

I'm liking the irrEdit pluging.. This was a nice idea!

hope your vacation is/was good!!
Posts: 274
Joined: Fri Mar 28, 2008 2:13 am


Postby buhatkj » Thu May 14, 2009 5:06 am

yeh i had similar problems, I managed to build a lib based on how your code::blocks project was set up, but can't make it work. I tried duplicating your work in the irrODEdit example sort of in my framework of stuff in vs2008, but I get runtime access violations.
I will try next just directly compiling your example code, but so far I have no clue what's going wrong here......
My irrlicht-based projects have gone underground for now, but if you want, check out my webcomic instead!
User avatar
Posts: 444
Joined: Fri Dec 12, 2003 4:53 am


Return to Project Announcements

Who is online

Users browsing this forum: No registered users and 1 guest