Import/Export USD scene from Nucleus to local storage

Hello,
I am trying to download a USD scene saved on my nucleus using CLI or external python script. Omniverse Nucleus provide the option to download a file via the GUI, however I want to do it via code. Is it possible to do so?

Thank you
Anthony

We currently only support scripted access to data using our client library.
You can access this within Python using our omni.client package.
omni.client has several useful functions you can use to manage data.
omni.client — kit-sdk 103.1 documentation (nvidia.com)

1 Like

Hello,
I just tried to export a usd file from nucleus using omni.client.copy.
While the copy happened correctly, the new usd file has no materials and textures even though the initial source file has.
Is there another function allowing me to export the usd file with materials?

thank you
Anthony

omni.client.copy only copies the single file you pass it. It sounds like you’re trying to collect the whole stage into a single package.

If you want to do that, you’ll need to look at the USD library, or use the File->Collect As option.

Hello dlindsey,
thank you for your support.

I’ve been looking at the File → Collect As option using the GUI, and that is exactly what I need.
I would like to ask if this is possible to be done by code using omni.client or any other library.

Thank you for your help,

Best
Anthony

Hi, Anthony,

You can take a look at omni.kit.tool.collect extension. In order to scripting collect, you can import omni.kit.tool.collect.collector and instantiate Collector from it, which has an async API that you can call in one line.

Thanks.

BTW where is the File-Collect As option?

simply right click on the USD file in the discover assets extension and the collect assets option should appear