Page 1 of 1

Load plugin into Python with opensim 3.2

Posted: Fri May 10, 2019 3:13 pm
by gattia
Hi all,

Im curious if it is possible and how one would go about loading a plugin into opensim when using the python api in opensim 3.2?

I have tried using the LoadOpenSimLibrary() function from the 3.2 API (see link at end). However, this doesnt seem to exist in my built version of opensim 3.2 - I've looked through the opensim.py file and cant find anything.

Any thoughts or suggestions would be greatly appreciated.

Thanks!

Anthony.

https://simtk.org/api_docs/opensim/api_ ... 4ed662af58

Re: Load plugin into Python with opensim 3.2

Posted: Mon May 13, 2019 4:32 pm
by tkuchida
Any thoughts or suggestions would be greatly appreciated.
I would try upgrading at least to 3.3.

Re: Load plugin into Python with opensim 3.2

Posted: Tue May 14, 2019 8:23 am
by gattia
Thomas,

Thanks for the prompt reply!
I have 4.0 running and have used that. However, I have purposefully downgraded to 3.2 to allow use of the SynergyOptimization plugin (https://simtk.org/projects/synergy), which is specific to 3.2 release - there are bugs when it is used with 3.3.

I have however found a workaround for loading the libraries that seems to work. See my response to my own question on github at (https://github.com/opensim-org/opensim-core/issues/2445). Essentially, the LoadOpenSimLibrary() was not included properly in the swig interface file. I added a line for that and re-built and this module is now available in the python API and now allows me to load in libraries.

However, I will note that I am getting wonky results from the library (which I dont get on the GUI), so I am unsure if my hack to load the library had unintended consequences... or if I went wrong somewhere while building the plugin (I had to build for linux).

Any thoughts or suggestions would be greatly appreciated.

Anthony.

Re: Load plugin into Python with opensim 3.2

Posted: Tue May 14, 2019 8:42 am
by tkuchida
Any thoughts or suggestions would be greatly appreciated.
There are a couple strategies you might consider.
1. Use OpenSim 3.3. You would need to build the SynergyOptimization plugin for 3.3, which might require some upgrading (or you might contact the author to ask whether an upgraded version is available).
2. There are many possible explanations for why the library is not functioning correctly. To investigate, you might try testing a very simple plugin and gradually building up the complexity until an issue is found. If Python wasn't supported, that means the interface wasn't tested so you would need to build up your own suite of tests. I would expect this strategy to take longer than upgrading the plugin.