Real-Time Interactive Deformation

I’m working on an app that would allow a user to move surgical objects within a thoracic cavity and push the lungs aside. This would require real-time, interactive deformation of the lungs. My initial thought would be to rig the lung object with a series of bones that could be pushed around using a collider object. When the collider was not in contact or close proximity to the bones, they would gradually return to their original positions. There are several things I’m unsure about though that I would like to ask.

  1. Can a collider object be set up to push the bone out of the way with a proximity falloff. Would this be scripting or could it be done natively?

  2. Can the bones be set up so they themselves are collider objects that would move each other…, i.e., if the instrument were pushing one bone out of the way and it ran into another bone, then that bone would also be pushed out of the way. This should help to prevent interpenetration and artifacting.

Any help would be greatly appreciated… even just to get me started.

Thanks in advance,

John

You can manipulate the verts of your mesh instead of using bones. This would allow you to create some really simple distance-based constraints - OR - you could create empty physics objects that correlate to verts in your mesh and join those invisible rigid bodies. When the user interacts with those colliders, you would update your mesh vertices.

This kind of solution would be incredibly powerful if combined with vertex color weighting for specifying per-region falloff commonly found in organic tissue.

MeshFilter

MeshFilter Scripting

Procedural Examples - Deforming a mesh using mouse input.

I know this is old but what about a really rigid cloth physics lung. I have done it with a sphere. It acted like a ball that was inflated but not fully. It colided with things the way I think you’d like it too.