Omniverse Graph

What is it, and why are we doing it?

Omniverse will be made up of many extensions - from animations to physics to inferencing algorithms with DNNs to name just a few. In order for all these systems to interact with each other, we need a graph framework to “glue” it all together - not only those prebuilt components, but also provide a compute framework where clients can integrate their own functionality as well. The framework is to be flexible enough to address all of the above range of use cases, and more, as well as handling a large range of granularity of compute - from sub-millisecond warp level to hours long training of neural networks as some examples.

Detailed Node Documentation


Writing Nodes

To learn all about the way you can implement and access the data from the .ogn files go to the Omnigraph Node Writer’s Guide.

To start with an existing node and convert it to use the .ogn format follow along with the Omnigraph .ogn Conversion Tutorial that shows the step-by-step conversion of a node.

To get a walkthrough of the node writing process by way of examples that build on each other, from the simplest to most complex node go to the Omnigraph Walkthrough Tutorial.

Omnigraph nodes are configured using a JSON style format with a .ogn extension. This is used for writing nodes in all formats; C++, Python, CUDA, or Slang. The full details of the syntax of this file format can be found in ogn_generation_script.

Nodes that exist inside the omni.graph.core extension make use of some internal element of that extension and are there for no other reason. Ideally the core would consist only of the functionality required to implement the nodes without any nodes itself.

Currently Existing Nodes