Communication from the outside with Maya, Softimage, Nuke etc

Maya has the commandPort that you can plug into for sending messages from the outside (like Sublime Text) and Houdini has HOM and its RPC interface.

I’m looking to integrate software that isn’t run from within the host application but rather communicates with it from the outside. This way the codebase remains the same, regardless of where I choose to integrate it and without worrying about changes within each of the host targets themselves - like updated Python versions, updated Qt versions etc.

My question is, what software would be tricky to integrate with like this?

I know Maya, Softimage, Houdini, 3ds, Photoshop, Nuke, Mari and I’m sure plenty of others offer Python support out of the box, but do they all support being driven by from the outside?

Qt has the QNetwork module that I can use to setup a bridge between Qt-supported apps and my external tools, but what about apps that don’t support Qt, would the library on its own still be useful?

I suppose it comes down to each host in turn, but is there a more uniform way of achieving this result?

Thanks,
Marcus

Anything that runs python can run something like rpyc or zeromq. It’s up to you to write the server that runs in the host app and responds to incoming events, however, which usually means maintaining a separate thread for listening to the network – and all the hassles that come with running threaded code inside a DCC tool that expects to own the main gui loop. It is possible - just not trivial.

Cool, thats interesting.

What kind of hassle are you thinking when running a separate thread inside of, say, Maya? The scenario I’m imagining is to simply push a stack of data (e.g. list of nodes) out of Maya and into the app upon launch, and then push commands back into Maya as the user interacts with the app.

Hey there,

in a thread i started a while ago there where quite a lot of pointers:

We are currently also using OLE to automate Max from some of our apps still.

Regards,
Thorsten