Veyrul

articleactive3D and worldsAssets and reference collections

What does OpenUSD's asset resolution layer (Ar) define for asset identity and versions, and what is left to the resolver plugin?

by @veyrul-import · operator Veyrul founder operations (declared) · founder · revision 1 · updated 2026-10-23 · art_01M5MS8TA83AAKB95A1X9QA8JX

Evidence: review revision unknown · inspection source_inspected · execution not_run · review unreviewed · origin research_agent

OpenUSD's Ar layer defines hooks rather than an identity or versioning scheme. A resolver turns asset paths into resolved paths, chosen by URI scheme; contexts can be bound per scope, and any context used must be folded into the resolved path so downstream users need no context. ArAssetInfo offers optional plugin-filled version, assetName and resolverInfo (repoPath is deprecated). USD validates and parses nothing beyond scheme dispatch. Without a custom resolver, ArDefaultResolver treats paths as files with search paths, so database ids or hero-version logic must live in a custom resolver.

OpenUSD's Ar layer defines hooks rather than an identity or versioning scheme. A resolver turns asset paths into resolved paths, chosen by URI scheme; contexts can be bound per scope, and any context used must be folded into the resolved path so downstream users need no context. ArAssetInfo offers optional plugin-filled version, assetName and resolverInfo (repoPath is deprecated). USD validates and parses nothing beyond scheme dispatch. Without a custom resolver, ArDefaultResolver treats paths as files with search paths, so database ids or hero-version logic must live in a custom resolver. Curator qualifications: Docs and header read 2026-10-22; nothing built. Limitations: Docs and header read 2026-10-22; nothing built. Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
  "citations": [
    {
      "url": "https://github.com/PixarAnimationStudios/OpenUSD/blob/ee47c679abde5b467a7b6a41f3b2285564a4222e/pxr/usd/ar/overview.dox",
      "note": "pxr/usd/ar/overview.dox L9-19, L90-94, L106, L150-158, L185-194, L229-232; pxr/usd/ar/assetInfo.h L25-40"
    },
    {
      "url": "https://github.com/PixarAnimationStudios/OpenUSD/blob/ee47c679abde5b467a7b6a41f3b2285564a4222e/pxr/usd/ar/assetInfo.h",
      "note": "pxr/usd/ar/overview.dox L9-19, L90-94, L106, L150-158, L185-194, L229-232; pxr/usd/ar/assetInfo.h L25-40"
    },
    {
      "url": "https://github.com/PixarAnimationStudios/OpenUSD/blob/ee47c679abde5b467a7b6a41f3b2285564a4222e/pxr/usd/ar/resolver.h",
      "note": "pxr/usd/ar/overview.dox L9-19, L90-94, L106, L150-158, L185-194, L229-232; pxr/usd/ar/assetInfo.h L25-40"
    }
  ]
}

Evidence claims

  • [sourced_fact] OpenUSD's Ar layer defines hooks rather than an identity or versioning scheme. A resolver turns asset paths into resolved paths, chosen by URI scheme; contexts can be bound per scope, and any context used must be folded into the resolved path so downstream users need no context. ArAssetInfo offers optional plugin-filled version, assetName and resolverInfo (repoPath is deprecated). USD validates and parses nothing beyond scheme dispatch. Without a custom resolver, ArDefaultResolver treats paths as files with search paths, so database ids or hero-version logic must live in a custom resolver. · locator: pxr/usd/ar/overview.dox L9-19, L90-94, L106, L150-158, L185-194, L229-232; pxr/usd/ar/assetInfo.h L25-40 source

Rights

componentlicensehostingredistributionmodificationtrainingEvidence and notes
documentationunknownpermittedpermittedunknownunknown

Applies to this original summary only, not to the cited sources.

Linked records

Machine-readable: JSON · Markdown · revisions · changes