Connecting physical simulation to Omniverse?

Hi All,

I have a physical simulation code that is able to export simulation results as USD files through ParaView Connector plugin. I wonder how this shared with the Omniverse. My current understanding is that I need to create specific application to use the data across different Omniverse plugins. I end up finding some information in the following blueprint web site (NVIDIA Omniverse Blueprints · GitHub) and especially the one in GitHub - NVIDIA-Omniverse-blueprints/earth2-weather-analytics: Reference implementation of the Omniverse Blueprint for Earth-2 Weather Analytics. for my need but I think I need more suggestion about the steps that I need to follow to have fully integrated simulation code. Any suggestion would be helpful et this point.

Hi there and welcome. I think what you are asking is, how to open a usd file in Omniverse, that was exported from ParaView. Is this correct? The best way is to build yourself a Omniverse “kit app template” and chose “USD Composer”. See the github page here GitHub - NVIDIA-Omniverse/kit-app-template: Omniverse Kit App Template

To quickly build the Composer template follow these instructions directly:

1. Download "git" from https://git-scm.com/downloads
2. Start a windows command console by using running "cmd" from the Windows Start menu
3. Navigate to where you want to install the kit app template folder
4. Copy and run "git clone https://github.com/NVIDIA-Omniverse/kit-app-template.git"
5. run "cd kit-app-template"
6. run "repo template new"
7. select the “USD Composer” template 
8. run "repo build"
9. run "repo launch"

@Richard3D Thanks for the information. Let me check it. At this point, I am having little bit trouble to install ParaView Connector plugin with all the features provided. I could able to install with the support that allows exporting USD files (after lots of issue with OpenUSD library) but I could not make the actual connector plugin. I could not see the Omniverse menu. I am still working on it. Do you know anywhere that I could ask more about it. Thanks again for your help.

This is certainly the right place to ask if you are using NVIDIA Omniverse. Are you using NVIDIA Omniverse? I cannot quite tell. Do you have our Launcher installed? Do you have USD Composer installed? We do have a ParaView connector available on Launcher.

However, as I was saying this is really all the old way of doing this. Legacy now. Paraview, like many other softwares are moving to Native USD Support. You should just export your paraview project as usd format and open it in NVIDIA Omniverse kit, specifically our USD Composer template.

If you want to read more about NVIDIA Omniverse and our new kit app template, start here GitHub - NVIDIA-Omniverse/kit-app-template: Omniverse Kit App Template

Got it. I’ll update you about progress. Thanks again for your help.

Apparently I have found out that the Paraview connector is here and totally open source. You just download it and install it for Paraview
GitHub - NVIDIA-Omniverse/ParaViewConnector: Plugin for Kitware ParaView adding Omniverse and USD support

Yes, I am using that one. If you want to have Omniverse connector capability yoıu need to point Omniverse client with (OMNICLIENT_ROOT_DIR option). So, I have some issue in there. I was trying to install Omniverse Launcher to satisfy requirement from ParaView plugin on a HPC platform (designed specifically for visualization and AI/ML type application) but could not. I am not sure what is the issue. The HPC system does not allow me to use fuse (required by .AppImage) and I just extract it locally and run the luncher. When I enter my Nvidia account, it is freezing and doing nothing.

The main issue as I see in here is to complexity of installing all those tools to create simple work environment locally to start developing something. ParaView, OpenUSD, ParaView plugin, Omniverse, maybe Qt etc. makes it difficult to start quickly and the information about all those tools are in different place and spread. You need to dig in and find the key informations to integrate all those things.

At this point, I am working on a generic component that interacts with exiting fully coupled earth system model applications (GitHub - uturuncoglu/GeoGate: GeoGate is an open source project that provides a generic way to interact with the existing earth system models and applications coupled using ESMF/NUOPC library.). The component is ready and has capability to use ParaView Catalyst. So, my aim is to create connection to Omniverse through use of ParaView Catalyst → Preview Omniverse Connector. So, this could be an another plugin (maybe just export USD files) or as a part of ParaView Catalyst plugin.

