OdeNet + Mogre math types


22-01-2007 18:12:37

This will come useful for those that want to use ODE in their .NET applications: http://articaserv.ath.cx/OdeNet
Mogre.OdeNet.dll (100.0 kB) - "A specialization of OdeNet using Mogre (Managed OGRE) math types."


27-01-2007 01:48:35

Thanks for noticing my wrapping efforts :) .

The purpose of OdeNet is supplying a complete managed solution for using ODE besides the simple P/Invoke approach. High-level classes are much more desirable for a .NET environment.

Integration with Mogre came about from specific project requirements, and optimized the final solution quite a bit.

In the past few days I've integrated a basic XODE parser. XODE is the XML standard used by both Odejava and PyOde and allows OdeNet to benefit from some of the existing tools to model physics simulations into XODE and then data-drive object creation into the final application.

Please feel free to use it, tweak it, break it and overall test it to make it better.

Oh, and thanks for Mogre :) it's an amazing wrapper (my jaw dropped when I saw the FPS increase from to 0.1.9).


27-01-2007 06:50:10

Cool, nice guy! :lol:


27-01-2007 17:21:25

The purpose of OdeNet is supplying a complete managed solution for using ODE besides the simple P/Invoke approach. High-level classes are much more desirable for a .NET environment.
I couldn't agree more.

Will you setup a forum for OdeNet ? (or is there a mailing list ?)
Also, some simple tutorials/demos on how to get it working with a Mogre scene would be extremely helpful.


28-01-2007 02:02:00

Well, OdeNet has been an individual project of mine and it's very recent, so I haven't opened a forum or mailing list yet. I can consider it, of course, if there is enough interest.

As for examples of Mogre interaction, two of the available unit tests use Mogre to visualize a simulation. They can be found in OdeNet.UnitTests\VisualTests.cs in the Mogre.OdeNet branch. Basically one of them is the classic box with floor collision test and the other is a ragdoll falling on the floor, with the quirk that the physics portion of the doll is detailed in a XODE XML file.

XodeReader xodeReader = new XodeReader(world, space, jointGroup);
XmlDocument document = new XmlDocument();
XmlReader reader = new XmlTextReader(new StreamReader(ragdollTemplateFile));

This code loads the entire physical description of the ragdoll to named ODE objects and then it's a matter of binding the positions of those objects to positions of Mogre objects, like scene nodes or skeleton vertices. For instance with code like this:

foreach (KeyValuePair<Geom, Entity> binding in boxes)
binding.Value.ParentSceneNode.Position = binding.Key.Position;
binding.Value.ParentSceneNode.Orientation = binding.Key.Orientation;

This binding code is not, as yet, a part of OdeNet, mainly for two reasons: flexibility and modularity. The attempts I've seen so far to tightly bind physics engines to Mogre are excessively strong, and not very adequate for the component oriented design of the projects I'm developing, where everything is supposed to have the possibility to bind with everything else.

However, if anyone is interested in suggesting a good object-oriented set of classes to implement this without tight and intrusive bindings to OdeNet, I'll be happy to discuss it.

It's nice to see interest in the library gradually rising.


03-09-2007 12:08:00

Hey I've tried update my SVN from svn://articaserv.ath.cx/OdeNet however I'm asked for a user name and password. I am mainly interested in your exaples (VisualTests.cs)


03-10-2007 11:43:57

Sorry for the delay in the answer, but I've been a bit off from OdeNet for a couple of months. I'll probably be coming back to action soon in order to upgrade OdeNet to use the latest ODE version.

I'll check the SVN server permissions ASAP. It should allow for anonymous connections for reading. I'll let you know as soon as this is operational.

Thanks for your interest,



16-01-2008 14:28:55

I created a wiki article.
Feel free to add more information or sample code.



03-03-2008 12:36:41

On this site http://articaserv.ath.cx/OdeNet there is wrapper for ode 0.7 but as i know ode is in its 0.9 version already. Are you going to update wrapper for this new version ??


24-06-2008 17:26:55

I have the ray and trimesh coded up, but can't seem to figure out the c# equivalent of dCollide ... Does anyone have a sample of the OdeNet equivalent? Please include a few surrounding lines, as I may have the wrong c# objects declared... or, does anyone have a copy of the samples? I can't seem to access http://articaserv.ath.cx/OdeNet . -thx.


01-07-2008 22:51:26

I'm sorry for not keeping up with the proper support for the OdeNet wrapper. I've been using and maintaining it in a number of personal projects, and I'll try and make some critical source submissions soon.

Main improvements are:

- Updated to Ode 0.9
- Added strong-name signing for easier integration with strong-named frameworks
- Added some more missing methods from the class interfaces.


The equivalent of dCollide is Geom.Collide(). I'll try and answer specific usage questions in the forum here.

If anyone is interested, please open up a new forum post tagged with [OdeNet] for organization.

Best regards,



05-07-2008 17:04:19

I'm not sure if it's just me, but the documentation won't work for me. The help viewer just says the page cannot be displayed. I even tried extracting the chm and looking at the individual help files in Firefox.

Is there anything I can read in a format besides CHM?


12-07-2008 02:47:23

Hi there,

CHM is a common help file format on Windows XP so it should work out of the box. Anyway, I'll consider making the documentation reference manual available as online HTML when I get the time to update OdeNet somewhere next week.

I know I've promised to do the release swiftly, but I've been delayed by some work compromises. I think I'll definitely find the time to do it this week and I'll post here as soon as it happens.

Best regards,



13-07-2008 03:37:45

Well, I have no problems with other chm files on my computer and I had the same problem with this chm on another computer *shrug*

Looking forward to the new release, etc, whenever you get time :)