Toolkit

The OmniGraph toolkit window provides a variety of inspection and debugging tools that are mostly of interest to low level developers and node writers. It is constantly evolving to provide the tools most relevant to developers, both internal and external.

OmniGraph Toolkit

Memory

The top section shows information on memory usage. The memory use must be updated manually as it changes constantly. The values shows in this section are only a rough guide as not all memory is tracked internally. It is more useful as a tool to see changes in memory usage as a session proceeds, to flag potential memory leaks.

Inspection

This section has functions that inspect internal data in OmniGraph, implemented via the omni.inspect extension. Each of the functions has a “?” icon through which you can get details on what it outputs and what each of the flags appearing beside it represent.

Dump Fabric

Presents a JSON format view of the data OmniGraph uses to link to the underlying Fabric data used for computation

Dump Graph

Presents a JSON format view of the data known to the currently existing OmniGraphs

Dump Registry

Presents a JSON format dictionary of all registered node types. It’s worth noting here that nodes that are implemented in Python will be in a sub-list labeled PythonNode.

Dump Categories

Presents a JSON format list of all of the currently known node type categories

Extensions

Extracts information regarding the known extensions downstream of omni.graph.core and presents it in a JSON format that can be processed to understand where OmniGraph features are being used

Extension Processing Timing

Displays the timing information gathered when OmniGraph notices that a new extension has been enabled and it processes the extension to find and register any existing OmniGraph nodes and tests.

Scene Manipulation

This section contains a number of features that show and manipulate high level contents of the current stage.

Extensions Used By Nodes

List the current node types in use, grouped by the extension in which they were defined

Node Extensions Missing

List a guess at extensions not currently enabled, but which define existing nodes. Until the extensions are enabled such nodes will not operate correctly

Nodes In All Extensions

List every node type known to OmniGraph, grouped by the extension in which they were defined

Generate .ogn From Selected Node

Take the attributes defined on the currently selected node and create a basic .ogn file that describes it. This can be used for a raw Prim with properties defined through USD as well as an existing OmniGraph node with extra attributes added dynamically.

Debug output

For most Inspection operations and some Scene Manipulation operations an output will be produced. This output will be shown in this section, as well as being copied into the global Python variable omni.graph.core.DEBUG_DATA. The section also provides a copy feature when the right mouse button is pressed, so that you can paste the data into an external editor.

Here is how you might process the JSON data that the Dump Graph button provides as output:

import json
import omni.graph.core as og
graph_data = json.loads(og.DEBUG_DATA)
for graph_path, graph_info in graph_data.items():
    print(f"Showing graph information at {graph_path}")
    print(f"   Evaluator Type = {graph_info['Evaluator']}")
    print(f"   Node Count = {len(graph_info['Nodes'])}")