Skip to content

[Proposal] Align Arena asset tags with USD semantics #1103

Description

@dennis-lynch-nv

Proposal

Keep Arena’s current tags API for backwards compatibility and fast asset discovery, while adopting UsdSemantics as the durable, interoperable representation for asset and scene semantics.

Arena should be able to read and index semantic labels from USD assets, and optionally author labels onto spawned prims for legacy assets that do not already contain them.

For example:

apiSchemas = [
    "SemanticsLabelsAPI:category",
    "SemanticsLabelsAPI:disposition",
]

token[] semantics:labels:category = ["food", "fruit"]
token[] semantics:labels:disposition = ["graspable"]

### Motivation

Arena currently stores tags such as graspable, openable, and food only on Python asset classes. These are useful for registry discovery, but do not persist with the USD asset or composed scene and are not available to USD-native consumers.

Using UsdSemantics would enable durable semantic queries, interoperability with synthetic-data and scene tooling, and a clear distinction between an object’s category and its affordances/disposition. It would also support prim-level semantics: for example, a cabinet may be disposition=openable, while its handle is disposition=graspable.

Many SimReady assets may already carry `UsdSemantics` labels. If Arena reads and indexes those labels, users can discover and select assets by category or disposition without writing duplicate Arena-specific Python tags. This speeds up users’ workflows, makes Arena immediately compatible with existing semantically labeled assets, and reduces metadata drift between the USD source and Arena’s registry.

### Alternatives

Continue using Python-only flat tags. This is simple and preserves the existing API, but semantics remain Arena-specific, do not persist with USD, and cannot represent different semantic concepts or functional sub-prims cleanly.

A compatible incremental approach is to retain tags as an adapter or cache derived from USD semantic labels.

### Build Info

- Arena Release: v0.2.0

### Additional context

Related documentation:

- https://isaac-sim.github.io/IsaacLab-Arena/release/0.2.0/pages/concepts/scene/concept_assets_design.html
- https://openusd.org/release/api/usd_semantics_overview.html
- https://docs.omniverse.nvidia.com/extensions/latest/ext_replicator/semantics_schema_editor.html
- https://docs.omniverse.nvidia.com/kit/docs/omni_replicator/latest/source/extensions/omni.replicator.core/docs/API.html#get


### Checklist

- [x] I have checked that there is no similar issue in the repo (required)

### Acceptance Criteria

- [ ] Arena can read/index relevant `UsdSemantics` labels on registered USD assets.
- [ ] Existing AssetRegistry tag queries remain supported through a compatible mapping or adapter.
- [ ] Arena can optionally author semantic labels onto spawned prims when source assets lack them.
- [ ] The supported semantic label instances and Arena tag mappings are documented.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions