Overview#

omni.services.convert.asset is a Kit services extension that provides a service for batch conversion of various 3D file formats to USD using the Asset Converter Extension (omni.kit.asset_converter). This service extension leverages the underlying asset converter capabilities to convert files such as FBX, OBJ, GLTF, and other supported formats to USD format. Reference the Asset Converter page for more information

Upon loading, it registers with the Asset Converter service, allowing other extensions and external processes to utilize its conversion capabilities through a standardized API interface.

About#

The Asset Converter Service Extension provides an easy-to-use API to call into the asset conversion service.

Usage#

The Asset Converter Service Extension can be used in several ways:

  1. Direct API Calls: Call the service directly from Python code or other extensions

  2. Batch Processing: Use for automated conversion of multiple files

  3. Integration: Integrate with other Omniverse services and extensions

The service provides a robust and flexible solution for converting various 3D file formats to USD, making it easier to work with different asset types in the Omniverse ecosystem.

Supported File Formats#

The Asset Converter Service supports conversion from the following file formats to USD:

  • FBX (.fbx)

  • OBJ (.obj)

  • GLTF/GLB (.gltf, .glb)

  • LXO (.lxo)

  • MD5 (.md5)

  • STL (.stl)

  • BVH (.bvh)

ASSET CONVERTER SERVICE REQUEST FORMAT#

The Asset Converter Service accepts requests in JSON format with the following structure:

Request Arguments:#

Required Arguments:#

import_path

  • Description: Full path to the source file to convert

  • Data Format: string

  • Example: "/path/to/model.fbx"

output_path

  • Description: Full path to the output USD file

  • Data Format: string

  • Example: "/path/to/output/model.usd"

Optional Arguments:#

converter_settings

  • Description: JSON object containing conversion configuration options

  • Data Format: object

  • Default Value: {}

  • Example: { "merge_all_meshes": true, "smooth_normals": true }

archive_path

  • Description: Optional path to .zip, .tar, or .tar.gz archive that contains the input file(s)

  • Data Format: string

  • Default Value: ""

  • Example: "/path/to/archive.zip"

Sample Request Examples#

Minimal Conversion Request:#

{
  "import_path": "/path/to/simple_model.obj",
  "output_path": "/path/to/output/simple_model.usd"
}

Basic Conversion Request:#

{
  "import_path": "/path/to/model.fbx",
  "output_path": "/path/to/output/model.usd",
  "converter_settings": {
    "merge_all_meshes": true,
    "smooth_normals": true
  }
}

Conversion with Archive:#

{
  "import_path": "/path/to/model.fbx",
  "output_path": "/path/to/output/model.usd",
  "converter_settings": {
    "merge_all_meshes": true,
    "smooth_normals": true
  },
  "archive_path": "/path/to/archive.zip"
}

Advanced Conversion Request:#

{
  "import_path": "/path/to/animated_model.glb",
  "output_path": "/path/to/output/animated_model.usd",
  "converter_settings": {
    "merge_all_meshes": false,
    "smooth_normals": true,
    "embed_mdl_in_usd": true,
    "embed_textures": true,
    "create_world_as_default_root_prim": true,
    "ignore_animations": false,
    "ignore_camera": false,
    "ignore_light": false,
    "ignore_materials": false,
    "use_meter_as_world_unit": true
  }
}

CONVERTER SETTINGS CONFIGURATION#

Conversion options are configured by supplying a JSON object in the converter_settings parameter. Below are the available configuration options.

JSON Converter Settings:#

Format: Each option is specified as a JSON key-value pair, e.g. "option_name": default_value

Converter Option: Bake MDL Material#

Description: If true, bakes MDL materials during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"bake_mdl_material": false

Converter Option: Baking Scales#

Description: If true, applies baking scales during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"baking_scales": false

Converter Option: Convert FBX to Y Up#

Description: If true, converts FBX files to Y-up coordinate system.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"convert_fbx_to_y_up": false

Converter Option: Convert FBX to Z Up#

Description: If true, converts FBX files to Z-up coordinate system.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"convert_fbx_to_z_up": false

