JOODE Development Status

Hi guys,

I’ve been playing around with ODEJava a while ago and stopped my efforts again, because there were too much unpredictable behaviour in this library, which made it useless for me. So I appreciate the development of a pure Java implementation of ODE very much.

I started to check out the latest sources of JOODE and tried to find out what’s the current status of the project. From this I could identify the following points:

  • the activity on the project (CVS commits) seems to be low in the last few weeks
  • I could figure out that a lot of functionality if ODE is not ported to Java until now (limits and motors on joints, cylinder geometry, hash spaces)
  • the code itself seems to be a very raw port of the C sources (C-stylish method and property names, few use of an object oriented approach, no use of the collection API)

In earlier posts about the status of JOODE it looks like you were planning to release a first version in the end of March. I guess this will not fit into your timeframe anymore. What are your current problems?

  • did you experience servere problems when porting the code or
  • is it really only a question of time?

For me it is very hard to see if the code is working. The Testcases seem to be working, but they are very rudimentary. I would love to see the project going on and could spend some effort to make the porting and clean up of the resulting code going on (ven though I am not a real expert in physic engines). But before doing this I would like to make sure if the effort is not only a waste of time. Who can tell me more about it?

Harald

have you checked the java.net cvs out, or the one at sourceforge?

Only the sourceforge one https://sourceforge.net/projects/joode/ is up to date.
the last commit is only some days old.

end of march - is not yet past :wink: and t_larkworthy only has to find the bug in his code for convex-convex collisions (ok - this is some kind of an unknown factor)

Arne

I am on the SourceForge forge. Maybe I am just a little bit too exited to see JOODE work and expected still more to change on the subjects mentioned above :wink:

Am I right that your started to implement a convex hull geometry in favour of the ODE geometries (sphere, box, cylinder, trimesh)? Otherwise I would miss at least the cylinder geometry (for vehicle physics).

Could you tell me where you implemented new or replaced existing functionality (compared to ODE) ?

mmh theres the convex hull stuff - it’s going to replace box and we think on building a GeomTerrain with it. I don’t know how it’s going to work out with GeomTriMesh, because TriMeshes are fairly different.

and there are also some differences in the handling of the spaces but that are actually more internal differences, that shouldn’t matter to the average user. There’s OctTreeSpace now which doesn’t exist in ODEJava.

If you need something, that’s not implemented yet, you’re welcome to implement it (e.g. the cylinders) instead of hashspace you could use OctTreeSpace for now.

Hi hdietrich,
Yeah the code is pretty raw and some functions are still C-style, but heh that’s a first attempt to get something running. We can do refactoring when needed. Yeah the CVS activity is pretty low, actually I’m waiting for t_larkworthy to finish his convex-convex collision detection stuff before doing extensive testing. And Yeah limits and motor on joints are not yet ported, these are planned for the second release of JOODE (according to t_larkworthy’s post).
But I can assure you the project isn’t dead at all.

To be honest, JOODE is no port of ODE anymore. I started to move the code for Cylinder geometry from ODE to JOODE and realized that the JOODE impelemntation of the colliders has not much in common with the code in ODE. I guess there is more “new” code than ported code in JOODE now. At the moment I don’t know how to handle this.

Yeah it’s OO you know :wink:

I think the best way would be for you to simply look at the example of sphere, and then simply port the logic. That’s how I did this with Box. In the Geom itself are only simple methods like calculation of the penetration depth and so on. For the different Collision-Types (e.g. Sphere-Cylinder, Cylinder-Cylinder) you’ll have to write a new class handling that collision and also register it in Colliders. The best way to find how to do this is again to look at already ported examples (Sphere-Sphere or Box-Sphere - only Box-Box doesn’t work correctly).

Your work is appreciated. :slight_smile:

@Tom: If you don’t hurry with your Convex-Hull code, you’ll also have to implement Convex-Cylinder Collisions, hehe :wink:

I wonder if Tom is dead or if he’s in holidays at the Bahamas… or if he has been debugging for 3 weeks… ;D

Hello. I have not been in the office for a while. I am here. I am desperate to get back into JOODE but it is the end of term and I have TONS of stuff to do. I had a robot competition on Tuesday. Our robot blew up! Smoke and everything. But yeah, I have lots of major projects in over the next two weeks and then exams. And my Summer project starts before my exams! Urgh. Rediculous workload it really is. For those who are interested, which I doubt there are any, I am taking pictures of fly brains under a confocal microscope and automatically mapping them using machine learning techniques. Woo! I can’t wait.
So yeah. Don’t expect me to do much over the next 3 weeks. But I promise I will be back with avengance ASAP

OK, then check in your code (convex stuff) and tell us about the status. I guess there are some people willing to translate/implement further (JO)ODE features.

Otherwise arne will get involved in the fluid dynamics implementation too much :wink:

hehe

Code for capped cylinder is coming soon ;D

Sorry if my infos are not up to date. However, are you speaking about the CappedCylinder collision code?

On the page it just says ‘No File Packages Defined’. How can I get the source files? I can understand from hdietrich’s statements that they must be available somewhere.

EDIT: right, right. The CVS. Always check once more before posting…

Yeah. ;D

I said soon. I just have to do some testing, before I can provide the code. I will post it to this form, since I do not have write access to CVS.

By the way, who has write access to JOODE CVS at all?

t_larkworthy, arne and me.
You can apply for developer access at the sourceforge.net project and t_larkworthy will give you the rights.

Hmmmm… can’t seem to get access to CVS at the moment. I can’t upload my latest collision code…

The CVS repo at sourceforge has been down for the last couple of days.