Overview#

omni.kit.converter.hoops_core converts CAD files to USD using the HOOPS Exchange SDK. This is a core extension without a GUI that provides the fundamental CAD conversion functionality. It can be used directly through its Python API, or accessed through the GUI extension omni.kit.converter.hoops which provides a user interface for the conversion process.

Upon loading, it registers with the CAD Converter service (omni.services.convert.cad) if available, allowing other extensions to utilize its conversion capabilities.

CAD CONVERTER CONFIG FILE INPUTS:#

JSON Converter Settings:#

NOTE: Some converter options have been updated with new keys to replace legacy ones (often in Hungarian notation, e.g. bInstancing). Legacy keys are supported for backward compatibility but will be deprecated. This documentation uses the new keys and provides information about legacy keys in the description of each option.

Format: “setting name” : default value

Converter Option: Instancing#

Description: If true the USD model uses instancing by creating USD References. If false, then there is no instancing at all. The legacy key for this option is bInstancing. Note: instancingStyle takes precedence over instancing, if both are set, only instancingStyle will be used.

Default Value: true

Value Ranges: true, false

Data Format: bool

Config File Example:

"instancing" : true

Converter Option: Instancing Style#

Description: Determines the style of instancing to use in USD. When enabled, “Reference” re-uses existing geometry while still allowing asset modification. To further reduce memory usage and improve performance, use “Instanceable Reference”. When using Instanceable Reference, modifications are limited to “Instanceable Prim”, and not the instance proxy. See Scenegraph Instancing documentation for more details.

Default Value: 1

Value Ranges: [0, 2]

  • 0 (eNone): No instancing; all geometry is unique.

  • 1 (eReference): Reuses existing assets and allows asset modifications.

  • 2 (eInstanceableReference): Creates scenegraph instances by enabling instanceable metadata on prims.

Data Format: integer (enumeration)

Config File Example:

"instancingStyle" : 1

Converter Option: Convert Hidden#

Description: If true, export hidden elements but set their converted USD prims visibility to “invisible”. Otherwise, skip hidden elements. The legacy key for this option is bConvertHidden. This option will be deprecated in the future and it’s encouraged to use filterStyle option instead.

Default Value: true

Value Ranges: true, false

Data Format: bool

Config File Example:

"convertHidden" : true

Converter Option: Filter Style#

Description: Determines how filtering is applied during conversion. This option controls the treatment of filtered (e.g., hidden) entities in the source file. The possible values are:

  • 0 (eNone): Apply no filtering; all entities are converted.

  • 1 (eOmit): Do not convert the filtered entity or its descendants (skip hidden elements).

  • 2 (eHide): Convert all entities and hide the ones that were filtered (set their visibility to “invisible”).

  • 3 (eDeactivate): Convert all entities and deactivate the ones that were filtered.

This option replaces the legacy convertHidden key:

  • convertHidden: true is equivalent to filterStyle: 2 (eHide).

  • convertHidden: false is equivalent to filterStyle: 1 (eOmit).

Default Value: 1 (eOmit)

Value Ranges: [0, 3]

Data Format: integer (enumeration)

Config File Example:

"layerFilterStyle" : 1

Converter Option: Global Xforms#

Description: When bInstancing is set to false, this flag controls whether globalXforms are composited. If false local transforms are applied. The legacy key for this option is bGlobalXforms.

Default Value: false

Value Ranges: true, false

Data Format: bool

"globalXforms" : false

Converter Option: Tessellation Level of Detail (LOD)#

Description: Tessellation levels of detail presets provide values to define ChordHeightRatio and AngleToleranceDeg; 0 is the lowest level (ExtraLow) while 4 is the highest level (ExtraHigh). The legacy key for this option is iTessLOD.

Default Value: 2

Value Ranges: [0, 4]

  • 0: tessLOD0 = ExtraLow, ChordHeightRatio=50, AngleToleranceDeg=40,

  • 1: tessLOD1 = Low, ChordHeightRatio=600, AngleToleranceDeg=40,

  • 2: tessLOD2 = Medium, ChordHeightRatio=2000, AngleToleranceDeg=40,

  • 3: tessLOD3 = High, ChordHeightRatio=5000, AngleToleranceDeg=30,

  • 4: tessLOD4 = ExtraHigh, ChordHeightRatio=10000, AngleToleranceDeg=20.

Data Format: integer

"tessLOD" : 2

Converter Option: Accurate Surface Curvatures#

Description: If true, respect surface curvature to control triangles elongation directions. The legacy key for this option is bAccurateSurfaceCurvatures.

Default Value: true

Value Ranges: true, false

Data Format: bool

"accurateSurfaceCurvatures" : true

Converter Option: Accurate Tessellation#

Description: If false, tessellate for visualization. If true, tessellate for analysis.

Default Value: false

Value Ranges: true, false

Data Format: bool

"accurateTessellation": false

