Connect SDK Changelog
1.0.0
Core
Features
All Nucleus functionality (Omni Client Library and Omni USD Resolver) is now compile-time optional (OM-121498)
Added a new
Feature.h
containing precompiler definitions for optional features (OM-121498)This removes the need for special
defines
in Connector build configuration to control the featuresThis is included from
Api.h
automatically, so no code changes are requiredGated all Nucleus functionality behind an
OMNICONNECTCORE_WITH_NUCLEUS
feature andwithNucleus()
runtime functionGated all Python functionality behind an
OMNICONNECTCORE_WITH_PYTHON
feature
Fixes
Fixed the fallback logic for name validation functions when bootstring encoding via
omni_transcoding
fails (OMPE-4039)We now fallback to a
TfMakeValidIdentifier
-like function, which is slightly improved for handling numeric prefixed names
DevTools
Features
Added compile-time option to gate Nucleus functionality (OM-121498)
Use
--set-token nucleus:on
or--set-token nucleus:off
when building Connect SDKConnectors do not need extra flags, select the correct package and
connect-sdk-options.lua
oromni/connect/core/Feature.h
will inform the client if Nucleus features are available
Added new packages for the default USD flavor that are with/without Nucleus and with/without Python (OM-121498)
Added a new
repo_install_sdk
tool to download and install Connect SDK binaries & assemble runtime dependencies into a dedicated folder (OM-124446)The tool installs minimal necessary runtime dependencies for each flavor of Connect SDK.
It is intended to produce a fully automated distro that can be used directly in a Connector’s deployment strategy.
See Connect Samples repo.toml & prebuild.toml for a working example, or read the docs for the new tool.
Fixes
Updated to latest licensing terms (OM-123242, OM-118634, OM-123163)
Disabled Docker by default to simplify bootstrapping for external users (OM-121731, OM-123164)
Removed need for GPUs during CI tests (OM-121505)
Fixed
nopy
packaging script (OM-121498)Fixed
connect_build
premake module when building on a path with spaces (OM-94075)Python stubs (.pyi files) are generated only for the modules we actually run/test/deploy (OM-124446)
Fixed the
config.packman.xml
config that ships in the public packages (OM-124758)
Breaking Changes
The package names have changed. Any existing packman configs will need to be updated (OM-121498)
The
nopy.minimal
package feature name has been renamed to simplynopy
The
nucleus
package feature name has been added (e.gnucleus-on
ornucleus-off
)The
kit
package feature name has been removed
The
connect_build
premake functions no longer install files to the target build directory (OM-124446)Use the new
repo install_sdk
tool instead. See Connect Samples repo.toml & prebuild.toml for a working example or read the docs for the new tool
The testing strategy for Connect SDK has changed (OM-124446)
All unittests remain the same, but the runtime directory is now generated using the
repo_install_sdk
tool rather than multi-directory configurationThis provides test coverage for the tool itself, and results in per-flavor testing that is more consistent with an actual deployed runtime
Documentation
Added a brand new Getting Started guide (OM-121816, OM-123677)
Featuring new “Try the Connect Samples”, “Integrate Connect SDK and Build a Connector”, “Test a Connector”, and “Debug a Connector” articles
Re-organized the existing articles & guides to help clarify the expected developer journey (OM-121816)
Added license notices for the Omniverse EULA and 3rd Party license notices for OSS (OM-123242, OM-118634, OM-123163)
Added an article for the new
repo_install_sdk
tool (OM-124446)Updated the README & html landing page with download instructions for Connect SDK packages (OM-124446)
Updated component details, runtime file layouts, and contributing guide to explain optional Nucleus flavors (OM-121816, OM-124739)
Updated C++ and Python API docs to explain optional Nucleus and RTX specific features more clearly (OM-124031)
Dependencies
Runtime Deps
OpenUSD pxr-23_11 (same)
This is the default flavor, refer to
deps/build-flavors.toml
for other supported flavors.
Carbonite 167.3 (from 166.2)
Omni Client Library 2.47.1 (from 2.46.0)
Omni USD Resolver 1.42.3 (same)
Omni Asset Validator 0.11.1 (same)
Omni Transcoding 0.1.0 (from 0.0.1)
fmt 7.0.3 (same)
pybind 2.11.1 (same)
Dev Tools
packman 7.21.1 (same)
repo_tools (all to latest supported)
doctest 2.4.5+nv1-3
cxxopts 2.2.0
MSVC 2019-16.11
Premake 5.0.0-beta2
Python 3.10.14+nv2 & 3.9.19+nv2
0.8.0
Core
Features
Added
getValidPropertyName()
for authoring aUsdProperty
on a givenUsdPrim
(OM-117239)Added persistent I/O preferences via
saveExportPreferences
andsaveImportPreferences()
(OM-118627)Only options explicitly marked with
storePreference = true
will be saved.
Validate all python unittest output using the Omni Asset Validator python module (OM-117309)
Fixes
Fixed a hang that could occur when using Verbose logging for the ‘omni.client’ channel (OM-119705)
Fixed a unittest failure when
user.config.json
is missing (OM-118628)Fixed static analysis warnings (OM-121566)
Fixed GCC 11 compilation issues (OM-121731)
Note GCC 11 is not officially supported in that we don’t have CI/CD coverage for it.
Note any GCC 11 build would still need to set
_GLIBCXX_USE_CXX11_ABI=0
Kit
Warning
The Kit C++ library and Python module are deprecated, and will be removed in the next major version.
UI
Warning
The UI C++ library and Python module are deprecated, and will be removed in the next major version.
Fixes
Fixed a bug with the
usdEncoding
default fallback tousdc
when theUSD_DEFAULT_FILE_FORMAT
environment variable is unset (OM-123518)Improved UI test handling of large directories (OM-118628)
Breaking Changes
Removed About Window icon support to avoid a PIL dependency (OM-123154)
No action is required, but the
/omni.connect.ui/about/icon
setting will be ignored.
DevTools
Features
Identified public vs internal build flavors (OM-119517)
Improved default CI templates for use with
repo_ci
(OM-121412)
Fixes
Updated Linux tests for latest CI runner configuration, including the default nvks runners to avoid timeout issues (OM-121845, OM-121412)
Prepare codebase for a public mirror (OM-123162, OM-121735, OM-121412, OM-123164)
Breaking Changes
Removed Scene Optimizer vendoring and premake helpers (OM-122236)
Connectors requiring Scene Optimizer will need to configure it directly.
Disabled licensing in
connect-defaults.toml
(OM-123164)Internal NVIDIA Connectors should re-enable it in their own
repo.toml
Documentation
Improved USD Authoring guide to explain valid and unique naming in the context of both
UsdPrim
andUsdProperty
naming (OM-117239)
Dependencies
Runtime Deps
OpenUSD pxr-23_11 (same)
This is the default flavor, refer to
deps/build-flavors.toml
for other supported flavors.
Kit Kernel 106.0/f02ce5c7 (from 106.0/5f2fa703)
Carbonite 166.2 (from 160.8)
Omni Client Library 2.46.0 (from 2.45.0)
Omni USD Resolver 1.42.3 (from 1.42.1)
Omni Asset Validator 0.11.1 (from 0.11.0)
Omni Transcoding 0.0.1 (updated hash)
fmt 7.0.3 (same)
pybind 2.11.1 (from 2.9.2)
Dev Tools
packman 7.21.1 (from 7.18)
repo_tools (all to latest supported)
doctest 2.4.5+nv1-3
cxxopts 2.2.0
linbuild 1.20
MSVC 2019-16.11
Premake 5.0.0-beta2
Python 3.10.14+nv2 & 3.9.19+nv2
0.7.0
Core
Features
Added support for setting UTF-8 Display Names from any USD flavor, including those too old to have the metadata registered (OM-110288)
Updated
UsdPrim
name validation functions to useomni_transcoding
under the hood (OM-118452)This is a new library dependency that provides lossless encoding/decoding of non-compliant identifiers
Added
exportLayer
to perform aSaveAs
-like behavior (OM-118635)Added function to compute indices for
PrimvarData
(OM-117036)Added
createMdlShaderInput
authoring function (OM-109462)Added diffuse, normal, and ORM texture map authoring functions for OmniPBR materials (OM-109462)
Added
OMNICONNECTCORE_INIT
macro to acquire the carbonite framework and startup the core library (OM-119288)This replaces the need for
OMNI_CORE_INIT
in client Connectors
Added
/app/waitForDebugger
bool setting to the core module, which will spin and wait for a debugger to attach (OM-101063)This matches behavior of Kit apps
Added configurable Import/Export Options as
ISettings
with accessors asIDictionary
,VtDictionary
, andSdfFileFormatArguments
(OM-98676, OM-118628)Respect
USD_DEFAULT_FILE_FORMAT
environment variable to drive theusdEncoding
export option (OM-87077, OM-119104, OM-119426)There is an automatic fallback to
usdc
if the env var is unset
Added
enableOutputStream
convenience aroundILogging
, since it does not have its own python bindings (OM-97381, OM-97107)Added support for OpenUSD v23.11, which is now the default recommended flavor (OM-117444)
Added support for SideFx Houdini USD flavors covering H19.5 and 20.0 (OM-109725)
Added support for Autodesk 3dsMax USD flavors covering Max 2023 and 2024 (OM-95454)
Fixes
Forwarding
eOmniClientLogLevel_Debug
logs asomni::log::eVerbose
(OM-116641)Deprecated several unsafe shutdown functions which could cause certain client applications to exit unexpectedly (OM-119285)
Changed logging channel for the python bindings from
omni.connect.core
toomni.connect.core.py
(OM-118628)This is a required side effect of using carb plugins from the bindings module for the IDictionary I/O Option accessors.
Breaking Changes
Added
omni_transcoding
dependency, this new shared library is a required link & runtime component (OM-118452)OpenUSD v23.08 is no longer officially supported, clients using this flavor should update to v23.11 if possible (OM-117444)
Note v23.08 would still build, we just aren’t providing precompiled binaries or testing it regularly an more.
Python 3.7 is no longer supported, including nv-usd 20.08 and Maya 2022 flavors (OM-119514)
Kit
Features
Added Kit 106.0 support (OM-120531, OM-117407)
Breaking Changes
Kit 105.1 and 105.2 are no longer supported. Only Kit 106.0 remains (OM-119514)
UI
Features
Added dynamic, auto-generated Import/Export Option side panels based on the core settings (OM-98676, OM-119428)
DevTools
Features
Added more Omni Asset Validator tests to the core test suite (OM-114746)
Added scoped logging, TfError, and TfDiagnostics checks to reduce test suite logging spam and assert expected logging (OM-97381, OM-97107, OM-120177)
Added
repo_verify_deps
tool and optional CI checks for the default flavors (OM-116464, OM-116464)Updated
repo_connect_client_config
to allow kit registry substitution (OM-117407)Completed transition to Gitlab CI (OM-103043, OM-109164, OM-99391, OM-113495, OM-115706)
All Connect SDK, Carbonite, and Client Library headers are now C++20 source compatible on Windows (OVCC-1505)
Note we do not provide precompiled C++20 binaries, we still use C++17 as the Omniverse wide min-spec, but it is now possible to compile a client Connector using C++20 on Windows.
Fixes
Added security hardening and control-flow-guard build flags (used for Connect SDK itself, but not set by default in the
connect_build
module) (OSEC-1093)Added
ShadowedVariables
flag to theconnect_build
module, enabling-Wshadow
for Linux builds (OM-119472)Added 4003 and 4275 to the list of disabled warnings on Windows in the
connect_build
module (due to pxr-23_11 source code changes) (OM-117444)Added
TBB_SUPPRESS_DEPRECATED_MESSAGES
define to theconnect_build
module (due to pxr-23_11 source code changes) (OM-117444)Set
repo_build
setting to patch__cplusplus
on Windows (OVCC-1505)Removed debug symbol scraping via
repo_symstore
(OM-103043)Fixed static configuration for test suites so they behave more like a client Connector (OM-97107)
Optimized UI testing to prevent some race conditions (OM-118491, OM-120157)
Updated test suites to creating more isolated tmp files and to ensure cleanup on Nucleus servers (OM-120373, OM-115962)
Dependencies
USD Deps
OpenUSD pxr-23_11 (from pxr-23_08)
This is the default flavor, refer to
deps/build-flavors.toml
for other supported flavors.
Omni USD Resolver 1.42.1 (from 1.40.0)
Omni Asset Validator 0.11.0 (from 0.10.1)
Omni Transcoding 0.0.1 (new)
Kit 106.0 Deps
Note: Kit 106.0 builds are for internal use only, they are not available publicly.
Carbonite 160.8 (from 160.0)
Omni Client Library 2.45.0 (from 2.42.0)
Kit Kernel 106.0/5f2fa703 (from 105.2/e6e264d6)
Omni Scene Optimizer 106.0.3 (from 105.2.8)
Requires USD nv-22_11
fmt 7.0.3
Dev Tools
packman 7.18 (from 7.15.1)
repo_tools (all to latest supported)
pybind 2.9.2
doctest 2.4.5+nv1-3
cxxopts 2.2.0
linbuild 1.20
MSVC 2019-16.11
Premake 5.0.0-beta2
Documentation
Updated Plugins vs Applications guide to clarify the different approaches to Connectors and explain the role of
OMNICONNECTCORE_INIT
(OM-119286)Updated USD Authoring guide to explain
omni_transcoding
and how UTF-8 vs Ascii can be handled with and without OpenUSD v24.03 (OM-118452, OM-119470)Updated Getting Started guide to show the new
omni_transcoding
dependency (OM-119470)Updated Getting Started guide to explain the
/app/waitForDebugger
setting (OM-101063)Re-sorted core python functions for better discoverability in the html docs (OM-109807)
0.6.0
Core
Features
Switched default OpenUSD build to pxr-23_08 (OMFP-3618)
Added templated
PrimvarData
class to provide avoid common mistakes with respect toUsdGeomPrimvar
data handling (OM-113956)Added overloads for
defineCamera
,definePolyMesh
,defineDomeLight
, anddefineRectLight
that accepts a parentUsdPrim
and name to describe the prim location (OM-106791)All future define functions (including the three listed below) will come with similar overloads
Added
definePointCloud
for authoringUsdGeomPoints
prims (OM-113006)Added
defineLinearBasisCurves
anddefineCubicBasisCurves
for authoring 3d curve scene description asUsdGeomBasisCurves
(OM-104036)Note both functions define
UsdGeomBasisCurves
, but we have separated linear vs cubic as its a common source of confusion for client Connectors.
Improved
setLayerAuthoringMetadata
so that it can be called without needing to callstartup()
(primarily for use in CAD Converter running inside Kit) (OMFP-2563)Added pybind11 casters for OpenUSD to assist with USD bindings interop (OM-115043)
These were used internally already, but they have been made public for use in client Connectors that want to bind functions accepting OpenUSD data types.
We have only provided casters for the limited subset of OpenUSD API used in our public functions.
Added pybind11 caster for
carb::cpp::optional
(OM-113957).
Fixes
Fixed all define functions to set the type name and specifier in the current edit target layer (OM-103362)
Fixed
UsdPreviewSurface
output names when using thedefineMaterial
functions (OM-109462)Prevented authoring cameras if the provided camera attributes would have failed (OM-108901)
Changed define function failure case log messages from warning to error (OM-109336)
Fixed flakey LiveSession tests (OM-108704)
Fixed incorrect type identifiers in python bindings (OM-104036)
This has no effect other than for help messages and IntelliSense
Fixed a carb ILogging plugin loading conflict issue in the unittests (OM-115554)
Added test coverage for UTF-8 display names (OM-108231)
Added c++ test coverage for
createStage
(OM-113956)Improved test coverage for
definePolyMesh
(OM-106791)Fixed LiveChannel test failure on high-load Nucleus servers (OM-116645)
Breaking Changes
OpenUSD pxr-23_05 is no longer officially supported. The code is still source compatible so custom builds can be made as needed (OMFP-3618).
If you were using this build, please switch to pxr-23_08, it is very unlikely that code changes will be needed to do so.
USD : All edit/write functions accepting
UsdPrim&
orconst UsdPrim&
have been changed to acceptUsdPrim
instead (OM-114917).This is being done for alignment across the API, to simplify client side code, while the project is still (primarily) internal only.
We have not provided a deprecation path as normal, as so many functions changed, and the prior functions would have required a client side pattern that is still accepted by the new functions. Only a recompile should be required.
Note read-only functions still take
const UsdPrim&
.
Prefer
carb::cpp::optional
rather thannullptr
in most public functions and methods (OM-113957).This is being done for alignment across the API, to simplify client side code, while the project is still (primarily) internal only.
We have not provided a deprecation path as normal, as there is considerable overlap with the
UsdPrim
breaking change described above.Any existing client side code using the argument should still be accepted by the new functions. Code changes should only be necessary if
nullptr
was explicitly passed in.The one unchanged pattern is for optional strings (e.g. checkpoint comments, texture paths), which remain as
const char*
withnullptr
indicating an opt-out.
Deprecated v0.5
definePolyMesh
entry points in favor of the new functions that acceptstd::optional<const PrimvarData>
arguments (OM-113956)For the c++ API this is not a breaking change. The old signatures are still available, but deprecated. They will be removed in a future release.
For the Python API this is a breaking change. We felt that pure python adoption of these functions is low enough (one internal use case) that the tech dept to make this backwards compatible was not justifiable.
Kit
Features
Use public prod registries by default, with automatic fallback to internal registries (OMFP-1666)
UI
Features
Added Live UIs (OM-85097)
For internal use only, as this requires a Kit 105.2 pre-release
Set
omni.kit.render.core.compatibilityMode = true
to suppress unwanted rtx features and ensure we work on non-NVIDIA GPUs (OM-114219)
Fixes
Added File Exporter/Importer context menu test coverage (OM-114455)
Improved UI testing to simulate mouse and keyboard inputs (OM-114455)
Dev Tools
Features
Switched to Kit 105.1 by default (from 105.0) (OM-108701, OM-84357)
Added build flavors for Kit 105.2 using any of py3.7, 3.9, or 3.10 (OM-114069)
Added build flavors for Maya 2022 (py3.7), 2023 (py3.9), and 2024 (py3.10) (all of which require Kit 105.2) (OM-95452)
Added Omni Scene Optimizer as a vendored dependency via
connect_build.use_scene_optimizer()
(OM-95742)Requires a USD nv-22_11 / Kit 105.1 build flavor as Scene Optimizer does not currently support multiple runtimes.
Added Omni Asset Validator as a vendored dependency and
UsdTestCase.assertIsValidUsd
which uses theomni.asset_validator.core.ValidationEngine
(OM-114746)Replaced
omni_config_cpp
with Carbonite equivalent (omni/extras/OmniConfig.h
) (OM-108701, OM-84357)Added
tools/repoman/connect-defaults.toml
so client Connectors can inherit commonrepo.toml
default configuration (OM-113276)Updated
repo_version_header
to be usable by client Connector repos (OM-108758, OMFP-773)This can be used to simplify c++ versioning macros and to generate a
version.rc
file to inject assembly info into Windows DLLs
Updated
repo_connect_client_config
with an option to substitute the python version using%PYTHON_VERSION%
syntax (OM-95452)Replaced
repo_connect_kit_exts
withrepo_precache_exts
(OM-101707, OM-98547)The former is deprecated rather than removed. The later comes from Kit itself and does not require starting the application (and hence does not require any GPU).
Enforced code style via repo_format (OM-98050)
Fixes
Updated to latest patched python packages (OM-108701, OM-84357, OMFP-3498)
Fixed Omni Usd Resolver lib dependency issue in
connect_build.use_connect_core()
(OM-113395)Fixed
connect_build.use_usd()
linking toboost_python
on Linux (OM-113956)Fixed build flavor specification in
connect_build
premake module to be specific per package (OM-115035)Fixed VSCode python linting via Flake8, which was broken by a breaking change in VSCode itself (OM-116220)
Breaking Changes
Dropped support for Kit 105.0
Dependencies
USD Deps
OpenUSD pxr-23_08 (from pxr-23_05)
This is the default flavor, refer to
deps/build-flavors.toml
for other supported flavors.
Omni USD Resolver 1.40.0 (from 1.31.2)
Omni Asset Validator 0.10.1 (new)
Kit 105.1 Deps
Carbonite 158.5 (from 146.6)
Omni Client Library 2.38.12 (from 2.32.0)
Kit Kernel 105.1.2/de96b556 (from 105.0/ed961c5c)
Matching USD Explorer 2023.2.1
Omni Scene Optimizer 105.1.15 (new)
Requires USD nv-22_11
Kit 105.2 Deps
Note: Kit 105.2 builds are for internal use only, they are not available publicly.
Carbonite 160.0
Omni Client Library 2.42.0
Kit Kernel 105.2/e6e264d6
Omni Scene Optimizer 105.2.8
Requires USD nv-22_11
Dev Tools
packman 7.15.1 (from 7.6)
repo_tools (all to latest supported)
pybind 2.9.2
doctest 2.4.5+nv1-3 (from 2.4.5-1)
cxxopts 2.2.0
linbuild 1.20
MSVC 2019-16.11
Documentation
Added UTF-8 display name to USD Authoring guide (OM-108231)
Added configuration docs for
repo_version_header
(OM-112303)Added a guide for writing custom applications (as opposed to DCC plugins) (OM-110636)
Added USD authoring guide for Primvars (OM-113956)
Updated runtime file listings for the latest runtime dependencies (OM-112280)
Improved TOC organization (OM-110636)
Improved Python API docs for overloaded functions (OM-106791)
Fixed missing
Python.h
API docs (OM-114103)
0.5.0
Core
Features
Added new LayerAlgo module with functions for saving layers & setting authoring/creator metadata consistently (OM-87108)
Added a new PrimAlgo module with functions for validating prim names, while respecting existing child names and avoiding collisions in a consistent & explicit manner as well as manipulating display name regardless of OpenUSD runtime (OM-101625, OM-101162)
Note the name validation differs from
pxr::TfMakeValidIdentifier
in how it handles numeric characters at the start of the value. We intend to propose the change hack to Pixar/OpenUSD (OM-108598)
Added new MeshAlgo module with
definePolyMesh
; a robust polygonal Mesh creation function (OM-97060)This ensures that all aspects of the mesh are valid, authored in a single layer, and the strongest opinions in the current composition.
Added new CameraAlgo module with
defineCamera
, for authoring scene description from aGfCamera
(OM-101161)Added new LightAlgo module with
defineDomeLight
anddefineRectLight
functions (OM-85095, OM-98409)StageAlgo: Added
createStage
andconfigureStage
to assist with the creation ofUsdStages
with all expected stage metrics and metadata (OM-101152)MaterialAlgo: Added functions to create materials and bind materials (OM-85215)
MaterialAlgo: Added functions to compute the effective surface shader for a given render context (OM-102503)
MaterialAlgo: Added
defineOmniPbrMaterial
anddefineOmniGlassMaterial
functions to help with creation of simple materials (OM-102503)These define a material interface which drives both MDL and UsdPreviewSurface shaders. They are not intended for full-scale shading networks, but rather as a simple/basic material for e.g. common CAD use cases.
XformAlgo: Added
defineXform
function (OM-101152)Live: Added
LiveSession
andLiveSessionInfo
classes (OM-98403, OM-102710)Nucleus: Added
isUriWritable
(OM-102710)Nucleus: Added
doesUriExist
and deprecateduriExists
in both c++ and python (OM-105997)Carb: Added
loadCarbPlugin
signature that accepts a search path vector and deprecated the original more restrictive signature (OM-104056)Settings: Added customizable python search paths via
/app/python/extraPaths
(OM-101152)The Kit and UI modules already supported this setting, now the Core module does as well
Settings: Added
/app/plugins/extraPaths
(OM-104056)Note that the 6 core plugins loaded during startup must exist on the default search path. The other search paths may be used to load any optional carb plugins (eg
carb.scripting-python
)
Settings : Added
loadSettingsFromFile
(OM-104056)Logging: Added log forwarding to client Connectors via
addLogConsumer
(OM-85123)Logging: Improved consistency of invalid prim authoring log messages (OM-103361)
Fixes
XformAlgo: Transform functions now reuse existing Matrix Xform Ops (OM-94098)
XformAlgo: Transform functions now translate provided precision to the expected precision using the minimal number of conversion (OM-103182)
XformAlgo: Ensure that the xformOpOrder is authored in the current layer if the xformOp value is authored (OM-106248)
StageAlgo: Changed
saveStage
to accept anUsdStagePtr
l-value so thatUsdStageRefPtr
andUsdStageWeakPtr
can be provided (OM-87108)Python: Fixed false success during
startup()
if python was misconfigured (OM-104056)Applied various security fixes (OM-102874)
Prefer
const std::string&
overconst char*
in all public functions (OM-98050)In most cases we prefer to use
std::string
in our API, with a couple exceptions:We use
static constexpr const char*
for public constantsWe return
const char*
from functions when the value is hardcoded & lifetime is guaranteedWe pass
const char*
for optional string argsThis may change to
std::optional
in the future, but we will provide a deprecation path rather than a breaking change
Breaking Changes
Changed signatures in many public functions to align on a common pattern for required string arguments (OM-98050)
Note this change is minimally invasive as most of the affected functions are not yet used outside of the Connect SDK codebase.
Renamed
XformableAlgo
toXformAlgo
(OM-101152)This is an unfortunate break since v0.4 broke the same xform functions. We have added functions to work with
UsdGeomXform
prims, thought the new name is more intuitive, and decided to make this break now before it is externally available.
The function signature for
omni::connect::core::saveStage()
has changed (OM-87108)
Kit
Features
Separated the
.kit
experience file (extension dependencies) from the.toml
(settings) configuration (OM-104056)Allow clients to provide their own
omni.connect.client.kit
experience file which will be used during startup (OM-104056)This can be used to declare custom extension dependencies for a given client Connector
It does not need to redeclare the built-in extension dependencies, and should instead list
omni.connect.kit
(and optionallyomni.connect.ui
) as dependencies to inherit their upstream requirements.
Fixes
carbAppPath
is now the same before and after callingomni::connect::kit::startup()
(OM-104056)Removed 6 duplicate carb plugin binaries from the default runtime layout (OM-104056)
Removed duplicate python binaries from the default runtime layout (OM-104056)
Most filesystem browsing in the default runtime layout is now more intuitive and consistent (OM-104056)
Kit’s carb plugins sit alongside the base carb plugins
The Carb and Kit python modules sit alongside the Connect SDK and OpenUSD modules
Breaking Changes
Unpacked Kit Kernel into our core runtime directories (OM-104056)
Clients using
connect_build.use_connect_ui()
orconnect_build.use_connect_kit()
should not need to make build changes, it is handled automatically.Clients using their own bespoke build scripts will need to adapt to the new runtime file layout or configure the new “extraPaths” settings accordingly.
A full file listing of the default runtime layout is included in the Getting Started docs.
It is no longer straightforward to symlink Kit Kernel into the runtime directory
The plugin and python files we need are copied instead
The extensions and resources (icons) can still be symlinked
The kit-core config still needs to be in a specific directory instead of next to our configs, but this dir no longer has “kit” in the name, which is maybe a bit confusing.
UI
Features
Added support for
/omni.connect.ui/enabled
to force loading the newomni.connect.ui.kit
experience during startup (OM-104056)Added a configurable About Window to provide consistent info in all Connectors (OM-57041)
Fixes
Added a new the
omni.connect.ui.kit
experience file to declare UI extension dependencies properly (OM-104056)This solves inconsistent UI extension startup behavior on Windows
Dev Tools
Features
Build: Added support for
pxr-23_05
and set it as the default build flavor (OM-104057)Build: Added
unity-22_11
flavor for Unity 2021 & 2022 LTS (OM-100967)Build: Added support for
nopy
builds andminimal
monolithic OpenUSD flavors (OM-102875, OM-104057)This is without Kit, UI, Python, Alembic, MaterialX, Imaging, and uses a single monolithic shared
usd_ms
library
Build: Added
-fdiagnostics-color
on Linux to get GCC colored output (OM-80834)Tests: Added
CoreTestCase
andUsdTestCase
utility classes (OM-97105)Tests: Support
user.repo.toml
and environment variable overrides for Nucleus Authentication (OM-102874)CI : Use GitHub pages to stage pre-release docs for more intuitive review (OM-104054, OM-101084)
Fixes
Build: Fixed minimal monolithic OpenUSD linking on Linux (OM-102875)
Build: Fixed minimal monolithic OpenUSD compiler issues on Windows (OM-102875)
The patch has been submitted back upstream to Pixar/OpenUSD but is not yet merged (#USD-8592)
Build: Added “headers” to the options table for
connect_build.executable()
and apply local scope to “name”, “headers”, and “sources” (OM-85098)repo_stubgen: Allow no modules found to exit as success (OM-102875)
repo_stubgen: Ported the
pybind11_stubgen.py
from Kit Kernel into Connect SDK directly (OM-100967)This is required to fix stubgen issues on the
unity-22_11
USD bindings, which are a variant of nv-usd. See SWIPAT 4253683 for details.
Dependencies
Runtime Deps
Carbonite 146.6
Omni Client Library 2.32.0
Omni USD Resolver 1.31.2 (from 1.31.1) (OM-100967)
OpenUSD pxr-23.05 (from nv-22.11) (OM-104057)
This is the default flavor, refer to
deps/build-flavors.toml
for other supported flavors.
Kit Kernel 105.0 (Kit Hash ed961c5c)
Matching Composer 2023.1.0-rc.17
Dev Tools
packman 7.9 (from 7.6) (OM-102874)
repo_tools (all to latest supported) (OM-102874)
pybind 2.9.2
doctest 2.4.5
cxxopts 2.2.0
linbuild 1.20
MSVC 2019-16.11
Documentation
Added security policy document (OM-102874)
Added licenses for Cortex and Gaffer BSD-3 OSS (OM-102874)
See SWIPATs 3833263 and 3833277 for details. There is no compile or runtime dependency associated with this change.
Updated PACKAGE-INFO.yaml with latest information (OM-102874)
Updated Getting Started document to thoroughly explain how to acquire, build, and deploy a client Connector that uses Connect SDK (OM-104054, OM-101084)
This includes a full runtime file listing for 4 build flavors: the default and
nopy.minimal
builds on Linux and Windows.
Updated USD Authoring guidelines to explain the new prim name handling and define functions (OM-98668)
Updated Kit and UI docs to explain the new .kit experience and .toml files (OM-104056)
Clarified current C# positioning and UI separation (OM-104054, OM-101084)
Fixed links to dependencies to use publicly available URLs where possible (OM-104054, OM-101084)
Fixed software licenses and basic spacing issues in all header & source files (OM-102874, OM-98050)
Fixed repo_docs builds on Windows and added docs CI coverage on Windows (OM-104054, OM-101084)
Fixed all doxygen warnings (OM-98668)
Fixed
__all__
listing and added CI to ensure all public python symbols are listed and documented (OM-98668)
0.4.0
Core
Features
Added
UsdPrim Xform
Algorithms to improve authoring ofUsdGeomXformable
schema transform operations (OM-94098)These can be used for authoring and retrieving local transformation of
Xformable
prims using a standard suite of transform formats (e.g. as matrices, individual transform components, or as aGfTransform
)
Added
isLight
function to processUsdLuxLight[API]
prims (OM-92201)Added function to create extents on
UsdLuxLight
prims (OM-93417)Added basic sRGB/linear color space conversions (OM-86672)
Simplified Omniverse USD Resolver initialization (OM-85113)
This uses an optional config setting to initialize the resolver during
startup()
Please refer to the new doc on USD Configuration for details.
Added functions for managing Live Session config file I/O (OM-62829)
Added a
LiveSessionChannel
class for connecting, sending, processing, and receiving Live Session channel messages (OM-62829)Configured Client Library app details automatically during
startup()
as required for OVC use (OM-96287)
Fixes
Reduced use of Python gil release to the minimal set required (OM-89278)
Fixed python startup when the kit/ui libraries are not used (OM-84367)
Fixed
executePythonIntFunction
when it returns 0 or None (OM-84367)Fixed
omni.client
log channel initialization & logging output (OM-98119)Fixed public symbol listing in
omni.connect.core
python module (OM-87073)Fixed type name tooltips for OpenUSD pybind11 bindings (OM-87073)
Fixed
UsdLux Light
compatibility functions for OpenUSD 20_08 and 21_08 (OM-98508, OM-95137)Fixed Windows builds for OpenUSD 23_05 (OM-95137)
Breaking Changes
PrimAlgo.h
has been renamedXformableAlgo.h
and all function signatures (and behavior) within it have changed (OM-94098)Please refer to the new doc on USD Authoring Guidelines for details.
Kit
Features
Now using the public registry exclusively to pull runtime Kit extensions (OM-95614)
Breaking Changes
We no longer the hardcode location & settings for the python runtime (OM-65071)
It must be specified via a config setting in the
omni.connect.client.toml
This is to support python-native applications (e.g Maya, Houdini, Unreal, Blender)
Please refer to the new doc on Python Configuration for details.
UI
Fixes
Fixed
setExportComment
c++ entry point to avoid a spurious error log (OM-84367)Improved I/O UI (File Exporter, File Importer) implementation and fixed several bugs with popups (OM-98673)
Dev Tools
Features
Added flexible build flavors using
repo_man
tokens (OM-83880, OM-84457)We can now build, test, and package Connect SDK for any OpenUSD / Python combination that our upstream deps support
Added a Gitlab CI Pipeline for CI/CD matrix testing & packing of all officially support build flavors (OM-83880, OM-84662, OM-95137)
This currently includes our default build (nv-22_11/py310), an LTS build (nv-20_08/py37), as well as all builds needed by all active & LTS versions of Unreal Connector & Blender Connector.
Please see the Contributing Guide for details on when, why, and how to add a new build flavor to the matrix.
Added
connect_build
premake functionsexecutable()
,static_library()
, anddynamic_library()
to simplify building binary programs and libraries (OM-95292)connect_build.use_carb()
now installs thepy-spy
executable (required bycarb.crashreporter
)Added symbol storage & stripping debug symbols from the published packages (OM-92157)
Added
doctest
andcxxopts
dependencies for writingrepo_test
“catch2” compatible c++ test suites (OM-84367)These are available to Connectors via the
all-deps
file. See the Connect SDKcpp
test suite for example usage.
Added
repo_connect_client_config
tool to help client Connectors install their static configuration with automated version substitution (OM-84365)Please refer to the new doc on Dev Tools for details.
Added
repo_connect_kit_exts
tool to download & cache the required Kit runtime extensions, e.g. as arepo_build.post_build
command (OM-84365)Please refer to the new doc on Dev Tools for details.
Note: This is only useful if you use the kit/ui modules.
Note: If you don’t use this tool, the extensions will still be downloaded automatically at runtime, as before.
Important: This tool requires a GPU currently, it actually starts the UI, downloads the exts, and then shuts down.
Added
repo_stubgen
tool to generate .pyi stubs for IDE IntelliSense (OM-87073, OM-83836)This is adapted from the Kit tool to work generically on pybind11 python modules rather than Kit extensions.
Please refer to the new doc on Dev Tools for details.
Added VSCode settings template with Pylance linting and black/flake8 formatting (OM-98050)
Fixes
Fixed
repo_update
list operations.Removed codesign & publishing steps from TeamCity pipeline (OM-84662)
Gitlab CI handles all tagged/release publishes going forward.
The TeamCity pipeline is still running & required for UI testing as Gitlab CI is not UI capable yet.
Breaking Changes
connect_build
premake module has been re-written significantly to make use of new features in therepo_build
premake module.Please refer to the new doc on Dev Tools for details.
connect_build
premake module no longer installs the Kit Kernel python distro automatically (OM-84364)Client Connectors that need a python runtime should take case to install one & configure their
omni.connect.client.toml
accordingly.Please refer to the new doc on Python Configuration for details.
Dependency Updates
Runtime Deps
Carbonite 146.6 OM-95614
Omni Client Library 2.32.0 (OM-96287)
USD Resolver 1.31.1 (OM-99940)
USD 22.11 (nv.0.2.938)
This is the default flavor, refer to
deps/build-flavors.toml
for other supported flavors.
Kit Kernel 105.0 (Kit Hash ed961c5c) (OM-95614)
Matching Composer 2023.1.0-rc.17
Dev Tools
packman 7.6 (from 6.55) (OM-83880)
repo_tools (all to latest available) (OM-83880)
pybind 2.9.2 (OM-83880)
doctest 2.4.5 (OM-84367)
cxxopts 2.2.0 (OM-84367)
linbuild 1.20 (OM-91672)
MSVC 2019-16.11 (OM-91672)
Documentation
Added VSCode IntelliSense for all Connect SDK python modules (e.g.
.pyi
stub files)Note this is improved significantly if you manually run
repo_stubgen
on your OpenUSD package from packman, as OpenUSD modules do not currently ship stub files natively. See Connect SDKrepo.toml
for an example of how to configurerepo_stubgen
to do this.
Added a new Python Configuration section to the Getting Started docs.
Added a new USD Configuration section to the Getting Started docs.
Added a new USD Authoring Guidelines doc to make it easy for clients to author consistent and correct USD data.
This doc will evolve rapidly over the next couple releases.
Added a new Dev Tools doc describing the
connect_build
premake module & our custom repo_tools.Improved “Debugging” sections of the Getting Started docs.
Updated content to refer to
OpenUSD
andopenusd.org
0.3.3
Dependencies
Carbonite 146.3
Omni Client Library 2.31.3
USD 22.11 (nv.0.2) (unchanged from v0.3.2)
USD Resolver 1.29.1
Kit Kernel 105.0 (Kit Hash e5a156c7)
0.3.2
UI
Fixes
Fixed python module imports for non-standard deployments in Python 3.8+ Windows environments.
0.3.1
Dev Tools
Fixes
Fixed package publishing issues on Windows
0.3.0
Core
Features
Added utility functions for handling
UsdLux Light
API and Schema compatibility (OM-79693)These functions can be used to generate Light Prims which are forwards compatible with USD 21.02+ and backwards compatible with USD 20.08. See the API docs for more details.
Fixes
Moved Client Library logs to a dedicated
omni.client
channel (OM-88566)Emit
omni.client
logs for any Connection Status (more were introduced in a newer Client Library) (OM-88566)Fixed
UsdPrim
copy issue which caused some meshes to lose materials (OM-90486)Fixed possible crash in the
getLocalTransformSRT
python bindings on modern Linux environments.Fixed python module imports for non-standard deployments in Python 3.8+ Windows environments.
Tests: Cleanup all temp files on Nucleus servers.
Tests: Limit Client Library retries to speedup tests.
UI
Fixes
Fixed possible filename / file extension mismatch in File Importer/Exporter UIs (via Kit Kernel update)
Disabled unused search field in File Importer/Exporter UIs (via Kit Kernel update)
Drastically reduced required runtime extension file size (via Kit Kernel update)
Tests: Added double-click tests for File Importer/Exporter UIs (OM-87499)
Dev Tools
Features
connect-sdk-public
premake module now usesexternalincludedirs
andsyslibdirs
for all dependnecy headers and libraries.Important: This change requires all clients of
connect-sdk-public
to update to Premake 5.0.0-beta2. To simplify, it can be imported from theall-deps.packman.xml
like any other dependency.
Enabled running
repo_test
andrepo_docs
with arbitrary python distros & set the default to match the python dependency listed intarget-deps.packman.xml
.
Fixes
Fixed
use_usd()
on Linux by removing explicitrpath
override (OM-88408)Fixed
omni_connect_kit
build to not require pybind directly.Fixed missing
carb.scripting-python.plugin
when callinguse_connect_core()
oruse_carb()
fromconnect-sdk-public
Dependencies
Premake 5.0.0-beta2
Python 3.10
Carbonite 145.0
Omni Client Library 2.28.1
USD 22.11 (nv.0.2)
USD Resolver 1.27.0
Kit Kernel 105.0 (Kit Hash cfaca3cd)
0.2.0
Core
Features
Added
createUriCheckpoint
to simplify creating checkpoints on existing Nucleus URIs (OM-85102)Added
saveStage
to simplify saving across several layers with a common checkpoint comment (OM-85102)Added
getLocalTransformMatrix
andsetLocalTransformMatrix
(OM-83614)Updated for source compatibility with USD 22.11 (OM-85901)
Note we are not producing USD 22.11 packages yet, this is a first step towards flexible packaging.
Fixes
Fixed signature of
setLocalTransformSRT
to useUsdPrim &
Removed unnecessary return value for
getLocalTransformSRT
in c++
API/ABI Breaking Changes
Changed signature of
setLocalTransformSRT
&getLocalTransformSRT
UI
Fixes
Fixed double click selection bug for import/export UIs (OM-86457)
Dev Tools
Features
Added
use_omni_resolver()
toconnect-sdk-public
premake module
Dependencies
Python 3.7
Carbonite 143.0
Omni Client Library 2.27.5
USD 20.08 (nv.1.2)
USD Resolver 1.26.0
Kit Kernel 105.0 (Kit Hash c75d0158)
0.1.0
Core
Features
Added
omni_connect_core
shared library,omni.connect.core
python module, and python unittestsThis includes a compile & runtime dependency on Carbonite 143 along with 6 carb-sdk plugins
It requires client Connectors to set the
CARB_APP_PATH
environment variable prior to callingstartup()
Added runtime configuration for client Connectors via toml files using Carbonite’s settings & tokens plugins
Added logging to stdout & to file via Carbonite’s log plugin
By default logging is configured to use the standard Omniverse location per platform (i.e. alongside Kit & Nucleus logs)
Added crash reporting via Carbonite’s crashreporter plugin
This is only enabled via end user opt-in through the standard Omniverse privacy policy
Added functions to bootstrap python & call python code from c++, via Carbonite’s scripting-python plugin & pybind11
Added USD utility functions for manipulating stage hierarchy
canRemovePrim
,removePrim
,copyPrim
, andrenamePrim
have been ported from Connect Samples & Unreal Connector
Added USD utility functions for manipulating individual prims
getLocalTransformSRT
andsetLocalTransformSRT
have been ported from Connect Samples & Kit’somni.usd
extension
Added USD data type bindings to enable seamless flow between pybind11 & boost python
Note: A minimal subset of USD types is supported to cover the public API of this library. More types may be added in the future.
Kit
Features
Added
omni_connect_kit
shared library,omni.connect.kit
python module, and python unittestsThis includes a compile & runtime dependency on Kit Kernel 105.
It is a separate library to ensure that client Connectors which don’t want a runtime Kit dependency can still use the Core library.
Added functions to bootstrap Kit’s IApp into the current process (i.e. Kit running inside the client Connector)
UI
Features
Added
omni_connect_ui
shared library,omni.connect.ui
python module, and python unittestsThis expands on
omni_connect_kit
to include a runtime dependency onomni.ui
and related UI ExtensionsIt is separated from
omni_connect_kit
to ensure that client Connectors which don’t want a runtime GUI dependency can still use headless Kit API & services
Added functions to invoke Kit’s
file_importer
&file_exporter
UIs and retrieve the selected URIs
Dev Tools
Features
Added
connect-sdk-public
premake module, which can be used to simplify repo_build / premake setups in client ConnectorsAdded
all-deps.packman.xml
file to help conform common dependencies in client ConnectorsAdded
config_util
python script to simplify installing client Connector configuration (i.e. theomni.connect.client.toml
file) for multiple versions of a connected application.
Dependency Updates
Python 3.7
Carbonite 143.0-pre
Omni Client Library 2.25.0
USD 20.08.nv.1.2
USD Resolver 1.22.0
Kit Kernel 105.0 (Kit Hash d4f35631)
Documentation
Added mission statement & core goals
Added component details breakdown explaining the purpose of each library & module
Added Getting Started guide to teach client Connector developers how they can make use of Connect SDK
This includes build & dependency management advice as well as runtime configuration advice
Added C++ and Python API docs for all public functions & variables
Added Contributing Guide for developers who wish to contribute features and fixes to Connect SDK