{
  "$comment": "SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\nSPDX-License-Identifier: Apache-2.0",
  "schema": "scene_optimizer_operation_catalog",
  "source": "operation catalog; routing fields are mirrored in references/operations/<key>.md frontmatter",
  "operations": [
    {
      "key": "boxClip",
      "title": "Box Clip",
      "category": "transform",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "high",
      "args_count": 11,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "clip",
        "bounding-box",
        "aabb",
        "trim",
        "crop"
      ],
      "source": "scene-optimizer-core/source/operations/boxClip/BoxClip.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/boxClip.md",
      "summary": "Box Clip removes or retains geometry based on an axis-aligned bounding box (AABB) region.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "computeExtents",
      "title": "Compute Extents",
      "category": "metadata",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 1,
      "requires_mesh": true,
      "pipelines": [
        "safe-cleanup",
        "load-time-reduction",
        "data-quality-baseline"
      ],
      "keywords": [
        "extent",
        "bounding-box",
        "metadata",
        "culling"
      ],
      "source": "scene-optimizer-core/source/operations/computeExtents/ComputeExtentsPlugin.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/computeExtents.md",
      "summary": "Compute Extents calculates and authors the `extent` attribute for meshes.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "countVertices",
      "title": "Count Vertices",
      "category": "analysis",
      "loss_class": "analysis-only",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 3,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "count",
        "vertices",
        "stats",
        "analysis"
      ],
      "source": "scene-optimizer-core/source/operations/countVertices/CountVertices.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/countVertices.md",
      "summary": "Count Vertices is a hidden analysis utility that categorizes meshes by vertex count into high, very high, and extreme buckets.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "decimateMeshes",
      "title": "Decimate Meshes",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 8,
      "requires_mesh": true,
      "pipelines": [
        "mesh-count-reduction"
      ],
      "keywords": [
        "decimate",
        "polygon-count",
        "lod",
        "qem",
        "silhouette"
      ],
      "source": "scene-optimizer-core/source/operations/decimateMeshes/OmniMeshDecimate.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/decimateMeshes.md",
      "summary": "Decimate Meshes reduces polygon count while preserving mesh shape as much as possible.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "deduplicateGeometry",
      "title": "De-duplicate Geometry",
      "category": "geometry",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 9,
      "requires_mesh": true,
      "pipelines": [
        "safe-cleanup",
        "memory-reduction",
        "mesh-count-reduction"
      ],
      "keywords": [
        "dedup",
        "instancing",
        "memory",
        "mesh"
      ],
      "source": "scene-optimizer-core/source/operations/deduplicateGeometry/DeduplicateGeometry.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/deduplicateGeometry.md",
      "summary": "De-duplicate Geometry finds meshes that are geometrically identical (or near-identical) and replaces duplicates with instances of a single prototype.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "deduplicateHierarchies",
      "title": "De-duplicate Hierarchies",
      "category": "hierarchy",
      "loss_class": "lossless",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 0,
      "requires_mesh": false,
      "pipelines": [
        "memory-reduction",
        "mesh-count-reduction",
        "instancing"
      ],
      "keywords": [
        "dedup",
        "instancing",
        "hierarchy",
        "prototype",
        "reference"
      ],
      "source": "scene-optimizer-core/source/operations/deduplicateHierarchies/DeduplicateHierarchies.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/deduplicateHierarchies.md",
      "summary": "De-duplicate Hierarchies identifies structurally-identical sub-hierarchies and collapses them into shared prototypes with instanceable references at each original site.",
      "since_version": "2026-04-17T00:00:00Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "deleteHiddenPrims",
      "title": "Delete Hidden Prims",
      "category": "hierarchy",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 0,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "delete",
        "hidden",
        "visibility",
        "prune"
      ],
      "source": "scene-optimizer-core/source/operations/deleteHiddenPrims/__init__.py",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/deleteHiddenPrims.md",
      "summary": "Delete Hidden Prims finds and deletes all prims that have their visibility set to `invisible`.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "deletePrims",
      "title": "Delete Prims",
      "category": "hierarchy",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "high",
      "args_count": 1,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "delete",
        "prim",
        "prune"
      ],
      "source": "scene-optimizer-core/source/operations/deletePrims/DeletePrimsPlugin.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/deletePrims.md",
      "summary": "Delete Prims is a hidden utility operation that permanently removes specified prims from the stage's edit target layer.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "diceMeshes",
      "title": "Dice Meshes",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 22,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "dice",
        "subdivide",
        "chunk",
        "tile",
        "streaming"
      ],
      "source": "scene-optimizer-core/source/operations/diceMeshes/DiceMeshes.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/diceMeshes.md",
      "summary": "Dice Meshes cuts meshes into smaller pieces along a 3D grid \u2014 like slicing a block of cheese with a wire grid.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "editStageMetrics",
      "title": "Edit Stage Metrics",
      "category": "metadata",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 4,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "stage",
        "metrics",
        "metersPerUnit",
        "upAxis",
        "metadata"
      ],
      "source": "scene-optimizer-core/source/operations/editStageMetrics/EditStageMetrics.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/editStageMetrics.md",
      "summary": "Edit Stage Metrics modifies a stage's global metrics \u2014 up axis and linear units.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "findCoincidingGeometry",
      "title": "Find Coinciding Geometry",
      "category": "analysis",
      "loss_class": "analysis-only",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 4,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "find",
        "coinciding",
        "overlap",
        "analysis"
      ],
      "source": "scene-optimizer-core/source/operations/findCoincidingGeometry/FindCoincidingGeometry.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/findCoincidingGeometry.md",
      "summary": "Find Coinciding Geometry detects meshes that occupy the same space \u2014 overlapping or near-identical geometry that causes z-fighting and wasted rendering.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "findFlatHierarchies",
      "title": "Find Flat Hierarchies",
      "category": "analysis",
      "loss_class": "analysis-only",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 3,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "find",
        "hierarchy",
        "flat",
        "analysis"
      ],
      "source": "scene-optimizer-core/source/operations/findFlatHierarchies/FindFlatHierarchiesOperation.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/findFlatHierarchies.md",
      "summary": "Find Flat Hierarchies identifies prims with an excessively large number of children \u2014 \"flat\" hierarchy patterns where a single prim has hundreds or thousands of direct children.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
  "key": "findOccludedMeshes",
      "title": "Find Occluded Meshes",
      "category": "analysis",
      "loss_class": "analysis-only",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 7,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "find",
        "occluded",
        "interior",
        "hidden",
        "analysis",
        "internal",
        "enclosed"
      ],
      "source": "scene-optimizer-core/source/operations/findOccludedMeshes/FindOccludedMeshes.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/findOccludedMeshes.md",
      "summary": "Find Occluded Meshes detects geometry that is completely hidden inside other geometry and therefore never visible.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "findOverlappingMeshes",
      "title": "Find Overlapping Meshes",
      "category": "analysis",
      "loss_class": "analysis-only",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 4,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "find",
        "overlap",
        "intersect",
        "analysis"
      ],
      "source": "scene-optimizer-core/source/operations/findOverlappingMeshes/FindOverlappingMeshesOperation.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/findOverlappingMeshes.md",
      "summary": "Find Overlapping Meshes detects interfering geometry \u2014 meshes whose surfaces intersect or penetrate each other.",
      "since_version": "2026-05-08T22:40:32Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "fitPrimitives",
      "title": "Fit Primitives",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "high",
      "args_count": 20,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "fit",
        "primitive",
        "cube",
        "sphere",
        "cylinder",
        "approximate"
      ],
      "source": "scene-optimizer-core/source/operations/fitPrimitives/Primitive.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/fitPrimitives.md",
      "summary": "Fit Primitives analyzes meshes and replaces them with simpler geometric primitives (spheres, cylinders, cones, cubes) when the mesh closely matches one of those shapes.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "flattenHierarchy",
      "title": "Flatten Hierarchy",
      "category": "hierarchy",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "medium",
      "args_count": 2,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "flatten",
        "hierarchy",
        "scenegraph"
      ],
      "source": "scene-optimizer-core/source/operations/flattenHierarchy/FlattenHierarchy.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/flattenHierarchy.md",
      "summary": "Flatten Hierarchy removes redundant Xform prims from a stage's hierarchy, reducing prim count.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "generateAtlasUVs",
      "title": "generateAtlasUVs",
      "category": "uv",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "medium",
      "args_count": 7,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "uv",
        "atlas",
        "unwrap",
        "texture"
      ],
      "source": "scene-optimizer-core/source/operations/generateAtlasUVs/GenerateAtlasUVs.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/generateAtlasUVs.md",
      "summary": "Auto UV Unwrap generates texture coordinates (UVs) by unfolding mesh surfaces into 2D.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "generateNormals",
      "title": "Generate Normals",
      "category": "geometry",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 6,
      "requires_mesh": true,
      "pipelines": [
        "data-quality-baseline"
      ],
      "keywords": [
        "normals",
        "shading",
        "smooth",
        "regenerate"
      ],
      "source": "scene-optimizer-core/source/operations/generateNormals/GenerateNormals.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/generateNormals.md",
      "summary": "Generate Normals computes and authors vertex normals for meshes.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "generateProjectionUVs",
      "title": "Generate Projection UVs",
      "category": "uv",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 7,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "uv",
        "projection",
        "planar",
        "texture"
      ],
      "source": "scene-optimizer-core/source/operations/generateProjectionUVs/GenerateProjectionUVs.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/generateProjectionUVs.md",
      "summary": "Generate Projection UVs creates texture coordinates by projecting them onto meshes using one of several projection methods (planar, cylindrical, spherical, cubic, or triplanar).",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "generateScene",
      "title": "Generate Scene",
      "category": "utility",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 12,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "generate",
        "scene",
        "synthetic",
        "test",
        "demo"
      ],
      "source": "scene-optimizer-core/source/operations/generateScene/GenerateScene.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/generateScene.md",
      "summary": "Generate Scene creates synthetic test scenes by procedurally placing meshes in a layout.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "manifoldMeshes",
      "title": "Manifold Meshes",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 1,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "manifold",
        "watertight",
        "close-holes",
        "topology"
      ],
      "source": "scene-optimizer-core/source/operations/manifoldMeshes/Manifold.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/manifoldMeshes.md",
      "summary": "**Legacy command \u2014 use `meshCleanup` with `makeManifold: true` instead.** This operation exists for backward compatibility.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "merge",
      "title": "Merge Static Meshes",
      "category": "transform",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "high",
      "args_count": 14,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "merge",
        "combine",
        "consolidate",
        "instancing-conflict"
      ],
      "source": "scene-optimizer-core/source/operations/merge/Merge.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/merge.md",
      "summary": "Merge Static Meshes combines multiple meshes that share common properties into single merged meshes.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "mergeVertices",
      "title": "Merge Vertices",
      "category": "geometry",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 5,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "weld",
        "merge",
        "vertices",
        "tolerance"
      ],
      "source": "scene-optimizer-core/source/operations/mergeVertices/MergeVertices.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/mergeVertices.md",
      "summary": "**Legacy command \u2014 use `meshCleanup` instead.** This operation exists for backward compatibility.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "meshCleanup",
      "title": "Mesh Cleanup",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "low",
      "args_count": 11,
      "requires_mesh": true,
      "pipelines": [
        "mesh-count-reduction",
        "data-quality-baseline"
      ],
      "keywords": [
        "cleanup",
        "degenerate",
        "isolated",
        "topology",
        "fix"
      ],
      "source": "scene-optimizer-core/source/operations/meshCleanup/MeshCleanup.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/meshCleanup.md",
      "summary": "Mesh Cleanup performs a suite of mesh repair operations to fix common topological defects.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "optimizeMaterials",
      "title": "Optimize Materials",
      "category": "materials",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 4,
      "requires_mesh": false,
      "pipelines": [
        "safe-cleanup",
        "memory-reduction",
        "load-time-reduction"
      ],
      "keywords": [
        "materials",
        "shader",
        "dedup",
        "consolidate"
      ],
      "source": "scene-optimizer-core/source/operations/optimizeMaterials/OptimizeMaterials.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/optimizeMaterials.md",
      "summary": "Optimize Materials reduces the number of materials in a scene by deduplicating identical materials and consolidating similar ones.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "optimizePrimvars",
      "title": "Optimize Primvars",
      "category": "metadata",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 6,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "primvars",
        "interpolation",
        "constant",
        "compress"
      ],
      "source": "scene-optimizer-core/source/operations/optimizePrimvars/OptimizePrimvars.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/optimizePrimvars.md",
      "summary": "Optimize Primvars reduces memory usage by optimizing how primvar (per-vertex/per-face attributes like UVs, colors) data is stored.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "optimizeSkelRoots",
      "title": "Optimize Skeleton Roots",
      "category": "hierarchy",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 0,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "skeleton",
        "skelroot",
        "rigging",
        "animation"
      ],
      "source": "scene-optimizer-core/source/operations/optimizeSkelRoots/OptimizeSkelRoots.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/optimizeSkelRoots.md",
      "summary": "Optimize Skeleton Roots merges all skinned meshes within each UsdSkelRoot to improve GPU skinning performance.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "optimizeTimeSamples",
      "title": "Optimize Time Samples",
      "category": "metadata",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 6,
      "requires_mesh": false,
      "pipelines": [
        "safe-cleanup",
        "load-time-reduction"
      ],
      "keywords": [
        "time-samples",
        "animation",
        "compress",
        "constant"
      ],
      "source": "scene-optimizer-core/source/operations/optimizeTimeSamples/OptimizeTimeSamples.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/optimizeTimeSamples.md",
      "summary": "Optimize Time Samples removes redundant time samples from animated attributes.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "organizePrototypes",
      "title": "Organize Prototypes",
      "category": "hierarchy",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 2,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "prototypes",
        "instanceable",
        "organize",
        "scenegraph"
      ],
      "source": "scene-optimizer-core/source/operations/organizePrototypes/OrganizePrototypes.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/organizePrototypes.md",
      "summary": "Organize Prototypes moves internal scene-graph instance prototypes under a user-specified namespace (class prim).",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "pivot",
      "title": "Compute Pivot",
      "category": "transform",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 4,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "pivot",
        "transform",
        "origin",
        "xform"
      ],
      "source": "scene-optimizer-core/source/operations/pivot/Pivot.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/pivot.md",
      "summary": "Compute Pivot recalculates and sets pivot points (transform origins) for meshes or transforms.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "primitivesToMeshes",
      "title": "Primitives to Meshes",
      "category": "geometry",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 13,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "primitive",
        "convert",
        "tessellate",
        "mesh"
      ],
      "source": "scene-optimizer-core/source/operations/primitivesToMeshes/PrimitiveToMesh.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/primitivesToMeshes.md",
      "summary": "Primitives to Meshes converts USD geometric primitives (UsdGeomSphere, UsdGeomCylinder, UsdGeomCone, UsdGeomCube) into polygon mesh representations.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "printStats",
      "title": "Print Stats",
      "category": "analysis",
      "loss_class": "analysis-only",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 3,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "stats",
        "print",
        "report",
        "analysis"
      ],
      "source": "scene-optimizer-core/source/operations/printStats/PrintStats.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/printStats.md",
      "summary": "Print Stats is a hidden diagnostic operation that outputs scene statistics including prim counts, mesh counts, vertex/face totals, and optionally primvar and timing information.",
      "since_version": "2026-05-08T22:40:32Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "pruneLeaves",
      "title": "Prune Leaves",
      "category": "hierarchy",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 3,
      "requires_mesh": false,
      "pipelines": [
        "safe-cleanup",
        "memory-reduction",
        "load-time-reduction"
      ],
      "keywords": [
        "prune",
        "empty",
        "leaves",
        "cleanup"
      ],
      "source": "scene-optimizer-core/source/operations/pruneLeaves/PruneLeaves.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/pruneLeaves.md",
      "summary": "Prune Leaves finds and removes leaf grouping primitives \u2014 Xforms and Scopes that contain no meaningful children (or only other empty groups).",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "pythonScript",
      "title": "Python Script",
      "category": "utility",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "high",
      "args_count": 1,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "python",
        "script",
        "custom",
        "user-code"
      ],
      "source": "scene-optimizer-core/source/operations/pythonScript/__init__.py",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/pythonScript.md",
      "summary": "Python Script executes a user-defined Python script as a Scene Optimizer operation.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "remeshMeshes",
      "title": "Remesh Meshes",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "high",
      "args_count": 4,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "remesh",
        "retopology",
        "uniform",
        "regenerate"
      ],
      "source": "scene-optimizer-core/source/operations/remeshMeshes/Remesh.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/remeshMeshes.md",
      "summary": "Remesh Meshes regenerates mesh topology to create a more uniform triangle distribution while preserving the original shape.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "removeAttributes",
      "title": "Remove Attributes",
      "category": "metadata",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 3,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "remove",
        "attribute",
        "metadata",
        "cleanup"
      ],
      "source": "scene-optimizer-core/source/operations/removeAttributes/RemoveAttributes.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/removeAttributes.md",
      "summary": "Remove Attributes removes or blocks specified attributes from prims.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "removePrims",
      "title": "Remove Prims",
      "category": "hierarchy",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "high",
      "args_count": 8,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "remove",
        "prim",
        "filter",
        "delete"
      ],
      "source": "scene-optimizer-core/source/operations/removePrims/RemovePrimsPlugin.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/removePrims.md",
      "summary": "Remove Prims identifies and removes invisible prims and orphaned overs from a USD stage.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "removeSmallGeometry",
      "title": "Remove Small Geometry",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 4,
      "requires_mesh": true,
      "pipelines": [
        "mesh-count-reduction"
      ],
      "keywords": [
        "remove",
        "small",
        "screen-space",
        "lod",
        "cleanup"
      ],
      "source": "scene-optimizer-core/source/operations/removeSmallGeometry/RemoveSmallGeometry.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/removeSmallGeometry.md",
      "summary": "Remove Small Geometry finds and removes meshes that are below a size threshold.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "removeUntypedPrims",
      "title": "Remove Untyped Prims",
      "category": "hierarchy",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "low",
      "args_count": 0,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "remove",
        "untyped",
        "scope",
        "cleanup"
      ],
      "source": "scene-optimizer-core/source/operations/removeUntypedPrims/__init__.py",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/removeUntypedPrims.md",
      "summary": "Remove Untyped Prims deletes prims that have no USD schema type.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "removeUnusedUVs",
      "title": "Remove Unused UVs",
      "category": "uv",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 3,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "uv",
        "unused",
        "remove",
        "cleanup"
      ],
      "source": "scene-optimizer-core/source/operations/removeUnusedUVs/RemoveUnusedUVs.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/removeUnusedUVs.md",
      "summary": "Remove Unused UVs finds and removes texture coordinate (UV) attributes that are not referenced by any bound material.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "rtxMeshCount",
      "title": "RTX Mesh Count",
      "category": "analysis",
      "loss_class": "analysis-only",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 1,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "rtx",
        "mesh-count",
        "raytracing",
        "stats"
      ],
      "source": "scene-optimizer-core/source/operations/rtxMeshCount/RtxMeshCount.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/rtxMeshCount.md",
      "summary": "RTX Mesh Count is a hidden analysis operation that counts the number of RTX acceleration structures, RTX meshes, and unique RTX meshes in the scene.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "shrinkwrap",
      "title": "Shrinkwrap",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "high",
      "args_count": 7,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "shrinkwrap",
        "wrap",
        "proxy",
        "lod"
      ],
      "source": "scene-optimizer-core/source/operations/shrinkwrap/Shrinkwrap.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/shrinkwrap.md",
      "summary": "Shrinkwrap converts a polygon soup into a bounding watertight mesh, with controllable mechanisms to generate loose and tight surface proxies.",
      "since_version": "2026-03-05T22:02:49Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "sparseMeshes",
      "title": "Sparse Meshes",
      "category": "geometry",
      "loss_class": "bounded-loss",
      "requires_confirmation": true,
      "risk_class": "medium",
      "args_count": 0,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "sparse",
        "decimate",
        "reduce",
        "geometry"
      ],
      "source": "scene-optimizer-core/source/operations/sparseMeshes/SparseMeshes.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/sparseMeshes.md",
      "summary": "Sparse Meshes is a hidden analysis operation that identifies meshes with poor spatial density \u2014 geometry that occupies a large bounding box relative to its actual surface area.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "splitMeshes",
      "title": "Split Meshes",
      "category": "geometry",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 16,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "split",
        "partition",
        "chunk",
        "geometry"
      ],
      "source": "scene-optimizer-core/source/operations/splitMeshes/SplitMeshes.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/splitMeshes.md",
      "summary": "Split Meshes breaks meshes into smaller pieces based on geometric connectivity or spatial clustering.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "subdivideMeshes",
      "title": "Subdivide Meshes",
      "category": "geometry",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 5,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "subdivide",
        "tessellate",
        "smooth",
        "geometry"
      ],
      "source": "scene-optimizer-core/source/operations/subdivideMeshes/Subdivide.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/subdivideMeshes.md",
      "summary": "Subdivide Meshes increases mesh polygon density by subdividing faces.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "triangulateMeshes",
      "title": "Triangulate Meshes",
      "category": "geometry",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 2,
      "requires_mesh": true,
      "pipelines": [],
      "keywords": [
        "triangulate",
        "quad",
        "topology",
        "geometry"
      ],
      "source": "scene-optimizer-core/source/operations/triangulateMeshes/Triangulate.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/triangulateMeshes.md",
      "summary": "Triangulate Meshes converts all polygon faces to triangles.",
      "since_version": "2026-02-11T07:51:19Z",
      "requires_extension": "omni.scene.optimizer.core"
    },
    {
      "key": "utilityFunction",
      "title": "Utility Function",
      "category": "utility",
      "loss_class": "lossless",
      "requires_confirmation": false,
      "risk_class": "low",
      "args_count": 2,
      "requires_mesh": false,
      "pipelines": [],
      "keywords": [
        "utility",
        "helper",
        "internal"
      ],
      "source": "scene-optimizer-core/source/operations/utilityFunction/UtilityFunction.cpp",
      "doc": "skills/omniverse-usd-performance-tuning/references/operations/utilityFunction.md",
      "summary": "Utility Function is a container for small one-off operations that don't merit their own plugin.",
      "since_version": "2026-05-08T22:40:32Z",
      "requires_extension": "omni.scene.optimizer.core"
    }
  ]
}