Converter Option: Create World as Default Root Prim#

Description: If true, creates a world as the default root prim in the USD hierarchy.

Default Value: true Value Ranges: true, false Data Format: bool

Config Example:

"create_world_as_default_root_prim": true

Converter Option: Disabling Instancing#

Description: If true, disables instancing during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"disabling_instancing": false

Converter Option: Embed MDL in USD#

Description: If true, embeds MDL materials directly in the USD file.

Default Value: true Value Ranges: true, false Data Format: bool

Config Example:

"embed_mdl_in_usd": true

Converter Option: Embed Textures#

Description: If true, embeds texture files directly in the USD file.

Default Value: true Value Ranges: true, false Data Format: bool

Config Example:

"embed_textures": true

Converter Option: Export Hidden Props#

Description: If true, exports hidden properties during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"export_hidden_props": false

Converter Option: Export MDL GLTF Extension#

Description: If true, exports MDL GLTF extension data.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"export_mdl_gltf_extension": false

Converter Option: Export Preview Surface#

Description: If true, exports USD Preview Surface materials.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"export_preview_surface": false

Converter Option: Export Separate GLTF#

Description: If true, exports GLTF data as separate files.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"export_separate_gltf": false

Converter Option: Ignore Animations#

Description: If true, ignores animation data during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"ignore_animations": false

Converter Option: Ignore Camera#

Description: If true, ignores camera data during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"ignore_camera": false

Converter Option: Ignore Flip Rotations#

Description: If true, ignores flip rotations during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"ignore_flip_rotations": false

Converter Option: Ignore Light#

Description: If true, ignores lighting data during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"ignore_light": false

Converter Option: Ignore Materials#

Description: If true, ignores material data during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"ignore_materials": false

Converter Option: Ignore Pivots#

Description: If true, ignores pivot points during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"ignore_pivots": false

Converter Option: Ignore Unbound Bones#

Description: If true, ignores unbound bones during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"ignore_unbound_bones": false

Converter Option: Keep All Materials#

Description: If true, preserves all materials during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"keep_all_materials": false

Converter Option: Merge All Meshes#

Description: If true, merges all meshes into a single mesh during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"merge_all_meshes": false

Converter Option: Single Mesh#

Description: If true, creates a single mesh from all geometry.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"single_mesh": false

Converter Option: Smooth Normals#

Description: If true, generates smooth normals for meshes.

Default Value: true Value Ranges: true, false Data Format: bool

Config Example:

"smooth_normals": true

Converter Option: Support Point Instancer#

Description: If true, enables support for USD Point Instancer.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"support_point_instancer": false

Converter Option: Use Double Precision to USD Transform Op#

Description: If true, uses double precision for USD transform operations.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"use_double_precision_to_usd_transform_op": false

Converter Option: Use Meter as World Unit#

Description: If true, uses meters as the world unit during conversion.

Default Value: false Value Ranges: true, false Data Format: bool

Config Example:

"use_meter_as_world_unit": false

Complete Example Configuration:#

{
  "bake_mdl_material": false,
  "baking_scales": false,
  "convert_fbx_to_y_up": false,
  "convert_fbx_to_z_up": false,
  "create_world_as_default_root_prim": true,
  "disabling_instancing": false,
  "embed_mdl_in_usd": true,
  "embed_textures": true,
  "export_hidden_props": false,
  "export_mdl_gltf_extension": false,
  "export_preview_surface": false,
  "export_separate_gltf": false,
  "ignore_animations": false,
  "ignore_camera": false,
  "ignore_flip_rotations": false,
  "ignore_light": false,
  "ignore_materials": false,
  "ignore_pivots": false,
  "ignore_unbound_bones": false,
  "keep_all_materials": false,
  "merge_all_meshes": false,
  "single_mesh": false,
  "smooth_normals": true,
  "support_point_instancer": false,
  "use_double_precision_to_usd_transform_op": false,
  "use_meter_as_world_unit": false
}

Licensing Terms of Use and Third-Party Notices#

The omni.services.convert.asset 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 for detailed license information.