Ah I see. Yes you do not need to do any of that. No Launcher, No downloading, no registering, no OpenUSD.

For the new Kit versions, you have to use our “kit app template”. You have to do a small amount of building to use it, because we are moving to a developer focus, but it is easy.

Follow these instructions (for windows, but Linux is similar. Follow alone at GitHub - NVIDIA-Omniverse/kit-app-template: Omniverse Kit App Template)

1. Download "git" from https://git-scm.com/downloads
2. Start a windows command console by using running "cmd" from the Windows Start menu
3. Navigate to where you want to install the kit app template folder
4. Copy and run "git clone https://github.com/NVIDIA-Omniverse/kit-app-template.git"
5. run "cd kit-app-template"
6. run "repo template new"
7. select the “USD Composer” template 
8. run "repo build"
9. run "repo launch"

I do not know about the github converter. I will have to ask. I do not see why it needs that. It is just converting one file to another.

Perfect. Thanks again. Let me try. The system is down today but I’ll try when it is back online.

I am getting error like following in the build stage even if I have gcc module loaded. Any idea?

/glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/kit/kit: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/kit/kit)
/glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/kit/kit: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/kit/kit)
/glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/kit/kit: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /glade/u/home/turuncu/.cache/packman/chk/kit-kernel/107.3.0+feature.199947.b0a86421.gl.manylinux_2_35_x86_64.release/libcarb.so)
/glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/kit/kit: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /glade/u/home/turuncu/.cache/packman/chk/kit-kernel/107.3.0+feature.199947.b0a86421.gl.manylinux_2_35_x86_64.release/libcarb.so)
/glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/kit/kit: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /glade/u/home/turuncu/.cache/packman/chk/kit-kernel/107.3.0+feature.199947.b0a86421.gl.manylinux_2_35_x86_64.release/libcarb.so)
[06/05/25 16:23:03] ERROR    error running: /glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/kit/kit                                                                      utils.py:264
                             /glade/work/turuncu/COP/casper_superbuild/kit-app-template/source/apps/ncar.my_usd_composer.kit --allow-root --portable --ext-precache-mode --/crashreporter/gatherUserStory=0                 
                             --/app/settings/persistent=0 --/app/settings/loadUserConfig=0 --/app/extensions/generateVersionLock=1 --/app/extensions/parallelPullEnabled=1 --/app/enableStdoutOutput=1                      
                             --/app/extensions/detailedSolverExplanation=1 --/app/extensions/registryEnabled=1 --/app/extensions/mkdirExtFolders=0                                                                          
                             '--/app/extensions/registryCacheFull='"'"'/glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release/extscache'"'"''                                               
                             --/log/flushStandardStreamOutput=1 '--/exts/omni.kit.registry.nucleus/registries/0/name="kit/default"'                                                                                         
                             '--/exts/omni.kit.registry.nucleus/registries/0/url="https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/${kit_version_major}/shared"'                                                
                             '--/exts/omni.kit.registry.nucleus/registries/1/name="kit/sdk"'                                                                                                                                
                             '--/exts/omni.kit.registry.nucleus/registries/1/url="https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}"'                                   
                             '--/exts/omni.kit.registry.nucleus/registries/2/name="kit/community"'                                                                                                                          
                             '--/exts/omni.kit.registry.nucleus/registries/2/url="https://dw290v42wisod.cloudfront.net/exts/kit/community"' --/app/extensions/target/config=release --ext-folder                            
                             /glade/work/turuncu/COP/casper_superbuild/kit-app-template/source/extensions --ext-folder /glade/work/turuncu/COP/casper_superbuild/kit-app-template/source/apps --portable-root               
                             /glade/work/turuncu/COP/casper_superbuild/kit-app-template/_build/linux-x86_64/release --/app/extensions/generateVersionLockSkipLocalExts=1, code: 1, message: ""                              
                    ERROR    SystemExit exception stack trace dumped to logfile /glade/work/turuncu/COP/casper_superbuild/kit-app-template/_repo/repo.log. Stacks dumped to console via `--verbose` or            log.py:182
                             `--tracebacks`.                                                                                                                                                                                
                             SystemExit: 1                                                                                                                                                                                  
