13. ShapeNet Importer Tutorial¶
13.1. Learning Objectives¶
This tutorial demonstrates how to import the ShapeNet V2 3D model database into Omniverse Isaac Sim as USD files. After this tutorial, you will know how to create a local ShapeNet repository and import assets from the ShapeNet database into your experiments and simulations.
5-10 Minute Tutorial
13.2. Getting Started¶
Please review the Essential Tutorial series, especially Isaac Sim Workflows, prior to beginning this tutorial.
This extension requires you to download the ShapeNet V2 database at shapenet.org prior to using this extension.
You must set the environment variable SHAPENET_LOCAL_DIR, see Storing the ShapeNet Database Locally
13.3. Using the ShapeNet Importer Extension¶
There are two ways to add models using the ShapeNet Importer extension:
Use the Omniverse Isaac Sim User Interface
Use the Python API
This section details the use and benefits of each method. Each of the methods will check the Omniverse server for the shapenet model converted to USD first and add it to the scene. This allows you to make changes to the USD models in Omniverse to improve them. If the model is not in Omniverse, the ShapeNet Importer extension will convert the local obj file in SHAPENET_LOCAL_DIR and convert it to USD before adding the USD file to the scene.
13.3.1. Add a Model via User Interface¶
The ShapeNet Importer UI is under the Isaac Utils menu in Omniverse Isaac Sim, and can also be accessed with the Geometry radio button on the Isaac Sim Utilities selector. The UI is recommended when adding a small number of models.
To add a model:
Use the synsetId and modelId to set exact ids, or set the 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.
Set the transform parameters to place the model in the scene; default scale and rotation from the scene are added automatically.
Check the Automatically add physics checkbox if you want physics, and the Use convex decomposition checkbox for convex decomposition of complex collision objects.
Add A Modelbutton at the top of the ShapeNet Loader tab.
13.3.2. Add a Model via Python API¶
Users can get to the ShapeNet Importer extension folder
by clicking on the Folder button in the Extension Manager, or by looking in
The main function, addShapePrim, is in the ShapeNet Importer extension folder’s shape.py file.
omniverseServer is the name of the server that stores the shapes once converted to USD.
synsetId and modelId can be specific or not set for random values
The transform is set with pos for the translation, rot for the rotation as a Gf.Rotation in axis angle notation, and scale
Set auto_add_physics and / or use_convex_decomp to True for physics and decomposition of complex collision objects
do_not_place is a specialized parameter for if you want to use the plugin to mass convert and download models but do not want to place them in the scene.
For an example of how to use addShapePrim, refer to how settings.py uses that function.
This tutorial covered the following topics:
Connecting Omniverse Isaac Sim to ShapeNet.
Adding Models from ShapeNet into a scene via User Interface.
Adding Models from ShapeNet into a scene via Python API.