SimScale Converter#

With the NVIDIA Omniverse™ SimScale Converter Extension, you can upload USD prims as models to SimScale and bring Computational Fluid Dynamics and Finite Element Analysis simulations into Omniverse.

Installation Instructions#

The SimScale Converter Extension is not enabled by default in Omniverse USD Composer and will need to be enabled for use.

  1. Open Omniverse USD Composer and click on Window -> Extensions to open the Extensions Manager.

Extensions Manager Menu
  1. Install and enable the SimScale Converter Extension.

Extensions Manager Window
  1. Click on Window -> SimScale (Beta) to open the Extension window.

SimScale Extension Menu

User Interface#

A floating SimScale window is shown after toggling on the SimScale (Beta) option.

SimScale Extension Window

Below is a description of each feature and more details are covered in the following sections.

Element

Description

Import From Disk

Imports a downloaded case from user specified folder

Dashboard

Directs user to SimScale Dashboard Web UI.

Login

Allows Extension to query SimScale data with an API Key.

Project

A combo box that shows available projects for the user account upon login.

Workbench

Opens the selected project in SimScale Workbench Web UI.

Refresh

Queries latest data from SimScale and refreshes the GUI.

Project Settings

Updates project settings.

Add Project

Adds a new project.

Geometry tab

  • Displays a list of geometries for the selected project.

  • Uploads USD prims as models to Simscale

  • Geometry Renaming

Simulation tab

  • Displays a list of simulation runs for the selected project.

  • Imports CFD or FEA simulation into Omniverse.

  • Simulation run renaming.

Import From Disk#

You can tell the Extension to import simulation result from a previously downloaded and extracted folder. See FEA Import Options or CFD Import Options for more details on importing options after the case data extraction.

Import From Disk Window

Field

Description

Type

Type of the simulation.

Currently tested and supported FEA types:

  • Static Analysis

  • Dynamic Analysis

  • Harmonic Analysis

Currently tested and supported CFD types:

  • Compressible

  • Incompressible

  • Pedestrian Wind Comfort

  • Incompressible LBM

Case Folder

The unzipped root folder that contains the simulation result.

Login#

SimScale Extension uses SimScale Python SDK and an API key is needed to query information from SimScale. Click on LOGIN button and connect using the API key.

User Credentials Window

Project Options#

Project Options Combobox

Note

Please make sure the selected project’s Allow API access option is enabled from SimScale. You can do so by going to the SimScale Dashboard. Click on your project and Edit Project -> Allow API Access

Project Combo Box#

Choose a project to work with and the list of geometries and simulation runs will be updated accordingly from the project selection.

Workbench Button#

Opens the selected project’s workbench in SimScale Web UI.

Refresh Button#

Refreshes the GUI elements with the latest data from SimScale.

Project Settings#

Updates project name, description, and unit.

Project Settings Window

Add Project#

Create a new project with specified project name, description, and unit.

Add Project Window

Geometry#

Geometry TreeView#

The TreeView shows a list of geometries for the selected project.

Geometry TreeView

Upload Geometry#

  1. Upload USD prims by selecting them in Omniverse USD Composer. To upload a cone as an example, navigate to ** Create > Mesh > Cone to add a cone to the USD stage.

  2. Click on the cone to select it and click on Add Selected Geometry button.

Add Cone
  1. Added geometries that haven’t been uploaded to SimScale have Push and Trash options next to them. Use Push option to push a single geometry or Push All to push all dirty geometries.

Push Geometry

Note

Enabling Optimize for PWC/LBM is recommended for LBM and PWC studies. For other simulation types this option needs to be disabled.

  1. Created timestamp and converted file format are shown after a successful upload.

Push Geometry Finished

Geometry Renaming#

Double-click on an already uploaded geometry or dirty geometry to rename it.

Geometry Rename Window

Simulation#

Simulation TreeView#

The TreeView shows a list of simulation runs for the selected project.

Simulation TreeView

Set Custom Cache location#

Simulation results are cached inside the user’s TEMP directory with ov_simscale_ext prefix by default. Users can delete cache from the cache folder to force re-download in case of data corruption. Click on the Cache Folder text field or the folder icon next to it to change cache to a custom location.

Simulation Run Renaming#

Double-click on a simulation run to rename it.

Simulation Rename Window

Download Simulation#

A Download button is shown for the selected simulation run if it doesn’t exist in the local cache. Click on the Download button to download it.

Import Simulation#

An Import button is shown for the selected simulation run if it exists in the local cache. Click on the Import button and an import options window will show up with options available for that simulation once the file extraction completes.

FEA Import Options#

