OmniLive

Non-Destructive USD Workflow

Live workflows, sometimes referred to as Live Sync in Omniverse, allows users to collaborate on the same content from various applications such as Omniverse Create, or Connectors such as Maya, Unreal Engine, 3ds Max, and more. More information about Omniverse compatible applications can be found here.

Live workflows are non-destructive in Omniverse, meaning that edits that are made during a session are not committed to the base files until explicitly making a decision to do so, making artists free to explore and collaborate.

The updated Live workflows outlined in this document are intended to provide users with more awareness about who they are working with and what is being modified in a given Live Session.

Live Session Management

Users are provided the ability to manage live sessions by having the ability to have session ownership, decide when and how to end and merge changes of a live session, and even concurrent live sessions are possible on a given base file.

Users can create, join, leave and end sessions at will. However, only the session owner (creator) may end a given session with options to merge the session changes.

This workflow is outlined below.

../_images/live_create_join_and_leave_session.gif
Users can come and go from a Live session with the Live button.
  • In all apps and connectors, the Live workflow is defined by the lightning bolt icon.

New Session

Users can create a Live Session of their own on any base file that has write permissions.

  1. Create a new Live Session from the app.

  2. From the Create app, click the Live button in either (1) the main window, or in (2) the Layer window.

  3. If no current session exists, a popup window will open to create the new session.

  4. From the drop-down menu, select the “New Session” option to open the Create New Session window.

Note: Auto Authoring mode is experimental and it is Off by default.

../_images/live_create_new_session.png

Similar dialogs will appear in the connectors that support the Live workflow. The following example is from the Maya (Legacy) connector.

../_images/live_maya_create_new_session.png

Join Session

Users can Join any existing session for a USD file, regardless of if anyone is currently in it.

If a session already exists, then the system will default to the “Join” option.

  • The most recent session should be listed as default.

  • The Participants list shows existing participants in the session.

    • The application they are using is shown.

    • The Owner of the session is also tagged.

../_images/live_createapp_participants_list.png

Connectors have similar dialog to Create, the following example is from the Maya (Legacy) connector.

../_images/live_maya_join_session.png

Leave a Session

The act of leaving a session does not commit the work to the base file, and leaves the data in the live session. Users can continue to come and go and work.

To leave a session where the existing participants will remain in Session:

  • In the Create app, Live (Lightning bolt icon) is a Toggle button with a dropdown.

    • Use the Live drop-down menu, select the “Leave Session”

    • By default, Left-Click the Live button to “Leave Session”.

  • A user can also use the dropdown menu to pick more options.

../_images/live_create_live_ui.png

Connectors have a similar dialog to Create app, the following example is from the Maya connector’s Omniverse shelf.

  • Right-Click the Live button to see more options.

  • By default, Left-Click the Live button to “Leave Session”.

../_images/live_right_click_leave_session_options.png

Maya connector Live Session Leave confirmation dialog:

../_images/live_leave_session.png

End a Session

Ending a Live session is useful when the work that has been done is completed and the users want to commit the work to the base file.

Only the session owner can end a session. They will have an option to merge their changes and add a checkpoint description, or to discard all changes and end the session.

Create App Merge Options

When End and Merge is selected, a session end message will display End and 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.

../_images/live_create_merge_options.png

Connector Merge Options

  • Do Not Merge: Default option - leaves data where it is, do not Clear.

  • Merge Changes (All changes to root usd): clear data from .live files.

../_images/live_merge_options.gif

If you are not the session owner and attempt to end a session, the system will display the following warning:

../_images/live_leave_session_not_owner_warning.png

Handling Changes to USD Layers Outside a Live Session

