plugins/nvidia/skills/omniverse-usd-performance-tuning/SKILL.md
Top-level workflow skill for USD performance diagnosis and optimization. Use for slow loading, high memory, low FPS, or 'optimize my scene' requests; delegates auth/runtime setup to Phase 0 owners.
npx skillsauth add openai/plugins omniverse-usd-performance-tuningInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this workflow for broad performance asks such as slow loading, high memory, low FPS, GPU crashes, conversion-quality triage, or generic requests to optimize a USD scene.
ready_to_plan; reserve approval_required for prompts that explicitly name a destructive operation to execute before planning.optimization-report, preserving the structured milestone order and the profile-stage:baseline / profile-stage:after labels when listing milestones.Frontmatter keeps version and tools at top level for agentskills.io runtime
compatibility. NVCARPS discoverability fields live under metadata.
Return a plan or status summary that names the selected entry skill, uses ready_to_plan for generic optimization requests, includes the full milestone chain through optimization-report, and labels profile phases as profile-stage:baseline and profile-stage:after. For structured outputs, the broad-optimization milestone subsequence is omniverse-usd-performance-tuning -> profile-stage:baseline -> usd-structure-assessment -> usd-validation-runner -> restructure-decision -> apply-restructure -> so-run-validators -> so-interpret-validators -> so-run-operations -> profile-stage:after -> compare-profiles -> optimization-report. End-to-end execution should produce an optimized stage when mutation runs and a report conforming to the optimization-report reference's schema (scripts/optimization-report.schema.json within that reference).
Use this workflow for broad performance asks such as slow loading, low FPS, high memory, GPU crashes, conversion quality, or "optimize my scene."
This skill is the named entry point for broad performance work whenever the
agent has any verified way to do that work. Runtime probing details live in
setup-usd-performance-tuning; this rule only decides which skill owns the
user-facing performance request.
blocked_code
(blocked_missing_scene_optimizer, blocked_missing_so_operation, etc.)
instead of substituting another workflow.setup-usd-performance-tuning only when no runtime path is
verified and runtime choice/setup is the first unresolved problem.omniverse:// assets, enter at omniverse-authentication first.
Authentication precedes setup and triage for remote assets.The decision is about ownership, not order. Setup, authentication, and triage all run in their normal phase order; this rule only fixes which skill the agent names as the entry skill in its response.
Before any other tuning output, follow the mandatory session-start gate in
skills/omniverse-usd-performance-tuning/references/setup-usd-performance-tuning/references/runtime-context-header.md.
That reference owns output_path, the canonical setup-preflight.json
location, Format A/Format B, and the "do not improvise a silent probe"
anti-pattern.
Required outcomes:
setup-usd-performance-tuning.[Kit: {runtime_context.kit.application} {runtime_context.kit.version} | SO: {runtime_context.sceneOptimizer.version} | AV: {runtime_context.assetValidator.version}]
Before reading Kit logs, Asset Validator CSVs, Scene Optimizer logs, Tracy CSVs,
or other runtime output, follow
references/runtime-artifact-token-budget.md. Keep raw artifacts on disk, read
summary JSON first, and use bounded log snapshots instead of full dumps or live
streams.
approval_required at planning time is reserved for requests that explicitly name a destructive operation. Use the following rule when deciding between ready_to_plan and approval_required:
approval_required at planning time — the user's request itself names a destructive operation: "flatten this stage", "decimate the meshes", "merge prototypes", "delete unused prims", or any specific named mutation that cannot be undone within the same workflow. In this case the agent's first response must be an approval prompt that names the operation, before the agent commits to a plan that executes it.ready_to_plan at planning time — the user's request is general: "optimize this scene", "make it load faster", "reduce GPU memory", "improve interactivity". The agent lays out the full plan, including any destructive operations the plan would invoke (for example so-run-operations with mergeMaterials), without withholding the plan itself. Approval for each destructive operation is requested alongside plan approval.The distinction is between authorising a plan and authorising a destructive action. A general optimisation request authorises planning; it does not authorise execution of specific destructive operations.
For structured runtime-test responses and similar planning summaries:
restructure-decision prompt is a planned user-decision gate, not a reason to set the top-level response decision to approval_required for a generic optimization request.decision: "ready_to_plan" and include the full intended chain in both committed_milestones and planned_phases, through optimization-report.gates_observed to include asks_user_for_restructure_decision while the top-level decision remains ready_to_plan.profile-stage:baseline and profile-stage:after; do not emit the ambiguous bare profile-stage token.omniverse-usd-performance-tuning as the owning entry skill. Include setup-usd-performance-tuning only as additional Phase 0 context, not as a replacement for the entry skill milestone.so-run-validators or so-interpret-validators before restructure-decision in broad optimization milestone summaries. Phase-aware validator routing still happens through usd-validation-runner; the SO validator executor/interpreter milestones appear after the restructure decision path in the structured plan contract.End-to-end optimization work should produce both an optimized USD stage, when
mutation is executed, and a structured optimization report conforming to
the optimization-report reference's scripts/optimization-report.schema.json. The HTML report must be rendered
from references/report-templates/optimization-report.html.template via
render_preview.py — never hand-write HTML. Diagnosis-only work should still
end with a report or summary that states no optimized stage was written.
Route digital twin USD performance requests into the right diagnostic and optimization workflow while preserving evidence before mutation.
setup-usd-performance-tuning when not already known.Runtime gate. Follow the mandatory session-start gate above before
validation, profiling, or optimization. Do not scan, probe, install, or pick
Kit/standalone runtimes directly in this skill; setup-usd-performance-tuning
owns probe/chooser/install dispatch and writes the preflight consumed here.
Identify the target problem:
Gather minimum context:
omniverse:// remote. For remote
assets, route through omniverse-authentication before first open.Route:
usd-structure-assessment (composition is now part of the SA umbrella; deeper detail in skills/omniverse-usd-performance-tuning/references/usd-structure-assessment/references/composition-audit.md).usd-validation-runner (master router; routes to validate-* family or so-run-validators based on intent).usd-edit-target-planner (also owns variant/payload gates).usd-hierarchy-dedupe-candidates.restructure-decision.references/cad-conversion/README.md (niche pre-USD concern; see reference for details).so-run-validators, so-interpret-validators, so-run-operations.Follow the canonical ordering in workflow.md § Operation ordering invariants. The high-level rule: prototypes first → per-asset validation → stage-level operations last. The workflow reference owns the full invariant list (meshCleanup before decimateMeshes, deduplication before decimation, never merge if instanced, etc.) and the analysis-only ops catalogue.
references/operations/_curation.json classifies every op
as canonical, specialty, analysis, documentary, or deprecated.
When more than one op could resolve the same finding, recommend the
canonical one first and only reach for a specialty op when the user
explicitly asks or the rationale warrants it. Specifically:
meshCleanup with explicit flags
over the standalone mergeVertices op. The standalone op is a
legacy/specialty surface; use upstream usd-optimize for the operation
mechanics and local approval policy before mutating.usd-hierarchy-dedupe-candidates +
apply-restructure (the USD-authored rewrite path).deduplicateGeometry (canonical) over
findCoincidingGeometry (analysis — produces a report, not a change).documentary-status ops (e.g., boxClip,
deletePrims, removeAttributes, removeUntypedPrims,
merge outside its narrow non-instanced case) without an explicit
user request. Documentary ops survive in the per-op
references/operations/<key>.md routing stubs for completeness but are
excluded from agent-initiated recommendations.specialty in
_curation.json either (a) have validator-finding evidence that
wires them into the so-interpret-validators chain (e.g.
sparseMeshes, optimizePrimvars), or (b) are load-bearing escape
hatches needed for specific downstream contexts (e.g.
primitivesToMeshes when output must be UsdGeomMesh,
utilityFunction for instancing toggles and material rebinding,
pythonScript for so-create-proxy recipes). Recommend specialty
ops when their validator fires OR when their downstream context
applies — the suppression above only targets documentary ops.setup-usd-performance-tuning before profiling or validation.Before routing, read:
skills/omniverse-usd-performance-tuning/references/usd-structure-assessment/references/optimization-tradeoffs.md — identify which pipeline phase the scene is in (extraction, structuring, or optimization). The right action depends on the phase.skills/omniverse-usd-performance-tuning/references/usd-structure-assessment/references/factory-level-structuring.md — understand the three pillars (assets, aggregation, animation) and the seven-step structuring pattern.If you have network access, prefer the live URLs (noted in each reference file) for the most current version.
Read references/workflow.md for the canonical Phase 0-7 flow, including
Kit/standalone branches, validator-stack routing, operation ordering,
termination conditions, duration hints, and the optional iteration pattern.
The compact root map at references/skill-map.md only routes agents
into this workflow.
Do not treat downstream phase names as plain checklist labels. Before executing
each step, load that phase's nested README.md reference and follow its
instructions. Claude Code only exposes the public catalog skill; it does not
recursively inject profile-stage, usd-structure-assessment, or other nested
references.
The final deliverable must come from optimization-report: save both the structured JSON report and the generated Markdown summary. Do not substitute an ad hoc SUMMARY.md or chat-only recap for the optimization report.
For deeper subtopic guidance, consult the references:
skills/omniverse-usd-performance-tuning/references/usd-structure-assessment/references/composition-audit.md, skills/omniverse-usd-performance-tuning/references/usd-structure-assessment/references/layer-health.md - subtopic detail for SA's Phase 1 checklist.skills/omniverse-usd-performance-tuning/references/usd-structure-assessment/references/instancing-readiness/references/instancing-tradeoffs.md - merge safety, decision tree for instancing choices.skills/omniverse-usd-performance-tuning/references/usd-structure-assessment/references/usd-edit-target-planner/references/variants-payloads.md - deeper variant/payload trade-offs (gates are inline in usd-edit-target-planner).references/cad-conversion/README.md - CAD converter settings.references/upstreams/usd-optimize.md - upstream SO mechanics and prebuilt package resolution.skills/omniverse-usd-performance-tuning/references/usd-validation-runner/references/so-run-validators/references/infrastructure.md - local handoff for SO validator infrastructure.skills/omniverse-usd-performance-tuning/references/usd-validation-runner/references/validation-scoping.md - tier 1/2/3 plan + scene-aware adjustment.skills/omniverse-usd-performance-tuning/references/optimization-report/references/optimization-report-template.md - the data contract every phase populates.For full Kit runtime profiling (FPS, frame time, Hydra/RTX metrics), refer to the external profiling skills at NVIDIA/omniperf.
data-ai
Use when the user mentions MagicPath, designs, UI components, themes, canvas selections, or repo-to-canvas UI work; run magicpath-ai to search, inspect, install, or author components.
documentation
Use as the top-level router for Omniverse Realtime Viewer USD app requests and focused viewer reference documents.
tools
Turn Notion specs into implementation plans, tasks, and progress tracking; use when implementing PRDs/feature specs and creating Notion plans + tasks from them.
testing
Research across Notion and synthesize into structured documentation; use when gathering info from multiple Notion sources to produce briefs, comparisons, or reports with citations.