Converter Option: Generate UVs#

Description: If true, calls Scene Optimizer Service Kit extension to generate UVs if missing in source data.

See Scene Optimizer Service documentation for details.

Default Value: true

Value Ranges: true, false

Data Format: bool

Config File Example:

"bOptimize" : true

Converter Option: Weld Mesh Vertices#

Description: If true (default), weld mesh vertices by merging those with identical position and normal, then reindex faces to the reduced vertex list. If false, leave vertex and normal arrays unchanged. The legacy key for this option is bDedup.

Default Value: true

Value Ranges: true, false

Data Format: bool

Config File Example:

"dedup" : true

Converter Option: Use Materials#

Description: If true converter creates materials with the color set as an attribute. If false converter will convert colors to USD displayColor primvars. The legacy key for this option is bUseMaterials.

Default Value: true

Value Ranges: true, false

Data Format: bool

Config File Example:

"useMaterials" : true

Converter Option: Material Select#

Description: If useMaterials is true, sets the material type for target renderer.

Default Value: 1

Value Ranges: [0, 2]

  • 0: No materials

  • 1: USD Preview Surface; default and compatible with Universal renderers

  • 2: OmniPBR + USD Preview Surface; compatible with RTX and Universal renderers

Data Format: Integer

Config File Example:

"materialType" : 1

Converter Option: Use Normals#

Description: If true then we pass normals to USD. if false, then we do not. The legacy key for this option is bUseNormals.

Default Value: true

Value Ranges: true, false

Data Format: bool

Config File Example:

"useNormals" : true

Converter Option: Omit Hidden On Load#

Description: If true, hidden elements that would be omitted during conversion will be omitted at load time.

Default Value: true

Value Ranges: true, false

Data Format: bool

Config File Example:

"omitHiddenOnLoad" : true

Converter Option: Report Progress#

Description: If true then we report import/export progress. The legacy key for this option is bReportProgress.

Default Value: true

Value Ranges: true, false

Data Format: bool

Config File Example:

"reportProgress" : true

Converter Option: Report Progress Frequency#

Description: When progress reporting is enabled, this option controls how frequently (in Hz) progress updates are reported during conversion.

Default Value: 4.0

Value Ranges: [1.0, 10.0]

Data Format: double

"reportProgressFreq": 4.0

Converter Option: Convert Curves#

Description: If true, convert curve elements into USD Basis Curves; else, ignore these elements. The legacy key for this option is bConvertCurves.

Default Value: false

Value Ranges: true, false

Data Format: bool

"convertCurves" : false

Converter Option: Convert Metadata#

Description: If true then metadata, including PMI, are imported as USD Attributes; else, metadata are ignored. The legacy key for this option is bConvertMetadata.

Default Value: false

Value Ranges: true, false

Data Format: bool

"convertMetadata" : false

Converter Option: Override Up-Axis#

Description: Override the up-axis of the converted USD’s stage to Y-up, Z-up, or default to the converter’s up-axis setting.

Default Value: 0

Value Ranges: [0, 2]

  • 0 to default to converter’s up-axis

  • 1 to override to Y-up

  • 2 to override to Z-up

Data Format: integer

Config File Example:

"iUpAxis" : 0

Converter Option: Meters Per Unit#

Description: Set the meters per unit converted USD’s stage metric. If set to 0.0, the converted USD will retain the meters per unit from conversion.

Default Value: 1.0

Value Ranges: Positive numbers

Data Format: double

Config File Example:

"dMetersPerUnit" : 1.0

Converter Option: Scene Optimizer Config#

Description: (Experimental feature) Provide a path to a saved Scene Optimizer JSON configuration file or a JSON formatted string for executing a predefined optimization process stack.

See Scene Optimizer Service documentation for details.

Default Value: “”

Data Format: string

Config File Example:

"sOptimizeConfig" : "converter_config_example.json"

Full converter_config_example.json:#

{
    "accurateSurfaceCurvatures": true,
    "accurateTessellation": false,
    "convertCurves": false,
    "convertMetadata": false,
    "dedup": true,
    "filterStyle": 1,
    "globalXforms": false,
    "instancingStyle": 2,
    "materialType": 1,
    "omitHiddenOnLoad": true,
    "reportProgress": true,
    "reportProgressFreq": 4,
    "tessLOD": 2,
    "upAxis": 0,
    "useMaterials": true,
    "useNormals": true,
    "instancing": true,
    "convertHidden": false,
    "sOptimizeConfig": "",
    "bOptimize": true,
    "iUpAxis": 0,
    "dMetersPerUnit": 0.0
}

Known Issues#

Licensing Terms of Use and Third-Party Notices#

The omni.kit.converter.hoops_core and related CAD converter Extensions are Omniverse Core Extensions. Do not redistribute or sublicense without express permission or agreement. Please read the Omniverse License Agreements and the Third_Party_Notices.md for detailed license information.