physx-variant-metadata#

Code

RV.003

Validator

Compatibility

open-usd

Tags

🔑

Summary#

The PhysX variant set must be documented in customLayerData.SimReady_Metadata.Variants.Physics.PhysX, declaring its prim, variantSetName, and activateOption.

Description#

When an asset authors the PhysX variant set (see physx-variant-set RV.001), the root layer must carry a matching descriptor so tooling can discover and activate the variant without traversing composition. The descriptor lives at:

customLayerData → SimReady_Metadata → Variants → Physics → PhysX

The PhysX entry is a dictionary with:

  • prim (string): the prim path that owns the variant set (the asset root, e.g. /RootNode).

  • variantSetName (string): the variant set name, PhysX.

  • activateOption (string): the option that turns PhysX on, i.e. Enabled.

The variantSetName must name a variant set that actually exists on the referenced prim.

Why is it required?#

  • Lets pipelines enumerate and activate PhysX from metadata alone, without opening and traversing variants.

  • Keeps the declared runtime contract (metadata) and the composed structure (variant set) in sync and cross-checkable.

  • Provides a stable, machine-readable description of which prim and option activate PhysX.

Examples#

# Valid: metadata documents the PhysX variant set
customLayerData = {
    dictionary SimReady_Metadata = {
        dictionary Variants = {
            dictionary Physics = {
                dictionary PhysX = {
                    string prim = "/RootNode"
                    string variantSetName = "PhysX"
                    string activateOption = "Enabled"
                }
            }
        }
    }
}

# Invalid: PhysX variant set authored but no PhysX metadata entry
                dictionary Physics = {
                }

# Invalid: entry missing required keys
                dictionary PhysX = {
                    string prim = "/RootNode"
                }

How to comply#

  • Add a Variants dictionary under SimReady_Metadata in the root layer’s customLayerData.

  • Under Variants.Physics, add a PhysX dictionary.

  • Set prim to the default prim path, variantSetName to PhysX, and activateOption to Enabled.

  • Ensure the variantSetName/prim pair points at a real variant set.

For More Information#