Finite Element Analysis Import Options Window

Field

Description

Import Directory

The path to the directory to store the converted USDs. Support both local file system path and Nucleus URL.

USD format

USD (binary) or USDA (ascii)

Color Option

Description

Field

Scalar field to apply for color mapping.

Component

Selected scalar field’s component to apply for color mapping.

  1. Click on Convert to USD. A Session folder will be created inside the import directory after the conversion finishes along with the SimResult folder which contains the downloaded result from SimScale in .vtk, .foam, or .case format if you are importing from cloud.

Import Directory Structure
  1. Inside the Session folder, you will see a root USD file (MeshScene.usd in this case) that can be opened in Omniverse USD Composer.

Session Directory Structure
  1. Open the converted USD in Omniverse USD Composer to see the result.

Finite Element Analysis Visualization

CFD Import Options#

For Computational Fluid Dynamics simulations, the Extension shows additional import options described in the following tables.

Pedestrian Wind Comfort Import Options Window

Wind Data Option

Description

Direction

Wind direction to convert.

Result

Transient or average result to convert.

Note

Wind Data Option only shows up for Pedestrian Wind Comfort and Incompressible LBM simulations. Pedestrian Wind Comfort simulation contains both the Direction and Result options and Incompressible LBM only contains the Result option.

Slice Option

Description

Generate Slice

Whether to generate a slice from the volumetric data.

Origin

Origin of the slice.

Normal

Normal vector of the slice.

Stream Line Option

Description

Generate Streamlines

Whether to generate streamlines from the volumetic data.

Seed Type

Line or Point Cloud.

Max Line Length

Maximum length for stream lines.

Line Radius

Radius for stream lines.

Line Seed Option

Description

Point1

First point’s location in x, y, z for the line seed.

Point2

Second point’s location in x, y, z for the line seed.

Resolution

Divide line into Resolution number of pieces.

Point Cloud Seed Option

Description

Center

Point location in x, y, z.

Radius

Radius for the point cloud.

No. of points

Number of points

VDB Option

Description

Generate .vdb

Whether to convert simulation to .vdb file(s) under the Session/Volumes folder.

Generate for all timesteps

Whether to generate .vdb file(s) for all the extracted timesteps.

Generate For Time

A Combobox to pick the desired timestep to convert to .vdb

Sampling Dimensions

Sampling dimension x, y, z for the .vdb files.

Note

VDB Options are for advanced users who are familiar with NanoVDB / NeuralVDB as additional manual setups are required in Omniverse USD Composer. Please check out the Omniverse Flow guide to learn more about it.

Note

Additional slice, streamline, and VDB options are ignored if the extracted case contains no volumetric data.

  1. Click on Convert to USD. If convert to .vdb option’s toggled on, VolumeScene would also be generated in addition to the MeshScene.

Session Directory Structure with Volume
  1. Open the MeshScene to see the result.

Pedestrian Wind Comfort Visualization

Release Notes#

1.3.5#

  • Upgraded to Kit 105.0, Python 3.10, and certifi 2022.12.07

  • Auto adjust VDB sampling dimensions to simulation domain.

  • Added feature to pick a single timestep to convert to .vdb.

  • Added feature to set custom cache location for cloud imports.

  • Minor UX Improvements and bug fixes.

1.1.4#

  • Upgraded to Kit 104.2

  • UX bug fixes and improvements

  • Added USD prim to represent seed visually for streamline option.

  • Fixed duplicated geometry upload

1.0.18#

  • Added feature to rename geometries and simulation runs.

  • Added feature to upload USD prims as STL format.

  • Added feature to convert FEA simulations to USDs. Currently tested and supported types are static, dynamic, and harmonic analyses.

  • Added feature to convert CFD simulations to USDs. Currently tested and supported types are Compressible, Incompressible, Incompressible LBM, and Pedestrian Wind Comfort analyses.

  • Added color options to map selected scalar fields and components to colors.

  • Added feature to export CFD simulations as .vdb files for advance users who are familiar with manual NanoVDB or NeuralVDB Setup.

  • Added streamline options with line and point cloud seed types for CFD simulations.

  • Added slice options for CFD simulations.

Attributions#

Future Work#

  • Support USD conversion to other CAD formats in addition to STL. To work with other CAD format, for the time being a user has to upload it through SimScale’s web interface, bring the base geometry into Omniverse and overlay it with the imported simulation result.

  • Test and add support for more simulation types.

Known Issues#

  • Slower connection to SimScale while on VPN.

  • API calls via SimScale Python SDK sometimes get no response when a project’s Allow API access option is disabled.