What attribute determines compressability / stiffness / elasticity of a prim?

I noticed that some of my cube prims are “compressing” when there’s another prim on top of them. How do I make them stiffer so they don’t compress?



Hi @dan.sandberg - The “compression” you’re seeing is likely due to the physics simulation in Omniverse Kit, which includes realistic interactions between objects such as forces and collisions.

To make a cube “stiffer” and prevent it from compressing under the weight of another object, you can adjust its physical properties. Specifically, you might want to increase the cube’s mass or adjust its material properties to make it less deformable.

Here’s how you can do it:

  1. Select the cube in the stage tree.
  2. In the Property tab, find the section labeled “Rigid Body” (if it’s not there, you can add it by clicking on the “+ Add” button and selecting “Physics > Rigid Body”).
  3. Increase the “Mass” value. The higher the mass, the more force it will take to move or deform the cube.
  4. If the cube still deforms, you might need to adjust its material properties. You can do this by adding a “Physics Material” component (Add > Physics > Physics Material) and adjusting the “Elasticity” or “Deformation” properties.

I added a Physics Material. And then I added “Deformable Body Material” – is this right? If this is necessary, then why are my “Cubes” with only “Rigid Body with Collider Present” applied compressing without “Deformable Body Material”?

Do I want to change the “Elasticity Damping” or “Young’s Modulus” or what? Do I have this right – normal “Material” just changes the appearance while “Physics Material” affects the simulation as far as compression and stretch go?

Also, why would a “Rigid Body with collider” compress at all? Doesn’t “Rigid” mean it shouldn’t be deformable?

Hi @dan.sandberg - The behavior you’re describing seems unusual, as, in a typical physics simulation, a basic object with “Rigid Body with Collider Present” applied should not compress under any circumstances because, as you suggested, “rigid” means it is not deformable.

However, in the context of physically-based animation and simulation, “Rigid Body” refers to an object that maintains its shape and only moves and rotates as a whole in response to forces. This is opposed to “Soft” or “Deformable” bodies that can change shape in response to forces.

When you apply a “Deformable Body Material,” then you are indeed making it possible for an object to change shape under pressure, stretch, or other forces. However, this should not be applied to your cubes if you want them to remain rigid and not compress.

The properties like “Young’s Modulus,” “Poisson’s Ratio,” “Damping,” and “Stiffness” are part of the deformable body material and affect how an object changes its shape. “Young’s Modulus,” for example, is a measure of elasticity, or the object’s tendency to return to its original shape after deformation.

On the other hand, “Elasticity Damping” is used to simulate energy loss of the material during deformation and can be used to control how fast the object returns to its original shape after it’s deformed.

So for rigid bodies, these parameters should have no effect, as a rigid body should not compress or deform.

Yes, you are correct, a typical “Material” in computer graphics often refers to the appearance properties of an object such as its color, texture, shininess, etc., which do not affect the physics simulation. However, “Physics Material” changes the physical properties of an object, affecting how it interacts with other objects and forces in the physics simulation.

If cubes with rigid body and collider are compressing, it could be due to some other settings in your simulation, or a possible issue with the physics engine.

I would recommend revisiting your simulation settings to ensure that no conflicting physics properties are applied to your cubes. If the issue still persists then I will forward this to right person who can help with the issue.

Interesting. I have a guess what I witnessed then. If you look at this USD, I put a cube with a lot of mass on top of a cube with little mass. When you hit play on the simulation, the upper cube penetrates the bottom cube but then comes back to the top. I guess this is a perfectly elastic collision?

two_cubes.zip (2.9 KB)

When I originally saw the compression, I had a prismatic joint that was pressing down on the top of the cubes. So I suppose that because of the force exerted by the joint, the cubes weren’t able to bounce back to their original size?

Does this sound right? If so how do I make so the cubes don’t penetrate each other? I didn’t see a setting for restitution or similar on the cubes.