Live Workflow Developer FAQ
The Omniverse USD Resolver uses the Omniverse Client Library to perform all communication with Nucleus servers. The OmniLive has been modified in Client Library 2. This FAQ is designed to answer questions regarding these changes.
Breaking changes
If your connector is using Live Workflow functions they must be upgraded to use the new Live Workflow functions in Client Library 2 as the OmniLive user experience has changed. Client Library 1.x can Live Sync changes on a .usd layer, while Client Library 2.x can only Live Sync changes on a .live layer and these .live layers presented to clients as USD
If a connector on Client Library 1.x, generally connector versions of 10x.xx, is used for live in combination with a Client Library 2.x Connector or application, the result will be that the users will be notified of base layer changes and be asked to Fetch new versions. This is because Client Library 1.x Live modified the base usd file directly.
Q - Is Live collaboration the same in every Omniverse Application and Connector.
A - Yes and No. Live Collaboration is capable of replicating most USD file information to other users. However the capabilities differ based on the target usage of a specific connector or application.
Q - Do we need to upgrade to the new Client Library?
A - No you are not required to upgrade but it is recommended. Client Library 2 is backward-compatible with Client Library 1. The only breaking change to the Client Library are the Live functions. Please update to avoid any potential issues.
Q - How long will client library 1 be backward compatible with Nucleus?
A - Most likely for a period of one year from this publication - July 2023.
Q - When is Client Library 2 going to production?
A - Create 2022.2, View 2022.2, and an update to Connect Sample are scheduled to release during Q3 2022. These releases will include Kit v103.5 and Client Library 2.x and the usd-resolver.
Q - What are the benefits to using Client Library 2?
A - The Client Library and usd-resolver have been separated into their own libraries.
The Client Library no longer depends on any USD.
The USD-Resolver can be compiled against a number of USD versions.
Guides users into a Non-destructive Live workflow.
This is due to only .live layers supporting replication via Nucleus.
The Client Library is more efficient in how it handles deltas on the .live layer. Allowing multiple changes (to a single layer) by multiple users during the same live session.
Q - How do I know which Omniverse Connectors are supporting Client Library 2.xx
A - Connectors that use Client Library 2.x will be versioned in as 200.0 and above. Anything in the 100 range will be Client Library 1.x.
Q - What is changing with Live Workflow?
A - New Session management system: Create and Join collaborative Live sessions with multiple users from multiple apps. - Live Session deltas are now targeted to a special .live layer instead of the original usd layer. - Live Sessions are now more restrictive to ensure they are non-destructive.
An Owner is enforced by Clients.
When sessions are Ended and Merged notifications are sent to all clients to ensure participants to ensure data validity.
When ending a Live Session, the Owner will be presented with several merge options:
Merge to corresponding layer: merge changes to root layer and clears data from .live layer.
Merge to a new layer: merge changes to a new layer and clears data from .live layer.
Pick an existing layer to merge to: merge changes to a selected layer and clears data from .live layer.
Do Not Merge: leaves data where it is; does not clear data from .live layer.
Q - Where can I get started?
A - Client Library Information and the API libraries for Python and C.
We will release Connect Sample v200 Q3 2022. This update will include code samples with both Python and C APIs along with Code documentation and developer documentation for upgrading to Client Library 2 and an introduction to the new Live functions and Live Workflow.
Q - NVIDIA USD Library Requirements?
A - Client Library 2 is now USD-agnostic, which eventually will allow developers to use a number of USD libraries they want (rather than nvUSD). In the short term we are packaging one USD version nv20.08 with Connect Sample. - We are actively developing functionality to allow developers to download more supported USD versions and eventually build the Omniverse USD Resolver against their own version of USD.
Q - Where can I find the technical documentation?
A - Review the Omniverse usd-resolver Technical Documentation and the Client Library Technical Documentation