ShapeNet Importer

About

The ShapeNet Importer Extension allows users to import and convert 3D models from the ShapeNet V2 database into Omniverse as USD files. ShapeNet is an ongoing effort to establish a richly-annotated, large-scale dataset of 3D shapes.

This extension is enabled by default. If it is ever disabled, it can be re-enabled from the Extension Manager by searching for ShapeNet.

To access this Extension, go to the top menu bar and click Isaac Utils > ShapeNet Loader.

../_images/isaac_shapenet_shapes.png

Requirements

This extension requires you have a copy of the shapenet V2 database downloaded from shapenet.org prior to using this extension, if you wish to convert the shapenet obj models to usd. Once the files are converted, you no longer need the original obj files, because the plugin will pull the usd model from the omniverse server where the converted model is kept.

Storing the ShapeNet Database Locally

There are over 50,000 3D models in the ShapeNet database. To facilitate pre-downloading the database, the SHAPENET_LOCAL_DIR environment variable is used to point the extension to where the database is stored locally.

If not defined by the user, SHAPENET_LOCAL_DIR is automatically set to the local Omniverse ${data}/shapenet folder.

Note

The local copies of the ShapeNet obj files are also convenient places to alter the original obj files with any changes if you wish to alter the obj files directly before conversion.

In Linux

The SHAPENET_LOCAL_DIR environment variable is defined in a single shell session with the command:

export SHAPENET_LOCAL_DIR=/folder/where/shapenetv2/was/extracted

and that command can be added to the user’s ~/.profile file so that it is persistent in every session.

In Windows

The SHAPENET_LOCAL_DIR environment variable is set by pressing the windows command key and typing env, and then clicking on the Environment Variables… button at the bottom of the Advanced tab on the System Properties window. Once in the Environment Variables window, simple click on New… to create it for a single user or system wide.

API Documentation

See the API Documentation for complete usage information.

User Interface

../_images/isaac_shapenet_ui.png

Add A Model Parameters

When you click on the Add A Model button, the parameters in the UI will be used to place the model.

  • Omniverse Server: This is the address of the Omniverse Nucleus server where you wish to store the converted USD versions of the shapenet models.

  • synsetId and modelId: The synsetId and modelId set exact ids used in the ShapeNet database, or set the string to “random”. If the synsetId is set to an exact id, the modelId may still be “random”, and that will produce a random model from within the set synset category.

  • X Y Z Position: The translational position of the model in the scene scale.

  • X Y Z Axis Angle: The rotation of the object in Axis Angle notation.

  • Scale of Add: All ShapeNet v2 model sizes are normalized to 1, so set this to the size you wish the model to scale to.

  • Automatically Add Physics: Check this box to add rigid body physics to the model.

  • Use Convex Decomposition: When this is checked in conjunction with physics, the model will be automatically decomposed into parts and collision hulls created from each part instead of the whole model.

Tutorial & Examples

The ShapeNet Importer Extension has a python interface. The following tutorial showcases how to use these features, and how to best use this extension in general: