Forum breadcrumbs - You are here:ForumPrism: GeneralPDG and Prism
You need to log in to create posts and topics.

PDG and Prism

Hi,

I'm working on a project builder made with pdg for Prism. I've made a recording showing how it works here:

https://www.dropbox.com/s/e5a19oz4r7jq6m6/prism_PDG_setUp.mp4?dl=0

(Richard: There's a question for you at the end of the video)

Hopefulle we can develop a set of prism nodes to take care of basic prism actions like:

  • creating import and export states
  • publishing and importing states
  • saving files (the prism way)

I think those would be the main ones, and it would make it quite easy to make a highly modular automatic folder creation hda that could easily be tailored to each project (many clients have rules about naming etc, and also just basic asset structure vary a lot in general)

Other ideas I have for utilizing pdg with prism would be forΒ  caching and also creating a system for chained publishing states. So let's say you have an assembly scene with a character. The character have a big cape that is simulated, that interacts with another characters hair. There might be some geo you are making procedurally on the character, and dust effects etc etc... In this case you have a lot of dependencies, and if you get an updated character animation cache it can be quite tedious to cache everything one by one (you can automize it to a certain degree, but you probably know what I mean). So I'm planning to make a system tailered for Prism so it knows all dependecies and so you can with a single click of a button update all caches - AND even publish a render state, then publish the comp with the updated image sequence, then make an mp4. That last part would be quite a time saver for me at least.

Would love to hear if this would be of interest, and if you guys have any other ideas for PDG with prism, and what nodes that would be nice to have for prism.


HIP, Json and starting files:

https://www.dropbox.com/sh/ykz2k2ac0zmbyse/AAAEUBNtjRv4zbfXTlkhNLala?dl=0

Wow Magnus, awesome work!

Thanks for sharing this, I'll be following this with anticipation.

 

Awesome Magnus! I love to see how you're pushing the boundaries.

Now instead of the cusom folder creation for steps and similar things I would instead would like to use Prism's API.
Completely agree on the Prism TOP HDAs. That stuff should be insanely powerful

Also have you tried to use the maya server instead of a custom python processor? Not sure if it would help at all, just figured.

I already spoke to Richard about this, but I think this is a point where Prism could reaaally use a DB base, instead of relying on a folder structure as a base.

If you need any help, feel free to ask for it here. I have a "bit" of experience in Prism as well as with PDG.
Keep it up!

Thanks Japistos! πŸ™‚

Manuel: Thanks! Auguste from the forum here did most of the python stuff based on some nodes that Richard made a while back, so I can't take all the credit, but it was quite intuitive for the most part to set up, and so even an 'artist' like me can make quite advanced pipeline tools is quite awesome I think.

 

Totally agree, prism nodes that use prism API would be ideal, however one upside of this setup is that it could easily be modified to any project, not limitied to prism, would be very easy to change the whole folder structure if needed.

I couldn't get the maya server to run, and I couldn't find an example file anywhere, do you know where to find that / or how to set it up?

Any help would be appreciated. I'm not skilled enough in python to understand the prism code well enough to make prism pdg nodes. I think there is also a few blockers in the code still for some of the export states to be able to be trigged in a subprocess, but Richard knows, and hopefully he will have time to look at that in a few weeks.

Also saw the Solaris livestream reveal last night. Dang, that's gonna be some powerful stuff when linked with prism and pdg pipeline. Now we just need prism to integrate usd.

I'll have a bit of time to look into Prism + PDG soon. I'll probably poke Richie a bit for implementation methods.

Yes PDG itsself is very flexible, but it's easy to create a mess and 100s of files on your server.

I remember seeing a example file with the Maya server. I'll search for that one.

Yeah integrating USD is gonna be a topic. Also the depth of implementation. USD can change the whole literal definition of an asset in a pipeline.

Chilling for a bit until other people come up with solutions and borrowing their ideas is gonna be the way. Either way, USD is gonna be the future of data and asset exchange in CG.

Manuel: Thanks! That example file could be quite useful, I wonder why it's left out of the doc.

 

I saw sideFX had a talk today at SIGGRAPH called 'Pipeline in a box' - with PDG. The video was up for a few minutes, but it's down again now... Hopefully they will reupload - I'm sure there are many things we could steal from that one πŸ™‚

I saw that too for couple of seconds. Spoke to someone at SideFX and they confirmed they're coming back next week.

 

I couldn't find the file I mentioned, but I've attached something I found online https://www.vfxforce.cn/archives/5453. Don't ask me how I downloaded it though lol

 

Richard also did some stuff for a company and didn't like the server begin/end workflow as much compared to just having a python processor. I'm the other way round. Either way, the .zip + website should get you started.

 

Also turn off "Open on Startup" in the Prism PB options.

Uploaded files:

Thanks for sharing your progress with PDG and Prism, Magnus.

Since Prism 1.2.1.0 there is a $PRISMJOB and $PRISMJOBLOCAL variable in Houdini available, so you should be able to use them in your TOPs setup already.

The error you get at the end of your video means that the Prism Maya integration is not updated to the necessary version. Make sure Prism is updated to the latest version and then go into the Prism Settings and install the Prism integration for Maya 2017 again. The prismInit function which you saw in the error message is defined in this file: %userprofile%\Documents\maya\2017\scripts\PrismInit.py

There are already some Prism API functions, which let you create Assets, so you don't need to create all the "Scenefiles" and "Export" folders manually in TOPs. I'll make some example TOPs HDAs soon, so you can give some feedback. Until then I'd love to hear all the ideas you guys have about a Prism-PDG integration πŸ™‚

Hey Richard,

Ah I see. I tried updating Prism, but I don't think I remembered to update the integrations as well, thanks.

It's great that we have easy accessable variables to get the project path. Just a little note, sideFX is in the latest PDG video mentioning that the $ environment variables shouldn't be used with PDG as it introduces some problems when multithreading. I guess at the start of a TOPs setup we would just have to use the 'create attribute' node in TOPS to store the $PRISMJOB to for example @PRISMJOB...? Maybe if there are several varables to be converted they could be oput into a 'Init Prism' node that take care of all that? It could also store variables for what asset or shot that is currenty open, and name of the project and user for example. This could of course be done with the 'attribute from string' node, but to collect all the setup-y stuff in one easy to use node would quite nice I think.

Asset creation api and top node sounds great! That will certainly help a lot πŸ™‚ Is there any api for state import and export? (I guess you added some of that functionality for the 'prism process' top node?)

 

I made a suggestion for an init_Prism hda. You can find it here.

I hard coded removal of a suffix for the project folder name, I guess there is a way to access the project name directly?

Also, I added a path for an extra cache location that is outside ptismjob and prismjoblocal.

By the way, does anyone know about a simple way to get a parameter from the parent node in a python script tops hda?

 

 

Uploaded files:
  • Capture1.PNG