Omniverse capabilites for multibody simulations

I want to create a digital twin of a physical prototype being created in the upcoming months. The prototype is consisting of connected flexible and rigid parts. Input forces, and output motion are to be measured as part of a test program to obtain dynamic properties. The idea is to create a digital twin in Omniverse and tweak the properties from measurements to get similar dynamic behavior.

In order to achieve this I will need to accurately set material properties and boundary conditions, and subject the twin to physical loads equal to the ones the physical prototype is subjected to. Further I would need to output the motion somehow in points of interest and export and plot these results for calibrating the model.

Do you think what I am describing is possible to do with Omniverse? What will the main challenge be?

As a test of whether Omniverse is the right tool I will be starting simple with a single flexible part. I have been watching the recent videos showcasing Omniverse Create with deformable bodies. I think this is a good starting point as the hyper flexibility seen is necessary for the prototype.

  • Can I define force sequences to go into lines, faces or nodes of the mesh (how)?
  • Can I output the motion of defined parts of the mesh to a file (how)? Plot it?
  • Is it possible to start the setup of the assembly, materials, physics etc. in Omniverse Create and continue in Code or Isac Sim? Is this step necessary to obtain the described type of functionality?

Hi Even,

  • We don’t yet have an API to apply forces to deformable object directly, but this is in the works and should be included in a future release. In the meantime, you could attach a rigid body with low mass to the deformable body and apply a force to the rigid body. See Deformable-Body Simulation — Omniverse Create documentation
  • You can access the velocity of the simulation-mesh vertices via the USD attribute physxDeformable:simulationVelocities. You could record the values using Python in a simulation-step callback. See the Paint Ball Emitter demo source code for an example.
  • Yes, that should be possible. You can store the setup as a USD and then load in another app.

Hope this helps,

Hi Philipp,

That was an encouraging answer - Thank you! I have intermediate programming skills and I assume what you are describing could both be set up in both Omniverse Create and Code through python scripts so that the suggested digital twin could be realized.

I am eager to get this up and running, but after my initial searches for callbacks in omniverse I end up with Nvidia PhysX documentation and when opening the paint ball emitter demo in either Create or Code I see no python code. I am also not able to find any documentation describing the scene in detail.

Can you lead me to some starter documentation for how to start with coding for physics in these environments? Where can I find more detailed programming documentations for setting forces, callbacks, attributes etc. ? Do the demo examples contain documentation - Where? Another thing I find confusing is that both Create and Code accept python scripts - Why separate into two (or more) environments?

There is nothing special about coding for physics, apart from using some Physics library API like the step callback. The demo source code is available, see next to the load button you can open the source.

You can learn more about physics-specific API here: Omni PhysX — omni_physics 104.2.0 documentation

For how to code Python for Omniverse, I would guess that Code has some good tutorials.