NCP-OUSD study materials
NCP-OUSD study resources

NCP-OUSD: Validation, Debugging, and Troubleshooting

NCP-OUSD · Work through your exam, one topic at a time.

All guide sections

Validation, Debugging, and Troubleshooting

This domain asks you to find why a scene looks wrong and to ship assets that pass automated checks.

Validation

  • usdchecker runs the core compliance suite plus optional rule sets (--arkit for USDZ). It separates errors from warnings; UsdUtils.ComplianceChecker exposes the same checks in Python.
  • The core validation framework registers rules per plugin through UsdValidationRegistry and runs them from usdValidation, namespaced by keyword such as geometry, shade, or material.
  • Frequent failures: missing defaultPrim, illegal prim names (spaces, leading digits), missing kind on component assets, and unbound or unstaged materials.

Debugging composition

  • Begin with prim.GetPrimStack() and the usdview Composition tab: every opinion plus the layer that authored it.
  • layer.GetCompositionErrors() and PcpError values explain broken references, missing default prims, and cyclic arcs.
  • TF_DEBUG=USD_COMPOSITION traces how arcs resolve when a stage opens.
  • Reload rather than rebuild: layer.Reload() or stage.Reload() after a generator rewrites files on disk.
  • If composition is right but the viewport is stale, the fault is renderer invalidation, not the data.

Worked example

You author size = 5 on a referenced asset and still see 2. GetPrimStack() shows your opinion landed in a sublayer of the asset's layer stack, while the asset authors size in its own root layer, which outranks its sublayers. Fix: author the override on the referencing prim in your own layer, where it composes at Local strength.

Traps

Trusting the viewport over the prim stack; re-exporting instead of reloading a changed layer; and reading a warning-level checker result as a hard failure without checking the rule set.