[06/05/25 16:23:03] ERROR    error running: /glade/work/turuncu/COP/casper_superbuild/kit-app-template/repo.sh precache_exts -c release, code: 1, message: ""                                                   utils.py:264
                    WARNING  Retrieving repo_build version via VERSION file.                                                                                                                                  version.py:312
                    ERROR    SystemExit exception stack trace dumped to logfile /glade/work/turuncu/COP/casper_superbuild/kit-app-template/_repo/repo.log. Stacks dumped to console via `--verbose` or            log.py:182
                             `--tracebacks`.                                                                                                                                                                                
                             SystemExit: 1    

Can we get this log file

Can you try again from a different location much closer to the root of the drive. You are already really deep here,
“/glade/work/turuncu/COP/casper_superbuild”. Just try /root/kit-app-template

You have a good internet connection right? And no proxy or vpn on? When you run the build command it has to pull down a lot of data.

The repo log is attached. Unfortunately, I could not run from /root since this is once our HPC cluster and I have no access to it. So, it is under my user account. Thanks again for your help.
repo.log (83.1 KB)

Can you give me the exact system specs of the HPC Cluster. I need to know it is capable. If it is not a workstation or laptop, we require very specific setups for servers. Special AMIs and drivers. I need to know exactly what processors, GPUs, OS, drivers etc.

You could access to its specs from here - https://ncar-hpc-docs.readthedocs.io/en/latest/compute-systems/casper/#casper-hardware

It has also NVIDIA GPUs. Let me know any other information. I was trying on login node but if you want I could test on one of the compute node that could be also accessible via VNC - Remote Desktop.

Hi @epsilon ,

sorry for joining this thread so late, it escaped my attention, but am I correct in assuming that you are building the PV connector from source, since you need to set OMNICLIENT_ROOT_DIR? In that case, you need only the connect samples from it’s github repo, not the launcher to get the required Omniclient binaries. If you just want to start with USD export only, you can disable omniclient altogether and just use a regular USD build. All of this is highlighted in the documentation, but if anything is missing please let me know :)

@kvankooten Thanks for your reply. Actually, I was trying to follow @Richard3D suggestion but in a HPC environment. So, I got all those errors. I am not sure what was wrong in that time but if you have any suggestion or steps that you want me to follow, I could do it. Actually, I have lots of experience building the things on HPC platforms but in terms of installation of Omniverse, PV connector, It is really a pain. Have you ever think about installing all those dependencies through spack package manager. Anyway, Thanks again both of you for your help. I think having capability to connect the simulation code to omniverse would be great.

At this point, my suggestion is to separate your workflow from your HPC specs and test everything locally on a simple workstation. Make sure your code works, your setup is suitable, and the software behaves correctly. Get that down perfect, and then look to replicate on the larger machine.

If you are looking to just run USD Composer and the Paraview connector, it should be very straight forward. No code required. But again, you really do NOT need the Paraview Connector. You can just export your file from Paraview and USD Composer can import it.

@Richard3D Okay. Let me try to find a local Linux machine since I have a Mac laptop and installations gets more complicated in there. I am not sure if I could use Docker container inside of my Mac to test things out. I am not sure I could upload data in USD format to use it with USD without using ParaView Connector. Which format/s can be used with USD Composer? Thanks again for your help.

I really would keep it as simple as possible. A Windows PC would be better than Linux, and certainly not a Mac or a container. You need to test software, not deployment. So start with a simple local copy of USD Composer. Nothing else is required. Composer can import a very wide variety of popular CAD file formats, like IGES and STP. Just export your cad data to one of those. Look through all the export and import options only both and find a suitable format.