This will allow users in a live session to remain informed of a base file changing beneath them.

  • A user not in live mode inserts or creates a new usd layer while other users are in a live session.

  • OR the Session owner ends and merges the session

  • OR someone else somewhere has modified the base USD

    • When this happens a notification is sent to all participants in the live session that the base files have been updated (Layer update notification) and a Fetch new updates dialog is displayed.

  • Base File needs updating. This is shown as a yellow refresh icon.

    • Create app decorates the Layer that needs refresh in the layer panel, indicated by a yellow refresh button, and has a viewport notification.

    • A connector may also have this same yellow refresh button in a toolbar, depending on the connector.

Notifications

Omniverse Live Workflow aims to help users to be aware of other users and actions that may affect their work. Users will be notified about other users’ presence and merging actions during a live session.

../_images/live_join_leave_example.png
  • User starts a session.

  • User joins a session.

  • User leaves a session.

  • User finishes a session and merges the changes down.

  • Users will be notified that the base files are out of date if another live session is merged to the main usd files.

  • Users can query a list of participants in an active session.

../_images/live_show_participants.png

Create App Notifications

  • Notifications are displayed in the viewport and console.

Connector Notifications

  • Notifications are listed in the app script editor or console window and in some cases there are also viewport notifications.

File Notifications

  • Omniverse will notify users when the base file they are working on is out of date and needs to be updated. This is key to users being aware of the state of the file they are working on.

../_images/live_connector_toolbar.png

Project Workflow

For an overview of the Project Structure in View, please see the :doc: View documentation. <../app_view/overview> A View Project, when Live enabled, allows for input streams of other Live Sessions to a main Live Session. This allows smaller more Focused Live Sessions to to be viewed by the main project. To Accomplish this , some of the standard Live Session Workflow is automated.

  1. Live Session from the Connectors perspective is optimized as follows:

    • All connector live session that have a project set will always name it’s Layers Live session “Default”

      • Example, when a connector goes live as part of a project, the session is automatically called Default and the create/join dialog is skipped.

      • This will not allow for named connector live sessions.

    • A connector .live, and merge process is identical to the regular.

  2. Live Session from the Project perspective is optimized as follows:

    • As noted above, The Live streams from the Connectors Live Session is added at the project level. This allows users in View, to also see incoming changes from independent Live Sessions.

    • When the Live session is ended from the Project level, in Omniverse View, an optimized set of only two options are presented.

      • Merge: Always merged to projectEdits.usd at the top of the layer stack.

      • Do Not Merge: Does not merge.

Frequently Asked Questions

View the Live Workflow Developer FAQ page.

File and USD Stage Structure

  • Live files will always exist in a directory next to the usd file in a .live directory.

    • The root.live file will always be loaded into the Session Layer in the top most position. Any additional .live files that may exist for the session are children under root.live.

Live Session Prerequisites

  • Client Library minimum version 2.12.x.

  • Users cannot use the Live Workflow on a Read-Only File directory.

Glossary

  • Auto-authoring mode: A mode of USD authoring where the USD authoring layer is automated. The edits made to a given prim will be automatically applied to the USD layer they originated in. This removes the need for the user to manually set an USD authoring layer.

  • Default authoring mode: A mode of USD authoring where a user must manually choose the USD authoring layer.

  • Join: The act of a user being added to a named session.

  • Leave: The act of a user exiting a named session.

  • Live Layer: A specialized file which holds the collaboration edits of a Live Session. These have an extension of .live. They are generally placed automatically in the USD Session Layer of a stage.

  • Live Session: A named activity where multi users in multiple Omniverse connected applications and/or connectors can collaborate on a file together.

  • Live Session Start: The act of joining or creating a new named session.

  • Live Session End: The act of ending a named session. This communicates to all users that the session is ending and all users must stop working.

  • Merge: The act of combining single or multiple source Layers into target layer(s). Most common usage is to merge a stronger layer to a single target layer beneath it.

  • Owner: This is the leader of a given Live Session. The user who creates the session is the owner by default.

  • Participants: Users that have joined a Live Session

  • Session Layer: A USD feature for in memory and temporary USD layers. These do not persist or save with the main USD stage. The Live Layers generally exist here.