Hi to all,
Is there any python wrapper of OpenSteer ?
We would like to use it in Blender to create some behavioral animation about biological life,
we searched for a python wrapper of this library but we couldn't find anything.
We saw that there is a guy who ported OS to python, but as a series of python scripts,
indeed for our purpose we need to have a .pyd python module that wrap this library, so we can load it directly inside blender in our scripts.
and if there isn't anything like that, we could do this port in python, maybe with your help too.
Do you think it's a good idea?
Thank you.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Are these the Python scripts you refer to? I'm afraid I don't know anything about Python nor .pyd modules. If PyOpenSteer and Panda3D do not meet your needs, and you have the motivation to try a port, please feel free to try it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you very much for your efforts! I am completely Python-illiterate but know that a lot of people have been interested in the intersection of Python and OpenSteer.
At the risk of saying "thanks for all that work, now can you do more?" I need to point out that the 0.8.2 release was made a loooong time ago. It is totally my fault that there is not a newer release, but as a work around I usually advise people to start from the latest version in SVN. Could you at least investigate how much it would affect your wrapper to use the newest "devo" version of OpenSteer?
- abstract classes are not wrapped in Python (in Python there isn't "abstract" concept as in C++ for now), so all abstract classes are replaced by dummy concrete classes (i.e. "AsbtractVehicle" is wrapped into a generic "Vehicle" class, which is a sort of clone of "SimpleVehicle" implementation without annotation stuff).
- there isn't a clear separation from OpenSteer library and OpenSteerDemo application (of course it's a known "bug") so it's quite difficult to wrap only necessary stuff (clear library without OpenSteerDemo).
- there are (in 0.8.2 version) some nested classes and/or structures (i.e. "PathIntersection" in "SteerLibrary" class) which are not correctly wrapped by SWIG (www.swig.org), so I've used some workarounds.
- original C++ code uses a lot of mixin classes with template syntax, which is a typical C++ feature not so simple to port in Python code (templates in Python are not allowed, so I've wrapped some template instantiations instead).
In my opinion some of these issues can be resolved on the C++ side but first I need to checkout SVN version.
However, I think it's not a big problem to update my "pyOpenSteer" with SVN revision ;)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi to all,
Is there any python wrapper of OpenSteer ?
We would like to use it in Blender to create some behavioral animation about biological life,
we searched for a python wrapper of this library but we couldn't find anything.
We saw that there is a guy who ported OS to python, but as a series of python scripts,
indeed for our purpose we need to have a .pyd python module that wrap this library, so we can load it directly inside blender in our scripts.
and if there isn't anything like that, we could do this port in python, maybe with your help too.
Do you think it's a good idea?
Thank you.
Sorry for the delay... You didn't say, but I assume you saw this recent thread about "OpenSteer ports, wrappers, etc.": http://sourceforge.net/forum/forum.php?thread_id=2209866&forum_id=264792
It mentions:
PyOpenSteer -- Port of OpenSteer to Python
http://svn.python.org/projects/stackless/trunk/Stackless/demo/paelike/PyOpenSteer/
and
Panda3D -- Python port built on top of Panda3D game engine
https://sourceforge.net/projects/pandasteer/
Are these the Python scripts you refer to? I'm afraid I don't know anything about Python nor .pyd modules. If PyOpenSteer and Panda3D do not meet your needs, and you have the motivation to try a port, please feel free to try it.
I've made a complete (wrapped) porting of OpenSteer (0.8.2) for Python.
It's faster than pyOpenSteer and PandaSteer because it uses original C++ code instead of Python replication.
I want to release it but "pyOpenSteer" name is already in use...
Thank you very much for your efforts! I am completely Python-illiterate but know that a lot of people have been interested in the intersection of Python and OpenSteer.
At the risk of saying "thanks for all that work, now can you do more?" I need to point out that the 0.8.2 release was made a loooong time ago. It is totally my fault that there is not a newer release, but as a work around I usually advise people to start from the latest version in SVN. Could you at least investigate how much it would affect your wrapper to use the newest "devo" version of OpenSteer?
See "Otherwise use Subversion..." in this section of the doc: http://opensteer.sourceforge.net/doc.html#InstallingOpenSteer
Thanks again,
Craig
Well, OpenSteer Python wrapping troubles are:
- abstract classes are not wrapped in Python (in Python there isn't "abstract" concept as in C++ for now), so all abstract classes are replaced by dummy concrete classes (i.e. "AsbtractVehicle" is wrapped into a generic "Vehicle" class, which is a sort of clone of "SimpleVehicle" implementation without annotation stuff).
- there isn't a clear separation from OpenSteer library and OpenSteerDemo application (of course it's a known "bug") so it's quite difficult to wrap only necessary stuff (clear library without OpenSteerDemo).
- there are (in 0.8.2 version) some nested classes and/or structures (i.e. "PathIntersection" in "SteerLibrary" class) which are not correctly wrapped by SWIG (www.swig.org), so I've used some workarounds.
- original C++ code uses a lot of mixin classes with template syntax, which is a typical C++ feature not so simple to port in Python code (templates in Python are not allowed, so I've wrapped some template instantiations instead).
In my opinion some of these issues can be resolved on the C++ side but first I need to checkout SVN version.
However, I think it's not a big problem to update my "pyOpenSteer" with SVN revision ;)