.. _shapenet: =============================== ShapeNet Importer =============================== .. _shapenet_about: About ================== The :ref:`shapenet` Extension allows users to import and convert 3D models from the `ShapeNet V2 database `_ into Omniverse as :ref:`isaac_sim_glossary_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 <../../prod_extensions/prod_extensions/ext_extension-manager.html>`_ by searching for ``ShapeNet``. To access this Extension, go to the top menu bar and click `Isaac Utils > ShapeNet Loader`. .. image:: /content/images/isaac_shapenet_shapes.png :align: center .. _shapenet_requirements: 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. .. _shapenet_database: 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: .. code-block:: bash 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. .. _shapenet_api_doc: API Documentation ================= See the |link_ext| for complete usage information. .. |link_ext| raw:: html API Documentation .. _shapenet_user_interface: User Interface ================= .. image:: /content/images/isaac_shapenet_ui.png :align: center 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 :ref:`isaac_sim_glossary_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. .. _shapenet_tutorials: Tutorial & Examples ====================================== The :ref:`shapenet` Extension has a python interface. The following tutorial showcases how to use these features, and how to best use this extension in general: - :ref:`isaac_sim_app_tutorial_advanced_shapenet_importer`