Key details for this exam, checked against the published exam outline
Each question shows the correct answer and an explanation of why it is right
Which of these is a viable approach for mapping or grouping compound types from other data sources to OpenUSD?
Namespace-prefixed attributes are the correct approach for representing grouped or compound source data in OpenUSD. NVIDIA's Learn OpenUSD data extraction guidance states that when source formats contain compound or grouped data types, such as structs, records, or grouped fields, namespace-prefixed attributes provide the convention for grouping related properties together in USD. It also states that USD does not have a native struct type, so namespace-prefixed attributes serve as the standard approach for representing this kind of grouped data.
Option B is correct because attributes such as acme:sensor:temperature, acme:sensor:humidity, and acme:sensor:pressure can express ownership and logical grouping while remaining ordinary USD attributes with valid scalar or array value types. NVIDIA's custom properties lesson reinforces this pattern, explaining that namespace prefixes logically group related properties on a single prim and are especially useful when mapping structured data types from other formats into USD.
Option A is incomplete because arrays represent repeated values, not named compound fields. Option C is incorrect because USD does not provide a native struct attribute type. This aligns with Data Exchange Data Extraction, Conceptual Data Mapping, Custom Properties, Namespace-Prefixed Attributes.
Which of these is the most essential composition arc to put onto the components of a model hierarchy?
The most essential composition arc for components in a model hierarchy is the payload. NVIDIA's Learn OpenUSD glossary describes payloads as composition arcs similar to references, but with deferred loading for scalability, and specifically notes that payloads are typically added to component asset root prims for efficient scalable composition. (docs.nvidia.com)
Option A is correct because component models act as the leaf or pruning boundary of the model hierarchy. NVIDIA's model-kind guidance explains that the model hierarchy is designed to prune traversal at the component boundary, and that component models cannot contain other component models as descendants. (docs.nvidia.com) Payloads reinforce that design by allowing large component contents to remain unloaded until needed, improving stage-opening performance and enabling scalable aggregation of large scenes.
Option B is incorrect because inherits are mainly for reusable class-style opinions. Option C is useful for alternatives such as LODs or looks, but it is not the essential component-loading mechanism. Option D is a weaker composition mechanism used for specialization and fallback-style refinement. This aligns with Content Aggregation Asset Structure, Model Hierarchy, Components, Payloads, and Scalable Scene Assembly.
Which of the following are valid principles of asset structure? Choose three.
The valid asset-structure principles are Legibility, Navigability, and Modularity. NVIDIA's Learn OpenUSD asset-structure guide identifies four principles of scalable asset structure: Legibility, Modularity, Performance, and Navigability. It defines legibility as making an asset structure easy to understand and interpret, modularity as enabling flexibility and reuse, and navigability as making it easy for users to find and access the features and properties they need. (docs.nvidia.com)
Option A is correct because clear names, organization, and intent make assets easier to troubleshoot, exchange, and maintain. Option C is correct because downstream users and tools must be able to locate meaningful prims, properties, variants, payloads, and interfaces efficiently. Option D is correct because reusable modular components support parallel workstreams and scalable aggregation. Option B is incorrect because redundancy is generally discouraged; NVIDIA's modularity guidance emphasizes reuse and avoiding duplicated data. Option E is incorrect because ''compressability'' is not one of the stated principles. This aligns with Content Aggregation Asset Structure Principles Legibility, Modularity, Performance, Navigability.
Which of the following statements best describes the purpose of OpenUSD file format plugins?
OpenUSD file format plugins belong under the Data Exchange topic because they expand how USD participates in interchange workflows. Their purpose is to allow OpenUSD to read, interpret, and in some cases write data using formats beyond the native USD file types such as .usd, .usda, .usdc, and .usdz. Through these plugins, external file formats can be exposed to USD as layers and can participate in composition arcs such as references, payloads, and sublayers. This allows pipelines to integrate heterogeneous asset sources while still using USD's scene description model, composition engine, and layer-based workflows.
Option A is correct because it directly identifies the function of file format plugins: extending OpenUSD functionality for reading and writing various file formats. Option B is incorrect because visualization is only one possible downstream use of exchanged data, not the purpose of the plugin system. Option C is incorrect because translation between formats does not inherently guarantee lossless preservation of every schema, opinion, or semantic construct. Option D is incorrect because compression is not the primary role of file format plugins. This aligns with the NVIDIA OpenUSD Development Study Guide topic Data Exchange, especially file formats, connectors, and plugin-based interoperability.
Which of the following sentences are correct when converting between .usda, .usdc, .usd and .usdz files? Choose two.
Options B and C are correct. The official OpenUSD layer-format conversion tutorial states that usdcat can convert between layer formats using the -o option and an output filename with the desired extension. For example, converting text .usda to binary .usdc is performed with a command such as usdcat -o NewSphere.usdc Sphere.usda.
Option C is also correct because .usd is an extension that can hold either text or binary USD data. The same OpenUSD tutorial explains that a .usda or .usdc file can be converted to .usd without changing the underlying format by simply renaming the file; USD detects the actual format when opening it.
Option A is not correct in this context because .usdz is a package/archive format, and the OpenUSD toolset identifies usdzip, not usdcat, as the utility for creating .usdz packages containing USD assets. Option D is incorrect because renaming a text .usda file to .usdc does not convert it into USD's binary crate representation. This aligns with Data Exchange USD File Formats, usdcat, usdzip, USDA, USDC, USD, and USDZ Packaging.
If you have a Usd.Prim object named my_prim and you want to specifically retrieve an attribute named "size", which method would you typically use?
The correct method is my_prim.GetAttribute('size') because the question asks for a specific attribute, not a relationship or generic property. NVIDIA's Learn OpenUSD material defines properties as the data-bearing namespace objects on prims and distinguishes two property categories: attributes and relationships. Attributes hold typed values, while relationships point to other objects in the scene description. NVIDIA's Omniverse developer reference also states that Usd.Prim.GetAttribute() returns a Usd.Attribute, after which Usd.Attribute.Get() is used to resolve the actual authored or composed value.
Option A is therefore the precise API call. Option B is incorrect because GetRelationship() retrieves relationship properties, not value-bearing attributes. Option C is less specific: GetProperty('size') can retrieve either an attribute or relationship as a generic UsdProperty, requiring additional type handling. Option D is incorrect because primvars are accessed through schema-specific APIs such as UsdGeom.PrimvarsAPI, not directly as a general Usd.Prim method. This aligns with Pipeline Development USD Python API, Property Access, Attributes, Relationships, and Scenegraph Authoring.
Exam domains verified against: Official NVIDIA NCP-OUSD exam guide, last checked September 2026.
Author, design with, and debug composition arcs. A developer needs to know all of the composition arcs, how they work, and when and where it is appropriate to use each. Debug complex LIVERPS scenarios to resolve unexpected behaviour in composed stages.
Build modular, reusable components and leverage instancing, both native and point-based, to optimize scenes. Apply different strategies for overriding instanced assets to enable efficient and collaborative aggregation of models into large scenes.
Understand USD plugin development to extend USD's functionality, including creation of custom schemas, file format plugins, custom model kinds, and variant fallback selections. Extend USD capabilities to fit your pipeline's specific requirements.
Create conceptual data mapping documents and custom importers, exporters, and scripts for interchange of data with OpenUSD. Handle data transformation between USD and external formats used in your pipeline.
Understand Usd and Sdf data structures and data types, including prims, properties such as attributes and relationships, primvars, valueTypes like float, token, and matrix4d, and timeSamples. Know the built-in USD schemas and how to work with the data model effectively.
Sample question from this domain above: Q4
Introspect USD stages to fix unexpected or undesired composition results and identify poorly authored data. Optimize load and render times by diagnosing performance issues in stage construction and evaluation.
Perform high-level tasks important for a well-rounded OpenUSD developer or architect, including designing the pipeline, asset management, versioning, and documentation. Write USD exporter hooks to transform data into your pipeline's preferred structure and manage build configurations.
Execute tasks related to UsdGeom, UsdShade, and UsdLux USD domains such as meshes, cameras, materials, and lights. These domains are used in almost every USD use case, so developers are expected to know them well.
Common questions about the exam itself