Let’s say I want to create a node in python that can act as a live datasource. I assume something will need to trigger the compute / potential dirty flags etc. so the node’s compute function does get called and its output can be updated. How would I go about achieving something like this?
My first thought maybe there is a node providing system clock / information at specified frequencies that I could pipe into my node to trigger a compute. Or some sort of generic listening node that can check for external events (file updates, timecode / genlock sources etc)?
Or is there a way to just have a node update itself via a process spawned upon its creation?
Thanks for any pointers!
Hi Carsten,
We are working on a system in OmniGraph that will allow it to react to events. This should allow you to achieve what you want to do. However, this feature is still very early, in the prototyping stage at the moment. We will have more announcements about it as it becomes more ready for consumption.
Thanks for clarifying! Instead of an external event, is there currently an option to drive something based on the current scene time / frame?
In Create 2021.1, not really unfortunately - it’s just a preview to give a sense for what it would look and feel like. It’s missing a lot of features. We did expose a time node in 2021.2 to be released in the near future, and you could use that then. It’s still very much still a WIP even then though - OmniGraph still has a ways to go to mature sufficiently.
Thank you for clarifying - yeah, I had a ton of questions as to the aims of the omni.graph project. Right now I see it used to express functional interdependency within the usd scene graph (which is cool, kind of maya dg style). But I was wondering about potentially modifying the scenegraph itself (solaris, katana, gaffer style), event graphs (touch designer) or task execution dependency (pdg).
I guess I’ll better sit tight, wait and see. :-)
It feels that when it comes to modifying a usd scene graph / render based on live data I would have to look into using the kit and create a custom application, rather than hosting that in create (?).
The mandate for OmniGraph runs long :)
For now you can see it as a procedural graph built for realtime on top of USD. In the near to mid-term we will leverage this graph to address things like realtime deformer chains, particle systems, movement and event graphs to bring Omniverse alive. In the longer term things like what you are mentioning are definite possibilities, although we’ll re-evaluate those possibilities and their priority when we are farther along.