[ODE] Geist3D, ODE and Open-source
jstier@cs.uvic.ca
jstier at cs.uvic.ca
Fri Apr 7 20:48:32 MST 2006
Hi Everyone,
For the past five years I have been developing a virtual reality authoring tool
and engine (www.geist3d.org) as part of my research. I have also used to ODE
since 2002. Just recently I have first released Geist3D in a news-feed at
opengl.org. I was surprised by the traffic this has produced. The internet is
bigger than I thought. In this light I have decided to Open-source Geist3D as
well. Now I have two problems; how to properly integrate ODE and under what
license to release it.
Since I have implemented my own scene graph there is a lot of overlapping
data. For each data member in the ODE engine there exists the same member in my
own scene tree nodes. The problem is that I also have Python bindings and
Python requires that you pass to the interpreter a struct containing the
members in order to ensure fast access. In ODE all of the members are hidden
and they cannot be presented in the way that python expects them. So, I am
considering to remove the outer layer of ODE and replace/merge the structs i.e.
dxBody, dxJoint with my own node types. This way, they will only have one
memory address, ensuring good performance and consistency. There is a similar
problem with the bounding boxes, because they are important for occlusion
culling which, as far as I know, ODE does not do. Now, how can I combine ODE
and Geist3D so that any further development benefits both sides. Not to mention
all of the discussions about Bullet and GJK... If I do this, how much support
can I expect from the ODE community and how can we combine our efforts.
The other question I have is what open source license to use. I know that ODE is
LGPL, i.e. do what you want! Geist3D, however is an authoring tool with a GUI
and a runtime engine. Does this license make sense here ? What are the
implications and what does it mean.
Anyways, if you have some time and a good graphics card have a look at Geist3D.
It was intended as a mechatronics simulation tool. Basically you have a virtual
environment which reflects the effect of mechanical actuators -- obviously by
leveraging ODE to a large extent. Using the sensor telemetry from the
environment you can then develop a control system using Petri Nets and Python,
which in turn changes the virtual environment. Basically, the simulation models
the same feedback loop that you will find with between a real mechatronic
system and its environment... at least to some extent.
The installation of Geist3D includes a bunch of interesting models. When you go
to the website you will find Geist3D and Geist3D-programmable under the
download section. The former is more intended to show that GLSL shading
language features, but there is a ragdoll demo, a domino and a box stack. The
latter contains the really interesting stuff as far as rigid body dynamics
goes. There is a small factory and a landscape with autonomous, four wheeled,
vehicles.
Cheers
Jochen
P.S. I have already outstripped my bandwidth with the ISP. Their billing system
is down and I cannot purchase any more. But they guaranteed that the site will
remain up an running. If you cannot get to www.geist3d.org let me know and I
will repost this message again :)
P.S.S. The code is not there yet. I just yesterday decided to open-source and
there is soooo much cleanup to do!
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
More information about the ODE
mailing list