Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.76.0] - 2023-03-07

Added

  • Added functions to traverse the graph and visit upstream and downstream nodes

[1.75.0] - 2023-03-05

Added

  • AttributeTemplate.get_default_data accessor

[1.74.2] - 2023-03-01

Fixed

  • OM-84762 IBundleFactory get_bundle conversion methods bugfix.

[1.74.1] - 2023-03-01

Fixed

  • warning about deprecated function call

[1.74.0] - 2023-02-28

Added

  • ComputeGraph::flushUsd call to apply pending usd changes.

[1.73.1] - 2023-02-25

Changed

  • Modifed format of Overview to be consistent with the rest of Kit

  • Fixed link to Python autodocs

[1.73.0] - 2023-02-24

Added

  • ResolveAttrTypeCommand

[1.72.4] - 2023-02-23

Added

  • Two new utility methods for evaluating code once at the start/end of threaded unit tests in ThreadsafetyTestUtils.

[1.72.3] - 2023-02-22

Changed

  • Renamed omni.kit.exec references to omni.kit.exec.core

[1.72.2] - 2023-02-21

Added

  • ThreadsafetyTestUtils class that helps simplify the writing of thread-safety tests for OG nodes.

[1.72.1] - 2023-02-19

Changed

  • Added label to the main doc page so that higher level docs can reference the extension

[1.72.0] - 2023-02-16

Changed

  • Unification of Py_Bundle and IConstBundle/IBundle

[1.71.1] - 2023-02-15

Fixed

  • Made test file pattern account for node files not beginning with Ogn

[1.71.0] - 2023-02-15

Changed

  • Switched the default execution backend for generated tests. Execution Framework in enabled by default

[1.70.1] - 2023-02-09

Fixed

  • Reverted unintential change to test case creation

[1.70.0] - 2023-02-08

Added

  • AttributeTemplate API calls

[1.69.0] - 2023-02-07

Added

  • Split support for test configurations without forcing specific base class

[1.68.0] - 2023-02-06

Added

  • omni.graph.core._unstable module

  • AttributeTemplate CompoundNodeType python bindings

  • CreateCompoundNodeType, CreateCompoundNodeTypeInput, CreateCompoundNodeTypeOutput, RemoveCompoundNodeTypeInput, RemoveCompoundNodeTypeOutput commands

Removed

  • CreateNodeType, CreateTypeInput, CreateNodeTypeOutput, RemoveNodeTypeInput, RemoveNodeTypeOutput

[1.67.4] - 2023-02-02

Fixed

  • Lint error that appeared when pylint updated

[1.67.3] - 2023-01-30

Changed

  • Removed the kit-sdk landing page

  • Moved all of the documentation into the new omni.graph.docs extension

[1.67.2] - 2023-01-30

Changed

  • Refactored OG test generation to not assume execution backend

[1.67.1] - 2023-01-20

Fixed

  • GIL locking safety in bindings call out to python

  • GIL is released before Graph eval via python

[1.67.0] - 2023-01-11

Changed

  • Made dynamic attribute failures raise exceptions

  • Made return values of dynamic attribute commands more consistent

  • Made the node controller failures in dynamic attribute operations raise exceptions

[1.66.0] - 2023-01-11

Removed

  • Gather prototype is gone

Changed

  • Bundle attributes are now all typed as eRelationship (no ePrim anymore)

[1.65.3] - 2023-01-03

Changed

  • Added [native] to make package separate for each platform & build config

[1.65.2] - 2022-12-21

Changed

  • Refactored CUDA build to consolidate build functions and remove unnecessary rebuilds

[1.65.1] - 2022-12-16

Fixed

  • Updated inspection to handle Python node redirection

[1.65.0] - 2022-12-14

Added

  • CreateNodeTypeInput and CreateNodeTypeOutput support empty references and specifying the supported ogn type(s)

[1.64.0] - 2022-12-14

Changed

  • Filtered out test_data_access tests from EF generation. These tests have issue with per-node data when run twice, but they don’t provide any value for compute correctness since they only read a file and use python data base.

[1.63.0] - 2022-12-13

Added

  • og.AttributeType.get_unions() method to access the attribute union definitions.

[1.62.1] - 2022-12-12

Added

  • Fixed occasional crash in grouped undos/redos.

[1.62.0] - 2022-12-08

Fixed

  • Settings.tempoary context manager now removes any settings that it adds.

Changed

  • Settings.temporary context manager now accepts a list of settings.

[1.61.0] - 2022-12-02

