VisualPyODE

Post date: Oct 07, 2012 4:35:35 PM

VisualPyODE is a framework library to aid in using PyODE and Visual Python together. When you create objects they have both physical and visual properties. Supports collision, assemblies, and comes with some helpful enhanced joints to simplify creating your visualized simulation. I have implemented the PyODE tutorial demo programs using the library so you can see exactly how it compares. There is also an extra demo of a 6DOF (six degree of freedom) platform that I put together to show how the piston assembly is used. Download the library at the bottom of this page. Dual licensed under LGPL or BSD for your programming pleasure.

Right now the libraries of enhanced joints and assemblies are pretty thin but hopefully they will grow over time. One of the primary reasons why I chose to work with VisualPython is it's simplicity combined with the ability to have mouse interaction with 3D objects. The combination of physics and 3D interaction is powerful and has many exciting applications. I have used it to allow the user to push and reshape objects connected by ode joints behaving like springs. I expect to be expanding on the enhanced joints in odelib and the pre-built assemblies in vpyode.lib over time. Presently there are enhanced hinge and slider joints with springs and friction, and a piston assembly.

Please be sure to read the code found in library (odelib/__init__.py, vpyode/__init__.py, vpyode/lib.py) as well as the demos to see how everything works. I developed and tested this on Ubuntu Linux using pyode and visual from the repositories but it should also work on Windows and OS/X assuming that you can get PyODE and VisualPython working on them -- AFAIK nothing VisualPyODE is platform specific.

I have a couple of new versions of the library that I have not yet released. Visual Python is very fast but I have had numerous problems with it breaking on my systems, I have not found a good way to integrated into a UI like wxPython, and it does not allow subclassing or extending it from Python. I created a clone of Visual Python using PyOpenGL, unfortunately it is very slow for large numbers of objects. I also created a clone of Visual Python using Panda3D and it is faster than PyOpenGL for large numbers of objects but still much slower than Visual Python. The Panda3D version seems to hold promise since the Panda folks are working on multi-threading the graphics pipeline and they have support for the Bullet physics library which may improve at a faster rate than ODE. If any of this is very interesting to you send me an email and maybe we can work on it together.

Downloads:

PandaODElib.zip: https://drive.google.com/file/d/1Mu-qIVlNX63LPzr9uTrtiR4H2O_W5-13/view?usp=sharing

VisualPyODE_v0.1_src.tar.gz: https://drive.google.com/file/d/1yccBnD4RN4zeBoAucXyaxZR8Ehg0icUv/view?usp=sharing