203.1 Update
Release Date: November 2023
This update is intended to refresh Connector dependencies to newer versions.
Samples
Add a Linux Makefile for OmniUsdReader
Find a new prim to move when the prim being moved by ‘t’ is no longer valid [OMFP-2976]
Set the client retry count lower so accessing an invalid server returns faster [OMFP-2975]
Modify the client connection status callback to handle the multiple possible successful enums
Build the packaged binaries on Linux with an older version of GCC to support more versions [OMFP-2974]
Add a check in HelloWorld to exit early if it can’t find the “resources” folder [OMPM-913]
Set the Visual Studio working directory debug settings from premake [OMPM-913]
Print the live session options before asking for user input the first time [OMPM-913]
Build both release and debug configs by default with repo build, -r or -d may be used to modify this [OMPM-913]
Omniverse USD Resolver
Omniverse Client Library
Omniverse Asset Validator
203.0 Point Release
Release Date: June 2023
With this release the shipped USD version is updated to 22.11 and Python 3.10 to align with the rest of the Omniverse platform. Also a skinned skeletal mesh example was added to demonstrate how to author, skin, and animate skeletons in a live layer.
Samples
Update USD version to 22.11
Update Python version to 3.10
Add a skinned skeletal mesh example with live updates
Fix 21.08 include guard for UsdPhysics
Add channel join/send/leave commands to OmniCLI
Use a mesh rather than a cube to test the invalid extents since a cube always returns an extents attribute
Set the correct render type for the shader output attributes
Use an installed OmniPBR rather than including a very old version
Omniverse USD Resolver
Omniverse Client Library
Omniverse Asset Validator
202.0 Point Release
Samples
Update the repo build tools to modern versions (OM-77486)
Add a test script for all programs (“repo test” or tests/test_all.[bat,sh])
Allow Windows users to use their installed build tools with “repo build –use-devenv” (OM-74840)
Change defaultPrim handling to be less hardcoded and more correct
Add a function to determine if any prims exist in the root layer before merging (OM-64707)
Add a note in README.md about Visual Studio failing to iterate on builds (OM-78756)
Add a prop payload and reference to a HelloWorld (OM-35218)
Modify an OmniPBR MDL parameter for a referenced prop
Set the defaultPrim to kind=assembly, all others to kind=component
Correctly set the USD Preview Surface bias, scale, and sourceColorSpace
Correctly apply the MaterialBindingAPI to the box mesh prim
Change OmniCLI to overwrite destination folders for copy and move (OM-80541)
Omniverse USD Resolver
Omniverse Client Library
Omniverse Asset Validator
201.0 Point Release
Samples
Added omni_asset_validator.bat|sh which uses the Asset Validator to find issues in USD layer file URIs
Added ‘v’ validate option for pyLiveSession to demonstrate the Asset Validator on an in-memory stage.
Create extents attributes on all meshes in HelloWorld (so we don’t fail the asset validation checks)
Add example usage of TfMakeValidIdentifier() so prim names are valid (OM-66072)
Modify the build config and source to support 2022-era USD versions (OM-53579)
Don’t throw an exception when the user name is not valid in the Python sample
Update msvc to 2019-16.11.17-ndebug (14.29.30133) to no longer release debug CRT (OM-42026)
Prevent “Core::unregister callback called after shutdown” in samples by clearing the client log callback
Report the update frequency and run duration in the simple sensor example
Support reusing the live stage in the simple sensor example rather than deleting it every run
Make the Materials parent prim a Scope
Make Fieldstone.mdl use the OmniPBR.mdl that ships with the sample (OM-73976)
Omniverse USD Resolver
Omniverse Client Library
Omniverse Asset Validator
200.1 Update
This small update to the Connect Samples fixes some simple bugs in the live session classes and updates the Omniverse Client Library and USD Resolver with the latest versions.
Samples
Fix the “MESSAGE” message type and custom “message” key to be case correct
Ensure that we flush live layer clears with omniClientLiveProcess()
Clear the peer users in LeaveChannel() allows for recycling the class
Fix the usd_resolver post build copy step in UsdReader example
Omniverse USD Resolver
Omniverse Client Library
200.0 Point Release
The 200.0 release signifies big changes with the distributed Omniverse libraries. The Omniverse team has separated the USD resolver plugin from the Client library to make it easier to support more versions of USD. Live synchronization is improved for the purposes of performance, simultaneous editors, and supporting the entire USD layer editing feature set. Omniverse applications and Connectors are also now subscribing to the notion of live sessions to support non-destructive workflows. This version of the Connect Samples includes new Python and C++ examples to demonstrate this live session workflow.
104.1 Point Release
Samples
Omniverse Client Library
1.17.4
OM-47554: Downgrade some “Error” messages during auth to “Verbose”
We attempt to connect using 3 different methods, and it’s normal for 2 of them to fail. This avoids confusing users with error messages for a connection that ultimately succeeds.
OM-48252: Lower required “list2” version, to allow connecting to servers running Nucleus 112.0.
1.17.3
CC-357: Fixed a deadlock that could occur when a python file status callback is being unregistered on one thread while another thread is simultaneously trying to call that file status callback
CC-367: Allow stat & list using cloudfront.net URLs
OM-45178: Print extended error message when Token.subscribe fails
OM-45887: Enable extra connection logging
CC-384: Remove support for Nucleus 107, 109, and 110
CC-366: Update OpenSSL to avoid a security vulnerability
1.17.2
CC-32: Fixed a crash that could happen on disconnect
OM-43009: Removed “stop” from list of required capabilities, to discover newer servers which don’t advertise that capability
CC-236: Add support for checkpoint change notification
CC-245: Fixed a deadlock that could occur rarely when connection failed.
1.17.1
CC-228: subscription based authentication using ‘nonce’
CC-231: Discover API server using minimum required capabilities rather than all capabilities
CC-229: Fixed a case where the client library would not connect to Nucleus securely
1.17.0
CC-7: Add shutdown guard to omniclient::Core
1.16.0
OM-39826: Prevent copying of channels from nucleus servers to other providers
OM-38687: Fix crash when shutdown with an outstanding stat subscription
OM-37095: Use omniClientWait in blocking python binding functions
OM-38761: Fix ResolveSubscribe to handle more invalid search paths
OM-39746: Support stat(‘/’) on S3 buckets. S3 API does not support stat() on root, but we can fill in the gaps
1.15.0
OM-39614: Fixed a case where pings would not report a connection error
OM-36524: update connection library to prevent using Nucleus Cache when accessing localhost servers
OM-37061: Fix crash if a request is started after it is stopped
OM-34916: Map MountExistsUnderPath error to ErrorNotSupported
OM-38761: Fixed StatImpl::beginWatch to always call the provided callback, even when the uri to watch is invalid.
OM-39367: Removed “fast locked updates” because it’s fundamentally broken. Removes omniUsdLiveLock & omniUsdLiveUnlock
OM-23042: If the relativePath starts with “./” then don’t use search paths
1.14.0
OM-38721: Added function omniClientGetLocalFile which returns the local filename for a URL
If the input URL is already a local file, it is returned without error
If the remote file has not yet been downloaded to cache, it is downloaded before returning
Python bindings are “get_local_file” “get_local_file_async” and “get_local_file_with_callback”
OM-38816: Added environment variable OMNI_DEPLOYMENT which can override the deployment sent to discovery
OM-37061: Early exit from callback if cacheEntry weak_ptr is expired, correct creation of cacheEntry ownership
1.13.25
OM-34145: Fix omniClientCopy to not infinitely copy when copying a directory into a subdirectory of itself.
1.13.24
OM-38028: Update Brotli, OpenSSL, and libcurl versions
1.13.23
OM-37701: Fix FetchToLocalResolvedPath to work with SdfFileFormat arguments
1.13.22
OM-37276: Use latest idl.cpp to pickup SSL cert directory location fixes
1.13.21
OM-36064 & OM-36306: Fix crash in listSubscribe on disconnect
1.13.20
OM-37054: Fix incorrect search order according to PBR specification
OM-36511: Add python bindings set_authentication_message_box_callback & authentication_cancel
103.1 Point Release
Samples
Added omniUsdReader, a very simple program for build config demonstration that opens a stage and traverses it, printing all of the prims
Added omniUsdaWatcher, a live USD watcher that outputs a constantly updating USDA file on disk
Updated the nv-usd library to one with symbols so the Visual Studio Debug Visualizers work properly
- Omniverse Client Library
Still using 1.13.19
102.1 Point Release
Samples
OM-31648: Add a windows build tool configuration utility if the user wants to use an installed MSVC and the Windows SDK
Add a dome light with texture to the stage
OM-35991: Modify the MDL names and paths to reduce some code redundancy based on a forum post
Add Nucleus checkpoints to the Python sample
Avoid writing Nucleus checkpoints when live mode is enabled, this isn’t supported properly
OM-37005: Fix a bug in the Python sample batch file if the sample was installed in a path with spaces
Make the /Root prim the defaultPrim
Update Omniverse Client Library to 1.13.19
Omniverse Client Library
- 1.13.19
OM-36925: Fix omniClientMakeRelative(“omni://host/path/”, “omni://host/path/”);
- 1.13.18
OM-25931: Fixed some issues around changing and calling the log callback to reduce hangs.
OM-36755: Fixed possible use-after-delete issue with set_log_callback (Python).
- 1.13.17
OM-34879: Hard-code “mdl” as “not a layer” to work around a problem that happens if the “usdMdl” plugin is loaded
- 1.13.16
OM-36756: Fix crash that could happen if two threads read a layer at the exact same time.
- 1.13.15
OM-35235: Fix various hangs by changing all bindings to release the GIL except in very specific cases.
- 1.13.14
OM-34879: Fix hang in some circumstances by delaying USD plugin registration until later
OM-33732: Remove USD diagnostic delegate
- 1.13.13
OM-36256: Fixed S3 provider from generating a bad AWS signature when Omni Cache is enabled
- 1.13.12
OM-20572: Fixed setAcls
- 1.13.11
OM-35397: Fixed a bug that caused Linux’s File Watcher Thread to peg the CPU in some cases.
- 1.13.10
OM-32244: Fixed a very rare crash that could occur when reading a local file that another process has locked
- 1.13.9
OM-35050: Fixed problem reloading a non-live layer after it’s been modified.
- 1.13.8
OM-34739: Fix regression loading MDLs introduced in * 1.13.3
OM-33949: makeRelativeUrl prepends “./” to relative paths
OM-34752: Make sure local paths are always using “” inside USD on Windows
- 1.13.7
OM-34696: Fixed bug when S3 + cloudfront + omni cache are all used
- 1.13.6
OM-33914: Fixed crash when accessing http provider from multiple threads simultaneously
- 1.13.5
OM-26039: Fixed “Restoring checkpoint while USD stage is opened live wipes the content”
OM-33753: Fixed “running massive amounts of live edits together causes massive amounts of checkpoints”
- OM-34432: Fixed “[Create] It will lose all data or hang Create in live session”
These were all the same underlying issue: When a layer is overwritten in live mode it was cleared and set as ‘dirty’ which would cause the next “Save()” (which happens every frame in live mode) to save the cleared layer back to the Omniverse server.
- 1.13.4
OM-31830: omniClientCopy() with HTTP/S3 provider as source
OM-33321: Use Omni Cache 2.4.1+ new reverse proxy feature for HTTPS caching
- 1.13.3
OM-33483: Don’t crash when trying to save a layer that came from a mount
OM-27233: Support loading non-USD files (abc, drc, etc)
- OM-4613 & OM-34150: Support saving usda files as ascii
Note this change means live updates no longer work with usda files (though they technically never did – it would silently convert them to usdc files).
101.1 Point Release
Add Linux package for the Omniverse Launcher
Add a Python 3 Hello World sample
Update the Omniverse Client Library to 1.13
Update to Python 3.7
Add a Nucleus Checkpoint example
Add the ability to create/access a USD stage on local disk in the Hello World sample
100.2 Update
Update the Omniverse Client Library fix an issue with overlapping file writes
100.1 Point Release
First release
HelloWorld sample that demonstrates how to:
connect to an Omniverse server
create a USD stage
create a polygonal box and add it to the stage
upload an MDL material and its textures to an Omniverse server
bind an MDL and USD Preview Surface material to the box
add a light to the stage
move and rotate the box with live updates
print verbose Omniverse logs
open an existing stage and find a mesh to do live edits
OmniCLI sample that exercises most of the Omniverse Client Library API