Changed

  • Modified Python node type registration process to handle multiple versions on-demand

[1.60.0] - 2022-11-24

Removed

  • Setting useSchemaPrims

  • Test variations that allow modifying the deleted setting

Changed

  • Turned use of the deleted setting into errors

[1.59.0] - 2022-11-22

Added

  • ObjectLookup.variable now supports Sdf.Path and str objects

Fixed

  • Errors and crashes from OmniGraph commands when grouping or applying successive undo and redo calls

[1.58.1] - 2022-11-21

Added

  • Documentation for running a minimal Kit with OmniGraph

[1.58.0] - 2022-11-17

Removed

  • Settings updateToUSD, supportForceWriteback, useLegacySimulationPipeline, and enableUSDInPreRender

  • Test variations that allow modifying the deleted setting

Changed

  • Turned use of the deleted settings into errors

[1.57.0] - 2022-11-14

Changed

  • Default simple dynamic attribute values to the CPU

[1.56.0] - 2022-11-12

Removed

  • Support for the deleted implicit global graph setting

  • Test variations that allow modifying the implicit global graph setting

Changed

  • Turned use of the implicit global graph setting into errors

[1.55.1] - 2022-11-10

Changed

  • removed dependency on omni.kit.test

[1.55.0] - 2022-11-10

Added

  • Support for redirecting dynamic attributes to the GPU

[1.54.0] - 2022-10-31

Changed

  • change bindings to reflect new Fabric naming conventions.

  • change all types to reflect new namespace, should remain abi compatible

[1.53.0] - 2022-10-23

Added

  • og.get_kit_version()

[1.52.0] - 2022-10-20

Added

  • NodeType.is_compound_node_type()

  • GraphRegistryEvent.NODE_TYPE_NAMESPACED_CHANGED, GraphRegistryEvent.NODE_TYPE_CATEGORY_CHANGED

[1.51.2] - 2022-10-19

Fixed

  • Corrected the path to the default category files

[1.51.1] - 2022-10-14

Changed

  • test generation for EF will filter tests that target deprecated implicit graph

[1.51.0] - 2022-10-03

Added

  • instance_path argument added to IVariable.get, get_array and set methods to specify the instance of the variable

[1.50.0] - 2022-09-30

Added

  • node_type.get_path(), which returns the path to the prim associated with a node type

[1.49.0] - 2022-09-28

Added

  • Collection of registration and deregistration timing for Python node types

[1.48.1] - 2022-09-27

Fixed

  • Py_AttributeData set value for attribute with ePath role

[1.48.0] - 2022-09-21

Added

  • Og.Node.is_compound_node

  • Og.Graph.is_compound_graph

  • CreateNodeType, CreateNodeTypeInput, RemoveNodeTypeInput, CreateNodeTypeOutput, RemoveNodeTypeOutput, ReplaceWithCompound commands

[1.47.0] - 2022-09-20

Added

  • Ability to control prim and node creation behavior with allow_exists

[1.46.1] - 2022-09-19

Fixed

  • Lookup of output bundles by path

[1.46.0] - 2022-09-14

Changed

  • Refactored controller classes to accept variable arguments in all methods and constructor

Removed

  • References to obsolete set of unsupported types

  • Last remaining references to the obsolete ContextHelper

Added

  • Argument flattening utility

[1.45.2] - 2022-09-07

Added

  • Python node type registration deallocates attribute defaults after registration.

[1.45.1] - 2022-09-01

Fixed

  • Fixed the type name access in the node controller to handle bundles properly

[1.45.0] - 2022-08-30

Added

  • Handling for allocation of memory and transfer of values for Python default values

[1.44.0] - 2022-08-23

Added

  • GraphRegistry.get_event_stream to get an event stream that triggers when node types are added and removed.

[1.43.0] - 2022-08-19

Added

  • Access to new setting that turns deprecations into errors

[1.42.0] - 2022-08-12

Changed

  • og.AttributeData now raise exceptions for errors instead of printing

[1.41.1] - 2022-08-09

Fixed

  • All of the lint errors reported on the Python files in this extension

[1.41.0] - 2022-08-02

Added

  • Optimize attribute setting from python nodes - during runtime computation we skip commands (no need for undo)

[1.40.0] - 2022-07-27

Added

  • IBundle2 remove_attributes_by_name, remove_child_bundles_by_name

[1.39.0] - 2022-07-27

Changed

  • Added better repr to Attribute and Node

[1.38.1] - 2022-07-26

