Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/scripts/marketplace/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -2787,7 +2787,7 @@
{
"path": "skills/omniverse-usd-performance-tuning",
"name": "omniverse-usd-performance-tuning",
"description": "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.",
"description": "Top-level workflow skill for USD performance diagnosis and optimization. Handles slow loading, high memory, low FPS, and broad scene-optimization requests; delegates auth/runtime setup to Phase 0 owners.",
"metadata": {
"product.primary": "Omniverse",
"classification.category.primary": "physical_ai",
Expand Down
10 changes: 5 additions & 5 deletions benchmarks.json
Original file line number Diff line number Diff line change
Expand Up @@ -3967,13 +3967,13 @@
},
{
"skill": "omniverse-usd-performance-tuning",
"evaluation_date": "2026-05-29",
"profile": "external",
"environment": null,
"evaluation_date": "2026-07-30",
"profile": null,
"environment": "k8s-sandbox",
"tasks": null,
"attempts_per_task": null,
"attempts_per_task": 1,
"pass_threshold_pct": null,
"verdict": "FAIL",
"verdict": "PASS",
"agents": [],
"catalog_dir": "omniverse-usd-performance-tuning",
"component": "Physical AI",
Expand Down
278 changes: 94 additions & 184 deletions skills/omniverse-usd-performance-tuning/BENCHMARK.md

Large diffs are not rendered by default.

312 changes: 101 additions & 211 deletions skills/omniverse-usd-performance-tuning/SKILL.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
interface:
display_name: "USD Performance Tuning"
short_description: "Diagnose and optimize OpenUSD scene performance"
default_prompt: "Use $omniverse-usd-performance-tuning to diagnose and optimize a USD stage: confirm runtime context, capture baseline evidence, assess structure, route validation, run approved Scene Optimizer work, compare results, and produce the final optimization report."
default_prompt: "Use $omniverse-usd-performance-tuning to diagnose and optimize a USD stage: confirm runtime context, capture baseline evidence, assess structure, route validation, run approved Usd Optimize work, compare results, and produce the final optimization report."
243 changes: 115 additions & 128 deletions skills/omniverse-usd-performance-tuning/evals/evals.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Standard Instructions

1. Confirm the target asset, artifact, or user intent and check the prerequisites listed below.
2. Read only the referenced files needed for the current phase, failure mode, or output contract.
3. Follow the workflow, rules, and safety gates in this reference before invoking downstream references or shell commands.
4. Return the result using the Output Format section and name any blocked prerequisite or unresolved user decision.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Standard Output Format

Return a concise status or report that names the input, selected runtime or evidence source, actions planned or performed, artifacts written, blockers, and the next validation or user-decision step. When a schema or template is referenced below, conform to that contract.
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
<!-- SPDX-License-Identifier: Apache-2.0 -->

# CAD-to-USD Conversion Advisor

> CAD conversion is a pre-USD concern; `omniverse-usd-performance-tuning` cites this reference when the user reports `problem_type = conversion quality`.
Expand Down Expand Up @@ -42,7 +39,7 @@ Guide CAD-to-USD conversion diagnosis before optimization. Capture the source fo

## Limitations

- Does not execute conversion or Scene Optimizer operations.
- Does not execute conversion or Usd Optimize operations.
- Cannot guarantee a tessellation knob exists for every source format or backend.
- Post-conversion performance issues still need composition audit and validation.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ agent_next:
freshness: 2026-05-20
version: "0.1.0"
---
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
<!-- SPDX-License-Identifier: Apache-2.0 -->

# Compare Profiles Contract

Expand All @@ -18,13 +16,10 @@ workflow reference remains

## Required Inputs

- A baseline `profile-stage` JSON capture.
- An after/optimized `profile-stage` JSON capture.
- Matching profile mode: quick vs quick or full vs full.
- Same hardware and runtime for full-mode comparisons unless the user
explicitly accepts cross-runtime comparison.
- The operation chain, restructure step, or validation-driven fix applied
between the two captures.
See [compare-profiles/README.md Β§ Required Inputs](compare-profiles/README.md#required-inputs)
for the authoritative input list (paired baseline/after `profile-stage` JSON,
matching mode, same hardware/runtime for full mode, and the change applied
between captures).

## Verdict Thresholds

Expand Down Expand Up @@ -58,8 +53,6 @@ terminal optimization report.

## Regression Handling

When a metric regresses by more than 5%, name the metric, quantify the change,
and correlate it with what changed. File-size growth after Scene Optimizer
operations may indicate USDC save behavior. Prim-count growth after instancing
can be acceptable when instances compensate for added prototypes. Steady-state
frame regressions are more serious than one-time startup regressions.
See [compare-profiles/README.md Β§ Regression handling](compare-profiles/README.md#regression-handling)
for the authoritative regression-handling steps (name the metric and quantify the
change, correlate with what changed, check known causes, and decide keep/revert/adjust).
Original file line number Diff line number Diff line change
@@ -1,31 +1,25 @@
# Compare Profiles

<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
<!-- SPDX-License-Identifier: Apache-2.0 -->

## When to Use

Use when comparing matching baseline/after profiles; do not use without paired profile-stage JSON.

## Instructions

1. Confirm the target asset, artifact, or user intent and check the prerequisites listed below.
2. Read only the referenced files needed for the current phase, failure mode, or output contract.
3. Follow the workflow, rules, and safety gates in this reference before invoking downstream references or shell commands.
4. Return the result using the Output Format section and name any blocked prerequisite or unresolved user decision.

See `references/_shared/standard-instructions.md`.

## Pre-flight Checklist

Before computing the comparison verdict, re-read and confirm:

- [ ] Verdict thresholds β€” see the Verdict Thresholds section in this file
- [ ] Verdict thresholds β€” see
[compare-profiles.md Β§ Verdict Thresholds](../compare-profiles.md#verdict-thresholds)
for improvement/regression bands.
- [ ] `runtime-artifact-token-budget.md` β€” don't dump raw profile data.
- [ ] Both baseline and after profiles used same measurement method.
## Output Format

Return a concise status or report that names the input, selected runtime or evidence source, actions planned or performed, artifacts written, blockers, and the next validation or user-decision step. When a schema or template is referenced below, conform to that contract.
See `references/_shared/standard-output-format.md`.

Use this reference after running `profile-stage` both before and after optimization.
It compares the two result sets and reports whether the changes helped, hurt,
Expand All @@ -36,13 +30,13 @@ or had no measurable effect.
Before reporting the verdict, prepend the **compact one-liner** from
`skills/omniverse-usd-performance-tuning/references/setup-usd-performance-tuning/references/runtime-context-header.md` (Format B). The verdict is only
reproducible against the runtime that produced it; users reading the verdict
later need to know which Kit / Scene Optimizer / Asset Validator versions
later need to know which Kit / Usd Optimize / usd-validation-nvidia versions
were in effect. Read from the `runtime_context` block in
`<output_path>/setup-preflight.json` (canonical location; see
`skills/omniverse-usd-performance-tuning/references/setup-usd-performance-tuning/references/runtime-context-header.md` *Where artifacts live*).

```
[Kit: {runtime_context.kit.application} {runtime_context.kit.version} | SO: {runtime_context.sceneOptimizer.version} | AV: {runtime_context.assetValidator.version}]
[Kit: {runtime_context.kit.application} {runtime_context.kit.version} | SO: {runtime_context.usdOptimize.version} | AV: {runtime_context.assetValidator.version}]
```

If a profile capture spans more than one runtime (rare β€” usually means the
Expand All @@ -56,26 +50,28 @@ the comparison output regardless.
Quantify before/after performance deltas, classify improvements and
regressions, and produce an evidence-backed verdict for the optimization flow.

## Prerequisites
## Required Inputs

- Baseline and optimized JSON results from `profile-stage`.
- Matching profile mode: quick vs quick or full vs full.
- Same hardware and runtime environment for full mode comparisons.
- Knowledge of the operations applied between the two captures.
This is the authoritative input list for `compare-profiles`; the docs-class
[compare-profiles.md](../compare-profiles.md#required-inputs) points here.

## Examples
Two profile results (JSON from `profile-stage`):

- "Compare these quick profile JSON files and flag regressions."
- "Did the optimized Kit trace improve runtime frame cost?"
- `baseline` β€” captured before optimization.
- `optimized` (after) β€” captured after optimization.

## Inputs
Plus:

Two profile results (JSON from `profile-stage`):
- Matching profile mode: quick vs quick or full vs full.
- Same hardware and runtime environment for full-mode comparisons, unless the
user explicitly accepts a cross-runtime comparison.
- Knowledge of the operation chain, restructure step, or validation-driven fix
applied between the two captures.

- `baseline` β€” captured before optimization.
- `optimized` β€” captured after optimization.
## Examples

Both must use the same mode (quick or full).
- "Compare these quick profile JSON files and flag regressions."
- "Did the optimized Kit trace improve runtime frame cost?"

## Comparison metrics

Expand Down Expand Up @@ -105,10 +101,10 @@ Both must use the same mode (quick or full).

## Significance thresholds

- **Improvement:** metric improved by >5% β€” report as gain.
- **Neutral:** within Β±5% β€” report as no significant change.
- **Regression:** metric worsened by >5% β€” flag as potential problem.
- **Critical regression:** metric worsened by >20% β€” flag prominently, the optimization may have backfired.
See [compare-profiles.md Β§ Verdict Thresholds](../compare-profiles.md#verdict-thresholds)
for the canonical improvement / neutral / regression / critical-regression bands
(>5% gain, Β±5% neutral, >5% regression, >20% critical) and the "report absolute
values and percentages together" rule.

## Warm-load confidence

Expand Down Expand Up @@ -144,7 +140,7 @@ If any metric regressed >5%:
1. Report which metric regressed and by how much.
2. Correlate with what changed β€” did file size grow? Did prim count increase?
3. Check for known causes:
- Size regression after SO operations β†’ likely USDC `Layer.Save()` bloat
- Size regression after Usd Optimize operations β†’ likely USDC `Layer.Save()` bloat
(see `skills/omniverse-usd-performance-tuning/references/usd-structure-assessment/references/usd-edit-target-planner/references/output-saving.md`).
- Load time regression after adding instancing β†’ unexpected, investigate
prototype count vs instance count ratio.
Expand All @@ -163,7 +159,7 @@ omniverse-usd-performance-tuning
β†’ usd-validation-runner (master router; uses skills/omniverse-usd-performance-tuning/references/usd-validation-runner/README.md for tier detail and selected-probe policy)
β†’ restructure-decision (Phase 2e gate)
β†’ instancing-readiness (if applicable)
β†’ SO operations / instancing
β†’ Usd Optimize operations / instancing
β†’ apply-restructure (Phase 5 ref-remap)
β†’ profile-stage (AFTER)
β†’ compare-profiles
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,21 @@
# Omniverse Authentication

<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
<!-- SPDX-License-Identifier: Apache-2.0 -->

## When to Use

Use when omniverse:// assets need Kit or omni.client auth preflight. Do not use for local USD files.

## Instructions

1. Confirm the target asset, artifact, or user intent and check the prerequisites listed below.
2. Read only the referenced files needed for the current phase, failure mode, or output contract.
3. Follow the workflow, rules, and safety gates in this reference before invoking downstream references or shell commands.
4. Return the result using the Output Format section and name any blocked prerequisite or unresolved user decision.
See `references/_shared/standard-instructions.md`.

## Output Format

Return a concise status or report that names the input, selected runtime or evidence source, actions planned or performed, artifacts written, blockers, and the next validation or user-decision step. When a schema or template is referenced below, conform to that contract.
See `references/_shared/standard-output-format.md`.

## Purpose

Use this before opening `omniverse://` assets from Kit, USD Python, validators,
or Scene Optimizer operations.
or Usd Optimize operations.

Confirm the agent can access the remote stage and explain any authentication
side effects. A browser window or SSO prompt is expected on first access and is
Expand Down
Loading
Loading