[Question]How to programmatically access all NVIDIA vMaterials materials in Isaac Lab using Python (beyond single .mdl files)? #3814
Replies: 2 comments
-
|
Hi all, I wanted to share a potential insight related to this issue based on my own investigation. I looked into the function material_name = cfg.mdl_path.split("/")[-1].split(".")[0]
omni.kit.commands.execute(
"CreateMdlMaterialPrim",
mtl_url=cfg.mdl_path.format(NVIDIA_NUCLEUS_DIR=NVIDIA_NUCLEUS_DIR),
mtl_name=material_name,
mtl_path=prim_path,
select_new_prim=False,
)Right now, the API only accesses the material name by extracting it from the If the API exposed the ability to specify or access individual material names within an This enhancement would provide much more flexibility for users needing to work with the full range of materials inside Happy to hear feedback or if anyone has ideas on how to extend the API accordingly. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for posting this. I'll move this post to our Discussions for follow up. Here is a summary that may be of help. You can programmatically enumerate and load all 2,600+ materials from the NVIDIA vMaterials library in Isaac Lab by leveraging the MDL (Material Definition Language) introspection utilities provided by OmniKit and Omniverse MDL Python bindings. These bindings allow you to query all exported materials defined inside a Enumerating Material Definitions from
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Topic Description
Detailed Description
I’m using the Isaac Lab Python API and need to work with materials from the NVIDIA vMaterials library.The library contains around 315 .mdl files, but according to NVIDIA’s documentation (and what I see in the Isaac Sim GUI), it provides roughly 2,600 individual materials.
From my understanding, each .mdl file is a module that can export multiple material definitions, which explains the difference between the file count and the number of available materials.
In my Python script, I’m using the MdlFileCfg class to load materials. However, this class only accepts the MDL file path, not the specific exported material name inside that module.
My question is:
How can I programmatically access and use all 2,600 materials from the NVIDIA vMaterials library using the Isaac Lab Python API (without relying on the Isaac Sim GUI)?In other words, how can I enumerate all exported material definitions from each .mdl file and load them via MdlFileCfg?
Other info
Isaac Sim Version - 5.0.0
Operating System - Ubuntu 24.04
GPU Model - NVIDIA GeForce RTX 3090 Ti
Driver Version - 580.65.06
Beta Was this translation helpful? Give feedback.
All reactions