Fixed

  • Adjusted config to avoid obsolete commands module

  • Added firewall protection to AutoFunc and AutoClass initialization so that they work in the script editor

[1.38.0] - 2022-07-19

Added

  • IBundle2 interface API review

[1.37.0] - 2022-07-12

Added

  • Python performance: database caching, prefetch and commit for batching of simple attribute reads/writes

[1.36.0] - 2022-07-12

Fixed

  • Backward compatibility of the generated attribute descriptions.

[1.35.0] - 2022-07-08

Added

  • omni.graph.core.Attribute.is_deprecated()

  • omni.graph.core.Attribute.deprecation_message()

  • omni.graph.core.Internal sub-module

  • omni.graph.core.Internal._deprecateAttribute()

[1.34.0] - 2022-07-07

Changed

  • Refactored imports from omni.graph.tools to get the new locations

  • Moved node_generator/ into the _impl/ subdirectory

  • Made dunder attribute names in AttributeDataValueHelper into single-underscore to avoid Python compatibility problem

Added

  • Test for public API consistency

[1.33.0] - 2022-07-06

Added

  • Metadata support for IBundle2 interface

[1.32.3] - 2022-07-04

Fixed

  • Py_GraphContext’s eq and hash now use the underlying GraphContext object rather than the Python wrapper

[1.32.2] - 2022-06-28

Changed

  • Made node type failure a more actionable error

  • Bootstrap the nodeContextHandle to allow independent database creation

Added

  • Linked docs in the build area

[1.32.1] - 2022-06-26

Changed

  • Made node type failure a more actionable error

[1.32.0] - 2022-06-26

Added

  • Added test for clearing bundle contents

[1.31.1] - 2022-06-21

Changed

  • Fixed error in graph_settings when loading non-schema prims

[1.31.0] - 2022-06-17

Added

  • omni.graph.core.graph.get_evaluator_name()

[1.30.1] - 2022-06-17

Added

  • Added ApplyOmniGraph and RemoveOmniGraph api commands

[1.30.0] - 2022-06-13

Added

  • omni.graph.core.GraphEvaluationMode enum

  • evaluation_mode argument added to omni.graph.core.Graph.create_graph_as_node

  • evaluation_mode property added to omni.graph.core.Graph

  • SetEvaluationModeCommand

  • evaluation_mode parameter added to CreateGraphAsNodeCommand

  • evaluation_mode option added to GraphController

[1.29.0] - 2022-06-13

Added

  • Temporary binding function to prevent Python node initialization from overwriting values already set

[1.28.0] - 2022-06-07

Added

  • Added CPU-GPU pointer support in data_view class and propagation of the state through python wrapper classes

[1.27.0] - 2022-06-07

Added

  • Support for the generator settings to complement runtime settings

[1.26.1] - 2022-06-04

Fixed

  • Nodes with invalid connections no longer break upgrades to OmniGraph schema

[1.26.0] - 2022-05-06

Fixed

  • Handling of runtime attributes whose bundle uses CPU to GPU pointers

Added

  • Support for CPU to GPU data in the DataWrapper

[1.25.0] - 2022-05-05

Removed

  • Python subscriptions to changes in settings, now handled in C++

[1.24.1] - 2022-05-05

Deprecated

  • Deprecated OmniGraphHelper and ContextHelper for og.Controller

[1.24.0] - 2022-04-29

Fixed

  • Fixed override method for IPythonNode type

Removed

  • Obsolete example files

Added

  • Explicit settings handler

Changed

  • Used explicit OmniGraph test handler base classes

[1.24.0] - 2022-04-27

Added

  • GraphController.set_variable_default_value

  • GraphController.get_variable_default_value

  • ObjectLookup.variable

  • GraphContext.get_graph_target

[1.23.0] - 2022-04-25

Added

  • Added a test to confirm that all version references in omni.graph.* match

[1.22.2] - 2022-04-20

Fixed

  • Undoing the deletion of a connection’s src prim will now restore the connection on undo.

[1.22.1] - 2022-04-18

Changed

  • og.Attribute will now raise an exception when methods are called when in an invalid state.

[1.22.0] - 2022-04-11

Fixed

  • Moved Py_Node and Py_Graph callback lists to static storage where they won’t be destroyed prematurely.

  • Callback objects now get destroyed when the extension is unloaded.

[1.21.1] - 2022-04-05

Fixed

  • Added hash check to avoid overwriting ogn/tests/init.py when it hasn’t changed

  • Fix deprecated generator of ogn/tests/init.py to generate a safer, non-changing version

