AuthorshipAPI

Provides a standardized record of authorship for a prim.

Each record describes one authoring step, such as a generative AI run, an export from a DCC, or a manual cleanup session. A prim can carry its full history of contributors, provided that each step is recorded with a unique-to-the-prim schema instance name.

The schema may also be applied to any of a prim’s ancestors. Authorship aggregates down the namespace hierarchy. A prim’s own records add to, rather than override, its ancestors’ records.

Note that this record is considered unverified. It is not treated as any sort of cryptographic signature, and the copyrightOwner attribute represents a claim, but not a legal guarantee.

Properties

contact

USD type: string[]

Contact information for inquiries about this asset, such as an email address, support URL, or licensing page.

copyrightOwner

USD type: string[]

Entities holding copyright in this content, which may differ from creator (e.g., a studio owning an artist’s work). Corresponds to xmpRights:Owner.

created

USD type: string

An ISO 8601 timestamp indicating when this authoring step occurred (e.g., 2025-02-16T12:03:17+01:00), which may differ from the original creation time of the asset.

creator

USD type: string[]

Human-readable names of the artists, studios, or services that contributed to this authoring step. Intended for display. Corresponds to dc:creator.

description

USD type: string

Free-form description of how the prim was created. Better suited to technique notes, reference material, or history. For specific, itemized inputs, prefer inputs instead.

digitalSourceType

USD type: string

A URI describing the nature of the creative process, such as whether the content is human-made or AI-generated.

The IPTC Digital Source Type vocabulary is recommended (e.g., trainedAlgorithmicMedia). Tools evaluating AI content should check this field across the prim’s accumulated ancestry and default to assuming non-AI generation if an AI source type is absent.

inputs

USD type: string[]

The inputs that shaped this authoring step, as flattened (name, value) pairs. For example, ["prompt", "A fluffy bunny", "seed", "1234567"]. Not specific to generative AI; a human authoring step can record its reference art, schematics, or design specs the same way.

The array length must be a multiple of 2; an odd length makes the record malformed. Values are plain strings rather than asset paths so that reference images or local files aren’t resolved or packaged with the asset.

instanceID

USD type: string

A unique identifier for this run’s output, such as a single generative AI result. A UUID4 is recommended. Do not encode personal author information.

Unrelated to USD native instancing and unrelated to this schema’s applied instance name.

Identifies an output, not a reproducible recipe; identical inputs do not guarantee identical results. Uniqueness is not guaranteed across external pipelines. Named after xmpMM:InstanceID but identifies an authoring step’s output (which may span several prims) rather than a single resource rendition. Not directly equivalent when round-tripping.

softwarePackage

USD type: string

The tool or system that most directly wrote the USD data for this prim. Must be a tool or system (e.g., org.blender), not a person; human contributors belong in creator. If an AI model runs inside a host application, name the model itself. If someone authored the data directly with the OpenUSD API in an unnamed script, the softwarePackage would be OpenUSD.

Reverse domain notation is recommended (e.g., com.example.mymodel) to minimize name conflicts. Values are unvalidated and compared case-insensitively.

softwareVersion

USD type: string

The version of the softwarePackage that created this record, not the version of the asset. If a hosted service provides no stable version, use the provided build label or hash, and rely on created to pin down the iteration’s ordering.

usageTerms

USD type: string

The license or usage terms for this asset. SPDX identifiers are preferred (e.g., CC-BY-4.0 or MIT) to allow programmatic evaluation. Otherwise, provide a URL to the license text, or the full text as a fallback. If unauthored, no specific license or rights should be assumed. Corresponds to xmpRights:UsageTerms.