KIT Known Limitations¶
During live edit, objects often revert to the original positions (often during viewport drag)
During live edit, flickering can occur with objects the viewport which affects those participants viewing the edit (and does not affect the participant performing the edit operation on the object)
Live editing of the same layer by multiple users can cause instability in Kit, resulting in crashes and or freezing of the UI
Kit Application UI/Material Workflow
Live MDL file editing is broken (need to restart Kit to reload edited MDL).
Live material parameter editing between Connector (e.g. Maya) and Kit is not working properly
Cross-server reference of USD which contains MDL that uses server-side search path is not working properly. You will see red material in such cases.
KIT 2020.2.2 Hotfix¶
Improved CloudXR performance and update CloudXR version
Core Framework & USD¶
Fix referencing local files from inside omniverse files
Fix list cache not clearing deleted items.
KIT 2020.2.1 Hotfix¶
Updated omniverse_asset_converter to fix shapenet crash
Build: fixed missing libffi.so.6 issue on ubuntu 20 when loading omni.physx
Pasting URLs from ov-web into Kit content browser now works
Adding connection to server root after adding connection to server subdir now works
URLs to Nucleus directories didn’t work unless there was a shortcut in the content browser to the exact server
moved the /renderer/mdl/searchPaths/server setting to the right scope in kit-core.json file
Uploading of crash dumps to backtrace server re-enabled
Added Colorspace Support for UsdUVTexture
Added Colorspace Support and specular workflow in UsdPreviewSurface
Core Framework & USD¶
Bugfix: would sometimes (very rarely) cause data loss if you got a disconnect while uploading a file.
Bugfix: would fail to download a file if it was an exact multiple of 1MB
Bugfix: USD files from Nucleus servers were being deleted unless saved twice
API call to get Instance Path/URI from BBox Instance ID (and vice versa)
Support colorSpace and specular workflow in UsdPreviewSurface
Fix Path-Traced fog, was too dark when outside the fog
Fix naming of cutout opacity render settings
Remove hard-coded legacy server-side MDL search paths
Synthetic Data support
Add API to grab uri from instance index for omni.syntheticdata
Dump bounding box data directly from instance constant
Treat translucent objects that cast shadows as opaque for the purposes of synthetic data gathering
New omni.client extension (all extensions using python/C++ client lib should set this as extension dependency).
omni.client python binding.
OmniClient.h C++ dynamic library interface.
OmniClient carbonite interface.
DataSource interface with carb.datasource-omniclient.plugin implementation.
Direct use of Connection Library, IConnectionHub, omni_usd_plugin, omni.connection, omni.connectionhub, omni.usd_plugin are now deprecated. Any new carbonite plugins, Kit extensions should develop with client library/omni.client directly. Any old extensions/scripts/plugins using these components will stop working and need to be updated.
URL format has changed. You do not need to make an explicit connection to a server to access the files, instead you specify the server name in the URL. For example if you want to load a file from localhost, previously you need to log into localhost first, then open omni:/Users/foo/bar.usd. Now you can open omniverse://localhost/Users/foo/bar.usd directly. Client library manages the connection internally.
With the new URL format, you can now reference USD layers across servers (experimental, material may not work properly).
Old omni: URL will still work in USD, but it’s recommended to update your files to use the full qualified omniverse:// URL.
Extension system now supports setting registry provider which can be implemented anywhere
Add omni.kit.registry.nucleus extension which implement registry provider interface using nucleus and client library
Add more API to extension manager to fetch extension info, to allow treating both remote and local extension in uniform way
Added “enabledCore” setting to enable some extensions before others (like extension registry).
Extensions 2.0 manager UI with remote extension browser
By default extension system now prefers highest extension version
Add “list all extensions” cmd param to kit.exe
Add publish command to kit.exe
package.target config property. Allows to specify platform specific filters. It is also autofilled when publishing. Allows publishing of binary extensions.
Semantic Versioning support, including prerelease and metadata
Proper package name for extensions (using version and package.target)
Version removed from premake and moved into extension.toml.
Extension.toml reworked, added [package] section to avoid polluting root, added various info for UI here.
CHANGELOG in extension.toml + example
Add platform info to IApp interface
Added live mode support for documentation editing (build_docs.bat -l)
Huge extension documentation update
Changed settings override command line prefix to –/ and previous prefix –carb/ is now deprecated.
Refactored and cleaned up standalone rendering codepath that is used in Kit Mini and Kit non-RTX.
Editor interface is bumped to version 1.0 to facilitate semantic compatibility.
Added flag –skip-core-config to force Kit to load without the implicit configuration files (kit-core.json and kit-default.json)
New way to process Kit experience configuration files, allowing configuration merging using –merge-config/-m command line arguments, with experimental support of configuration file imports (using “@import@” directive) and appending array values using “++” child field.
Kit data path now includes build number
New extension omni.kit.usda_edit that allows editing usd file as text in the external editor
Stage Window: displaying instance proxies
Content Browser: Ability to use custom context menu
Bugfix: Press F to frame objects will no longer include the bounds of Camera and Light gizmo.
Bugfix: Fix normal issues of creating standard mesh in z-up stage.
Bugfix: Stage Window: fixed tree updating when muting layers
Bugfix: Stage Window: fixed removing of multiple items
Bugfix: Stage Window: fixed Ctrl-A
Bugfix: Stage Window: fixed focus on selection
omni.anim.usdskel an OmniGraph-based extension to support
BlendShape (no skinning)
BlendShape & Skinning (preskinning)
Split the transform constraints extension into three extensions
omni.anim.wrap a mesh-to-mesh deformer
omni.anim.jiggle extension to simulate the secondary jiggle bounce mesh deformation
Add options in the Preference window to select default xformOp when creating new prims
Add support of USD layer offset such that animations in different layers with different timeCodePerSecond can play together, a.k.a auto retiming.
Add Transform spline interpolation supported in omni.anim.timesample_editor , such that the key framed xForm value can be evaluated in Bezier curve interpolation method.
Moved the timeCodePerSecond editing feature from the timeline UI to the omni.anim.timesample_editor window
Switched the default animation time unit from seconds to frames in the timeline UI
Improved the robustness of omni.anim.player such that it can playback almost all kind of animation scene. The only exception is the none-OmniGraph skeleton mesh pipeline, it is a known issue and will be address in the next release.
Moved Omni::UI to a separate extension
New embeddable omni.kit.widget.filebrowser UI widget for exploring file systems, including nucleus servers.
New widget, ImageWithProvider and a set of helper ImageProviders, which serve as a source of image data for the widget. ByteImageProvider allows to display raw byte data, RasterImageProvider allows to load a raster image and display it, VectorImageProvider allows to load vector image, rasterize it and display.
TreeView: rewrote to avoid using ImGui table
TreeView: the ability to reorder items
Added new extension omni.graph.ui that allows inspect omni.graph and UsdShade networks as graph view
Delayed UI population with Frame.set_build_fn
Ability to overlay existing windows
Bugfix: Fixed possible freeze/crash on window resize.
Bugfix: TreeView: fixed selection lag and selection crash
Bugfix: CheckBox: fixed disabled state
Bugfix: CollapsableFrame: fixed margin and padding
Kit Application UI/Material Workflow¶
Toolbar has been moved from C++ to python using omni.ui.
Layers window has been written with omni.ui and moved to python extension.
It supports live mode control per single layer.
Improvements to Cache/Live mode indicator.
Content Window now supports multiple servers at the same time. All local drives will also be listed by default.
Global login window is removed. On-demand login will popup when needed.
“file:” prefix is removed from local file path returned in FileDialog and in Content Window’s address bar (pending cherry-picking)
Improve the collect tool to optimize the collect performance.
Improve asset importer to support FBX version under 7.
New Copy Service extension for copying files between Nucleus and local file servers.
Stage widget type column on by default
Stage Widget show/hide columns
Bugfix: Certain aliasing on UI images has been improved.
Bugfix: Rasterized svg glyph is now center aligned
Cloud and Microservices¶
Kit control port extension is now part of Omniverse. It forms the base of the micro services framework that is being built around it. It
Kit-services is an application that makes it easy to get going with Kit and its micro services framework. Build, run and deploy kit microservices.
Basic facilities that make it easier to write stateless services using dependency injection.
Early preview of the new hydra viewport extension in kit, accessed by running kit-hydra.bat in Windows. This viewport renders the USD world using render delegate plugins like Pixar’s OpenGL based hdStorm and hdEmbree. This allows kit to run on machines with non-RTX GPUs and be embedded in lightweight, quick loading experiences. The hydra viewport is not yet feature complete, but picking and camera controls are implemented.
Performance improvements for UI draw event stream events creation/dispatch
Viewport context menu add group selected
Viewport window prim selection fix for context menu
Cleaned up Ansel extension matrix code
Default save folder matches recommended Ansel default folder
Improved OmniGlass has more intuitive controls to simulate refractive materials. Please note, in some cases there can be a look change.
New OmniPBR_ClearCoat is a multi-layer physical material that adds an additional clear thin coat to OmniPBR.
Both materials also have Opacity versions that add cutout opacity mapping support.
Physics & Simulation - General¶
Debug visualization fixes
Grab with force can have now force value defined in Physics settings window
Fixed runtime switch of collision shapes inside bodies
Updated Physics demos to new UI, added custom parameters to demos
Improved convex decomposition performance and quality
Debug visualization for collisions supports time varying transformations
Physics demos are created under default prim
Improved errors while parsing physics data out of USD
Commands for physics menu - undo/redo works for physics menu
Undo/redo for physics properties changes
Physics error stream added
Support for distance joint springs
New PSCL (physics scripting language) demos
Documentation for physics extensions
Documentation for physics python bindings
Exposed disable gravity on PhysxRigidBodyAPI
Blast extension support for impact based damage
Physics & Simulation - Vehicles¶
Support for PhysX vehicles
Default input device support to drive a vehicle
Custom camera types
Special property windows
Vehicle creation wizard
Physics & Simulation - Blast¶
Voronoi fracture of UsdGeomMesh
“Explode view” of fractured chunks
Multilevel fracture - can select chunks in explode view (or stage view) and fracture those further
Ability to set interior materials of fractured meshes
Fracturing a mesh with a PhysicsAPI creates a destructible rigid body
Ability to choose kinematic or dynamic physics mode for the initial destructible rigid body
Can select multiple meshes and create a combined-mesh destructible
Reset feature deletes blast object and restores original mesh
Impact damage option
Ability to attach a blast destructible to the static world or a dynamic rigid body
Damage profiles: radial, cutter, and impact spread
Base damage amount
Min/max damage distance
Impulse to apply to chunks when taking damage
Max contact impulse, to allow heavy objects to pass through “weak” destructibles (such as a canonball through a window)
KIT 2020.1 Hotfix¶
Add texture supports for ShapeNet importer in omniverse_asset_converter
Updates from a referenced file that gets changed do not get reflected in a new scene.
Fixed showing of Black Sky When Opening Models in View
Fixed mouse picking for joint to be forced based since it was too strong, leading to joint being pulled apart
Changed error reporting for articulation joint created without bodies
Fixed problem with disabling of joints, they can now be disabled
Fixed crash when removing collisionAPI in Kit while simulation is running
distance joint spring enabled exposed
Following CPU/GPU logs added during startup
A table to show: Memory size (used/free), swap/page size (used/free), CPU and GPU brand names, CPU cores and logical processors.
Enumerate all GPUs on device creation failure
Indicate which GPU chosen by setting active in table
Scoring GPUs: priority based on per 256 MB GPU memory and “RTX” in the name
Improve GPU selection for multi-gpu: Skip old GPUs and fix incorrect GPU counting
Fixed the problem where Microfacet with roughness of 0 cause blurry reflections and transmissions by updating to newer MDL SDK
Fixed Viewport corruption during View startup on MGPU
Fixed perf hit caused by enabling synthetic data bounding boxes
Fixed problem which was causing dramatic changes in Viewport brightness changes when moving camera
Implement a camera sensor to extract the tight 2D bounding box data of the objects that a camera has in view
mechanism to map instance segmentation URI to a USD Object for omni.syntheticdata
Switched mouse drag to a weaker force based approach so it doesn’t pull joints apart. Previous joint based behaviour can be enabled in physics settings.
Joints can be enabled/disabled through jointEnabled attribute
Fixed crash when removing collisionAPI in Kit while simulation is running
Core Framework & USD¶
Refactor of the Kit Classes splitting the API in more logical pieces.
New Extension system (Extension 2.0) with dependency management and clearer structure.
Many of the Kit Windows are now Extension 2.0.
New interface ITimeline: Manages a global timeline for animation control.
Layers’ interfaces have been re-organized to support nesting of layers (support for sub-layers of sub-layers).
Added support for synchronizing time across Omniverse stage in Live mode.
Added default option to keep UsdPrim’s world transform when re-parenting.
Allowed collapsed copy of reference prim’s descendants.
UsdShadeShader prim’s subIdentifier now requires no namespace prefix and will issue a warning if namespace is included.
New mesh generator and general primitive improvements.
White Mode now has a global exception list in Preferences to exclude materials that will not be changed when White mode is enabled.
USD diagnostic message is now turned on by default to help guide correct USD usage and debugging.
Add support for nesting sub-layers for USD compliance so users can operate the whole layer tree.
Improved stage save workflow to control the granularity of saving of stage.
OM-Fixed UsdPrim visibility not honoring display purpose filter settings.
OM-Popup menu when drag and drop MDL file onto a UsdPrim now only includes UsdGeomGprim, UsdGeomSubset and UsdGeomXform.
OM-10x default far-plane to allow rendering bigger scenes.
OM-Improved performance when framing objects by pressing F in viewport.
OM-Fixed std::bad_weak_ptr exception on several omni.kit.ui python bindings.
OM-Fixed “Create Camera from View” only taking the local transform of the source camera.
New UI toolkit called Omni::UI to enable extendable and visually compelling user interfaces.
Omni UI Components: Dynamic layout system, Flexible styles, Button, Image, Label, Model based widget like ColorWidget, Slider, ComboBox, ToolButton.
Advanced UI element for Tree, List Views using fast and flexible models.
Workspace system to control Kit’s windows and docking.
Streaming Widget extension.
New Web component based on chrome to create web content views and based interfaces.
Previous python UI system is still present but will be deprecated over the next couple of versions.
Stage View re-implemented using Omni::UI in with Python.
Kit Application UI/Material Workflow¶
OM-Status bar now displays the last logging message at bottom left corner.
OM-Support to drag and drop materials from stage window to viewport window to enable binding of material.
OM-Context menu support using Right click in Layer, Stage and Viewport Windows.
OM-New Scene Presets and options to create your own.
OM-New Selection workflow to Select All, None, Inverse, Hide, Unselect etc.
OM-Viewport HUD stats on/off.
OM-Viewport Display Purpose menu.
OM-Viewport Display By Type menu.
Cloud and Microservices¶
OM-New Control Port extension to write micro-services for Kit.
OM-New Kit agent extension to enable to launch Kit instance remotely.
OM-Created an Omniverse Kit Remote installer.
OM-Client streaming window is now resizable, Kit must be launched with –carb/app/livestream/allowResize=true to enable the feature.
OM-Windows clients are now launched automatically when a URL beginning with kit-remote-2020-1:// is present. For instance, kit-remote-2020-1://127.0.0.1 would launch Omniverse Kit Remote and automatically attempt to connect to a streaming Kit server on localhost.
OM-Allow High DPI sessions in Omniverse Kit Remote with the -d command line parameter.
Feature or Issue Minimum Windows Driver Versions Minimum Linux Driver Versions ======================================================== ================================ ==================================================== Live streaming on systems with multiple GPUs | 442.76 or 450.78 | Unknown Reduced memory usage with small meshes with Vulkan | 450+ | 450+ Ansel support on systems with multiple GPUs | 446.09, 451.02 | Not applicable (not supported) Fix for crashes on Linux (X windows or full system hang) | not applicable | 450.34 Fix for some GPU memory allocation errors on Linux | not applicable | 450.29 ======================================================== ================================ ====================================================
Known issues caused by driver bugs or missing functionality¶
OM-Standard Surface material causes crashes (all platforms)
OM-Cached Path-Tracing is not supported on Vulkan (Windows and Linux)
OM-Multi-GPU is not supported on Linux
OM-Improvements to MDL loading
OM-Changes to default binding strength to improve authoring experience
OM-Bug fix to only author material binding at authoring locations.
OM-Validate / update all clients to write correct MDL schema
OM-Added UDIM support in Kit and Maya
OM-Drag and drop materials to Viewport presents only bindable locations in the popup list. (phase 1 update, phase 2 next release)
OM-Added ability to select bounded objects from material.
OM-UsdPreviewSurface default ST wrap mode is now set to Repeat
OM-Making updates and improvements to Material Documentation in 2020.1.
OM-New MDL SDK with MDL 1.6 Support
OM-Hair BSDF support
OM-MDL Plugin for Arnold
OM-Compute graph framework is now OmniGraph!
OM-Added a number of deformer, animation constraint, and particle system nodes
OM-Added Python bindings
OM-Added ability to create nodes through Python
OM-Added ability to create sub-graphs
OM-Added node connection UI
OM-Added baseline documentation about the graph system and the roadmap ahead
OM-Simplified Compute Node registration process
OM-Added support for simplified node type registration
OM-Many animation tools are now based on OmniGraph
OM-Added OmniGraph support for animation constraints (transform, mesh constraints)
OM-Polished transform constraint, which allows users to constrain a USD prim to transform of another prim (or a joint in USDSkel).
OM-Polished mesh-mesh constraint, which deforms a mesh based on deformation of another mesh
OM-Added a few deformers based on OmniGraph framework
OM-Skinning support for UsdSkel as Omnigraph deformer (omni.anim.deformer)
OM-Polished anim clips (omni.anim.clips), which allows users to import, retime USDSkel based animations
OM-Added anim player tools provide basic support for animation play of independent animation clips
OM-Anim behavior extension was removed, and no longer supported
OM-Basic time sample (key frame) editing through the time sample editor (omni.kit.builtin.timesample_authoring extension
OM-Various bug fixes related to UsdSkel and animation loading from USD and FBX.
Physics / Simulation¶
OM-Physics and PhysX USD schema updated.
OM-New Physics properties tab.
OM-Improved physics visualization options.
OM-User can remove physics components.
OM-Masses can be specified manually with Mass API components.
OM-Added collision filtering with collision groups.
OM-Added joint creation and editing.
OM-Added contact reporting for extensions.
OM-Improved articulation editing.
OM-Physics property editor for editing schema APIs directly.
OM-Blast destruction added.
Kit has now become a more low-level SDK for building Omnivese Applications. Create has taken on the user-facing application aspect of Kit