UJITSO Derived Data Cache System#
UJITSO (Universal Just-In-Time Scene Optimization) is Omniverse’s derived data caching system designed to accelerate scene loading by caching pre-processed representations of textures, geometry and materials.
When UJITSO is enabled, assets are processed once and the results are stored in a cache. Subsequent loads of the same assets retrieve the cached data, significantly reducing loading times.
The system works transparently: when a scene is loaded, UJITSO automatically checks if a cached version of the derived data exists. If a cached version is found, the cached data is used directly. If not, the data is processed and stored in the cache for future use.
The key benefits of UJITSO include:
Faster scene loading: pre-processed assets load faster than processing them on-demand each time.
Reduced data transfer: certain source assets such as textures don’t need to be available locally and only metadata and an optimized representation needs to be transferred.
Automatic invalidation: when source assets change, the cache is automatically invalidated and rebuilt.
Deduplication: assets with identical contents will be cached once, reducing storage, transfer time and loading time.
Enabling UJITSO#
UJITSO is enabled by default. This is controlled by the setting:
Setting |
Description |
Default |
|---|---|---|
|
Global toggle to enable or disable the entire UJITSO system |
|
When /UJITSO/enabled is set to false, all UJITSO processors are disabled regardless of their individual settings.
Quick Start#
Default Setup with Local Cache#
For single-user setups, the default configuration works well:
--/UJITSO/enabled=true
--/UJITSO/textures=true
--/UJITSO/materials=true
Using OmniHub#
For local caching with cross-application sharing:
--/UJITSO/enabled=true
--/UJITSO/datastore/allowHubDataStore=true
Enterprise Deployment with gRPC and DDCS#
For enterprise deployments with a centralized cache service:
--/UJITSO/enabled=true
--/UJITSO/datastore/allowGRPCDataStore=true
--/UJITSO/datastore/grpcDnsName="ddcs.ddcs.cluster.local:3010"
--/UJITSO/datastore/GRPCDataStore/useTLS=true
Clearing the Cache#
To clear the local derived data cache, simply delete the cache directory:
Windows |
|
Linux |
|
Alternatively, use /UJITSO/forceBuilds=true to rebuild without clearing the cache.
Processors#
UJITSO uses specialized Processors to transform source data into optimized runtime representations. Each processor type handles a specific category of assets. The output of a Processor is referred to as Derived Data.
Each available Processor can be enabled or disabled individually.
Available Processors#
Processor |
Setting |
Description |
Default |
|---|---|---|---|
Textures |
|
Processes source textures into mip-mapped, GPU-optimized formats |
|
Materials |
|
Compiles and caches material shader bytecode |
|
Geometry |
|
EXPERIMENTAL: processes mesh, curve and point geometry into optimized runtime formats |
|
Texture Processor#
The texture processor converts source images into GPU-ready formats. When a texture is first encountered, UJITSO processes it into an optimized format with pre-generated mipmaps and stores the result in the cache. Future loads retrieve the processed texture directly.
To enable or disable texture processing:
--/UJITSO/textures=true
Material Processor#
The material processor compiles MDL materials into shader bytecode. This is particularly beneficial for complex materials that take significant time to compile.
To enable or disable material processing:
--/UJITSO/materials=true
Geometry Processor#
Warning
The geometry processor is currently experimental and not production-ready. It is disabled by default and will be enabled automatically when it reaches production quality.
The geometry processor handles mesh data, curves, and point clouds. It converts USD geometry into optimized runtime representations that can be loaded directly by the renderer.
When enabled, the geometry processor caches all geometry in the scene using a priority order based on camera distance. Near geometry is prioritized and can be streamed before all distant geometry has been cached. This enables progressive loading scenarios, such as point cloud streaming where caching and streaming happen continuously as new data arrives.
To experiment with geometry processing:
--/UJITSO/geometry=true
A persistent setting is also available that remembers your geometry processor preference across sessions:
--/persistent/UJITSO/geometry=true
Data Stores#
UJITSO uses a data store to cache derived data. Only one data store is active at a time, selected based on configuration and availability.
UJITSO selects a data store to use based on configuration and availability in the following priority order:
gRPC Data Store - if
allowGRPCDataStore==trueandgrpcDnsNameis set.OmniHub Data Store - if
allowHubDataStore==trueand OmniHub service is available.Local Data Store - fallback if
allowLocalDataStore==true.
Local Data Store#
The local data store provides caching directly on the local filesystem. This is the current default when OmniHub is not available.
Setting |
Description |
Default |
|---|---|---|
|
Enable the local filesystem cache |
|
|
Path to the local cache directory |
|
|
Maximum size of the disk cache for large data (textures, geometry) in megabytes |
|
Windows |
|
Linux |
|
OmniHub Data Store#
Warning
The OmniHub data store is currently experimental and not production-ready. It is disabled by default.
OmniHub is a local caching service that runs on your desktop. It enables sharing of cached data between multiple Omniverse applications running on the same computer.
Setting |
Description |
Default |
|---|---|---|
|
Enable the OmniHub cache |
|
When OmniHub is enabled and the OmniHub service is running, UJITSO will use it as the cache backend. This enables cross-application cache sharing, where multiple Omniverse apps on the same machine share the cache.
gRPC Data Store (with DDCS)#
For enterprise and cloud deployments, UJITSO supports a high-performance GRPC-based cache service. This is typically used with the Derived Data Cache Service (DDCS), a scalable caching service that can be deployed in your infrastructure. DDCS is designed to run with multiple shards for horizontal scaling.
Setting |
Description |
Default |
|---|---|---|
|
Enable the gRPC cache |
|
|
Endpoint address for the GRPC cache service |
|
|
Use TLS encryption for GRPC connections |
|
Endpoint Configuration#
The grpcDnsName setting specifies the address of the DDCS service:
--/UJITSO/datastore/grpcDnsName="ddcs.ddcs.cluster.local:3010"
The format is hostname:port. In Kubernetes environments, this is typically a service DNS name within the cluster.
TLS Configuration#
For secure connections, TLS is enabled by default. When connecting to services that don’t require TLS (e.g., local testing):
--/UJITSO/datastore/GRPCDataStore/useTLS=false
For production deployments with TLS, ensure your DDCS service is configured with appropriate certificates.
Self File (NVCF Multi-Tenancy)#
When running in NVCF (NVIDIA Cloud Functions) clusters, multi-tenancy support requires authentication via a self file. NVCF provides a JWT token to the container through a file, which UJITSO reads to authenticate requests to DDCS.
Setting |
Description |
Default |
|---|---|---|
|
Enable reading authentication token from self file |
|
|
Path to the self file containing the JWT token |
/var/run/nvcf/info/self |
Debugging#
Force Rebuild#
To force UJITSO to rebuild all cached data (ignoring the cache):
--/UJITSO/forceBuilds=true
This is useful for debugging cache issues or ensuring fresh builds.
Build Logging#
UJITSO provides several settings to log build activity, which can be useful for debugging cache behavior.
Setting |
Description |
Default |
|---|---|---|
|
Log each time a build result is not found in cache (triggers a new build) - to debug cache misses |
|
|
Log when build results are received |
|
|
Output logs in single-line format (useful for cloud/cluster logging) |
|
|
Enable verbose logging of hash computations |
|