[1.21.0] - 2022-03-31

Added

  • IConstBundle2, IBundle2 and IBundleFactory interface python bindings.

  • Unit tests for bundle interfaces

[1.20.1] - 2022-03-24

Fixed

  • Fixed location of live-generation of USD files from .ogn

  • Fixed contents of the generated tests/init.py file

[1.20.0] - 2022-03-23

Added

  • GraphEvent.CREATE_VARIABLE and GraphEvent.REMOVE_VARIABLE event types

  • Graph.get_event_stream()

[1.19.0] - 2022-03-18

Added

  • Added command to set variable tooltip

[1.18.0] - 2022-03-16

Added

  • support for enableLegacyPrimConnection setting to test utils

[1.17.1] - 2022-03-14

Fixed

  • Corrected creation of implicit graphs that were not at the root path

  • Added tests for such graphs and a graph in a layer

[1.17.0] - 2022-03-11

Added

  • Node.get_backing_bucket_id()

  • GraphContext.write_bucket_to_backing()

[1.16.0] - 2022-03-01

Added

  • expected_error.ExpectedError (moved from omni.graph.test)

Changed

  • Updated OmniGraphTestCase and derived classes to use test_case_class

[1.15.0] - 2022-02-16

Added

  • Added commands to create and remove variables

[1.14.0] - 2022-02-11

Added

  • Attribute.register_value_changed_callback

  • Database.get_variable

  • Database.set_variable

  • Controller.keys.CREATE_VARIABLES

  • GraphController.create_variable

[1.13.0] - 2022-02-10

Added

  • Added support for migration of old graphs to use schema prims

[1.12.2] - 2022-02-07

Changed

  • Moved carb logging out of database.py and into Node::logComputeMessage.

  • Fall back to old localized logging for Python nodes which don’t yet support the compute message logging ABI.

[1.12.1] - 2022-02-04

Fixed

  • Compute counts weren’t working for Python nodes

  • Compute messages from Python nodes weren’t visible in the graph editors

[1.12.0] - 2022-01-28

Added

  • Support for WritePrim creation in GraphController.expose_prims

[1.11.0] - 2022-01-29

Changed

  • Reflecting change of omni.graph.core from 2.11 -> 2.12

[1.10.0] - 2022-01-27

Added

  • ObjectLookup.usd_attribute

[1.9.0] - 2022-01-21

Added

  • Node.log_compute_message

  • Node.get_compute_messages

  • Node.clear_old_compute_messages

  • Graph.register_error_status_change_callback

  • Graph.deregister_error_status_change_callback

  • Severity enum

[1.8.0] - 2021-12-17

Added

  • Added NodeType.get_all_categories_

  • Added get_node_categories_interface

  • Created binding class NodeCategories

[1.7.0] - 2021-12-15

Added

  • Added NodeType::isValid and cast to bool

  • Added Controller class

  • Added GraphController class

[1.6.0] - 2021-12-06

Added

  • og.NodeEvent.ATTRIBUTE_TYPE_RESOLVE

[1.5.2] - 2021-12-03

Added

  • Node, Attribute, AttributeData, Graph, and Type objects are now hashable in Python, meaning that they can be used in sets, as keys in dicts, etc.

Fixed

  • Comparing Node and Graph objects for equality in Python now compare the actual objects referenced rather than the wrappers which hold the references

  • Comparing Attribute and AttributeData objects to None in Python no longer generates an exception.

[1.5.0] - 2021-12-01

  • Added functions to get extension versions for core and tools

  • Added cascading Python node registration process, that auto-generates when out of date

  • Added user cache location for live regeneration of nodes

[1.4.0] - 2021-11-26

Added

  • Python Api Graph.get_parent_graph

Fixed

  • Fix failure when disconnecting a connection from a subgraph node to the parent graph node

[1.3.2] - 2021-11-24

Changed

  • Generated python nodes will emit info instead of warning when inputs are unresolved

[1.3.1] - 2021-11-22

Changed

  • Improved error messages from wrapped functions

[1.3.0] - 2021-11-19

Added

  • bool operators added to all returned OG Objects. So if node: is equivalent to if node.is_valid():

Changed

  • Bug fix in Graph getter methods

[1.2.0] - 2021-11-10

Added

  • og.get_node_by_path

  • get_graph_by_path, get_node_by_path now return None on failure

[1.1.0] - 2021-10-17

Added

  • og.get_graph_by_path

[1.0.0] - 2021-10-17

Initial Version

  • Started changelog with current version of omni.graph