Simulation / Modeling / Design

Visualizing Interactive Simulations with Omniverse Extension for NVIDIA Modulus

NVIDIA Modulus is a physics-machine learning platform that blends the power of physics with data to build high-fidelity, parameterized AI surrogate models that serve as digital twins to simulate with near real-time latency. 

This cutting-edge framework is expanding its interactive simulation capabilities by integrating with the NVIDIA Omniverse (OV) platform for real-time virtual-world simulation and full-design fidelity visualization. 

Previously, you would need to set up the visualization pipeline, a key component of simulation and analysis workflows, on your own. Now, you can use the built-in pipeline in Omniverse for common output scenarios such as visualizing streamlines and iso-surfaces for the outputs of the Modulus-trained AI model. Another key feature is being able to visualize and analyze the high-fidelity simulation output in near real time as you vary design parameters.

The three key advantages of adding the Modulus-OV extension:

  • This built-in visualization pipeline supports a small number of commonly used modalities such as streamlines, Scalar field slice, and Flow.
  • There is a near real-time simulation output for making design parameter changes and visualizing it on screen.
  • The rich ecosystem in Omniverse is now compatible for you to integrate with other extensions such as CAD tools, visualization tools for an end-to-end design, and simulation workflows. 

This is the first preview release of the Modulus-OV extension and the Modulus team welcomes any feedback or enhancement requests you may have. Please submit feedback to the Modulus NVIDIA Forum.

Enabling the Modulus extension

The Modulus extension is available with Omniverse Create. After you install Omniverse Create on a supported OS using Omniverse Launcher, install the Modulus extension. Then go into the extension window and search for ‘Modulus’. This will bring up the core extension to install and enable the Modulus extension. 

A screen recording shows the Omniverse Create program with the Modulus extension being toggled on from the Extensions option in the Windows panel.
Figure 1: Enabling the Modulus extension in Omniverse Create

For this preview release, Modulus extension is supported only on the Linux platform and the GPU Memory requirements for running both Omniverse Create and Modulus can be quite high. For existing scenarios, we have observed minimum GPU requirements of an NVIDIA RTX 3090 or higher and we recommend the RTX A6000 class GPU for ideal performance.

Visualizing an interactive simulation

Simulation scenarios are prepackaged examples that help users get familiar with the capabilities of the extension.

For now, the following preconfigured scenarios are available to experiment with: modulus_scenario_fpga

Load this scenario extension by searching for its name in the extension manager (in the following, we will use modulus_scenario_fpga). Install and enable the extension. If you do this for the first time, this process can take a few minutes for the pretrained model to be downloaded and installed on your machine.

This scenario is based on the parameterized 3D heat sink example in Modulus, which, with the OV extension enabled you can visualize the airflow through the field-programmable gate array (FPGA) geometry. 

In this scenario, the Modulus-trained parameterized neural network model is simulating airflow paths. The inference output data being used is the velocity magnitude, which is the airspeed at a given point defined on a volumetric surface. By putting a surface at a fairly low speed you can see where the airflow is slowing down, which would be the boundary, and as it hits the cooling fins shown in Figure 2.  

You can also analyze the airflow by using streamlines, which are computed by adding advecting particles through the airflow. You can also play with the texture of the airflow for a better understanding of the airflow.

A screen recording shows the Modulus Project Template for the Omniverse Create program with airflow and texture simulations.
 Figure 2. Visualizing and interactively modifying the simulation scenario

A set of common visualization modes is available with this release of the extension. Each mode will populate the stage that is currently open in Omniverse Create with visualization geometry, which will be updated as you change parameters.

  • Isosurface: Create an isosurface of the velocity magnitude.
  • Streamlines: Create a set of streamlines.
  • Slices: Add three axis-aligned slices of the velocity magnitude.

In addition, you can also vary the visualization parameters using knobs in the extension user interface. The model is not reevaluated when visualization parameters are modified. To learn about which parameters can be adjusted please refer to the OV integration documentation.

A screen recording shows the FPGA panel and the ability to change in real-time simulation variables in Omniverse Create using the Modulus extension.
Figure 3. Changing visualization parameters and seeing the results interactively in the extension user interface

Another game-changing aspect of Modulus and Physics-ML is the ability to train a model on a parameterized space that can be used to infer a design space defined by a set of design parameters. Users can expose this within the scenario as various parameters knobs, that can be changed to infer and visualize the new simulation output in near real time. When you change these design parameters, the model is reevaluated to infer the new geometry and the output is visualized.

A screen recording shows live-time changes to a heat sink visualization being made using the Modulus extension in Omniverse Create.
Figure 4. Changing design parameters like height, length, etc. of the fins of the heat sink

Learn more

To learn more about the extension and this example, please refer to the Discord Live session where we talk more about Modulus, its capabilities, and the Modulus OV extension. 

Download Modulus now and try the OV extension.

Figure 5. NVIDIA Omniverse Stream, getting started with Modulus

Discuss (0)