Creating an intermediary application in panda/pyQt

So I’m totally new to panda, but have a reasonable grasp of python and a very good grasp of maya and mel- I was thinking of a project to start up in my spare time to help get my python knowledge up to snuff.

unfortunately I don’t know too much about panda and I was wondering if anyone had any thoughts on the following:

I’d like to create an intermediary interface application for animators which would allow a picking interface that could talk to maya, xsi, or any other 3d application, and what I want to do is dock a panda3d window inside of a pyQt UI, and use panda to display 3d primitives ( or very simple geometry) that represent control objects inside of the 3Dapp.

As a further step a config file for each set of objects (prolly xml) would be used to describe what corresponding action to perform in maya if you clicked on (selected) a particular object or element in the panda view

Ideally, though the 3D environment would allow the user to pan around the control structure, the app would be python controlled, and functionally behave mostly like a 2d application, I’ve seen similar things done in 2d with mel, or html/flash, but I’ve always found the implmentation to be fairly clumsy

Does anyone have any thoughts on if something like this would work, is a good idea, or knows of some example code that does similar things?

panda3d window inside of a pyQt UI possible but pretty hard. I guess mel is maya’s programming language i have no clue haw far it goes. The main thing is i don’t get “why” but i guess you know. The only problem i see is running panda inside a pyQt ui. Dont think you could modify maya to to have panda3d inside its window. Panda3d window could probably exist on its own. Most of the time you will be dealing with mel and Qt - for me this will be a very frustrating project :slight_smile:

hey thanks for the reply! Mel is maya’s scripting language, there are a few reasons why doing this outside of maya is nice:

-maya’s UI creation tools are crap (same is true for xsi, 3dmax, etc.)
-if the tool is built in python, it can be used to drive other applications as well.
-doing it natively in python makes doing other things such as processing external config files (in xml for example), or accessing a database, which is attractive for a larger pipeline
-as of maya2008 there is dev support for PyQt, which is already widely used in my industry (which most people will read as an acknowledgement by the developer that maya ui tools are pretty limited)

sending commands through a port via python is fairly straightforward, and mayas commands are already available as a module in python that you can import so it’s quite straight forward.

Looking in to it a bit further pyOpenGl might be a better choice, have to do a bit more digging. I found a few video tutorials on that have what looks like a fairly straightforward implmentation, just have to see how hard it will be to get some more complex functionality

pyOpenGl is quite simple and I have used it together with wxWidgets. But pyOpenGL is bare bones 3d API and can be quite hard to do some of the maths or optimizations.

Why is this required to be in a Qt window? Cant it just float all by itself in a panda3d window?

My own game editor has a panda window inside a wxWidgets window. It’s pretty good possible, and must be also possible in pyQT, if pyQT can take panda’s window handles.

I suppose it could be a standalone panda window? the python stuff can be behind the scenes-

I want to use pyQt as the software I want to drive with this (maya) has dev support for pyQt, and (though I haven’t tried it) is supposed to be the friendliest way to communicate with maya using an external app-