Self intersecting FEM - how to avoid it ?

   4158   6   2
User Avatar
Member
24 posts
Joined: Dec. 2014
Offline
Hi,

I've been trying to make a fairly simple rope, but I'm not able to get rid of self intersection. Is FEM even the right tool to do this ? Because there is inherently a large number of self collisions in this example, and the gravity keeps on pushing the object against itself.
Edited by alecaille - Nov. 17, 2017 12:31:50

Attachments:
selfcollides.mantra2.0104.jpg (200.9 KB)
femrope.hipnc (175.7 KB)

User Avatar
Member
806 posts
Joined: Oct. 2016
Offline
Moin,

I assume you created your scene file in 16.5 - it threw some errors for me (I don't have 16.5). But anyway, if you want to use FEM for this, the most likely problem is that your geometry isn't divided into small enough tets. When you embed the tets geometry (“solidembed” node), the default values are good for starting off, but you often have to change the min/max scale values to match the simulation requirements. Try basing your tets on 1 and then set max to 1.2 and min to 0.2 or something like that - might already solve the problem. You can also try to enlarge the collision geo, but given the slow solving of FEM simulations, my personal preference is to work with original sizes as far as possible.

Also, collisions often appear due to motion that is just too fast, so you may have to increase your substeps to catch all penetrations (but with your image given above I assume you have to tweak the tets size first).

If you do not want to use FEM for this specific simulation (for performance reason) I am sure you could get good results from Houdini's cloth solver (which, as I understand, isn't exactly a FEM solver internally) OR even a PBD (position based dynamics) solver like “grains”.

Marc

P.S. / Edit - attached is a frame from a quick “grain” (particle based in this case) solver setup. No intersections. But (as to be expected with a particle based solution) quite hard to control in terms of “haptics”. Dramatically faster than FEM, but still a lot slower than specialized solutions (like syFlex etc).
Edited by malbrecht - Nov. 24, 2017 09:09:09

Attachments:
grainsolver.PNG (1.1 MB)

---
Out of here. Being called a dick after having supported Houdini users for years is over my paygrade.
I will work for money, but NOT for "you have to provide people with free products" Indie-artists.
Good bye.
https://www.marc-albrecht.de [www.marc-albrecht.de]
User Avatar
Member
24 posts
Joined: Dec. 2014
Offline
Thanks, I will explore other solutions. It looks like I have managed to get rid of self collision by increasing the collision substep count at the FEM solver level, and I'm happy with the result.

Is there a way to display the self collisions clearly, in order to really know when the number of self collisions is decreasing as I'm tweaking the parameters and rerunning the sim ?
User Avatar
Member
24 posts
Joined: Dec. 2014
Offline
malbrecht
Moin,

I assume you created your scene file in 16.5 - it threw some errors for me (I don't have 16.5). But anyway, if you want to use FEM for this, the most likely problem is that your geometry isn't divided into small enough tets. When you embed the tets geometry (“solidembed” node), the default values are good for starting off, but you often have to change the min/max scale values to match the simulation requirements. Try basing your tets on 1 and then set max to 1.2 and min to 0.2 or something like that - might already solve the problem. You can also try to enlarge the collision geo, but given the slow solving of FEM simulations, my personal preference is to work with original sizes as far as possible.

Also, collisions often appear due to motion that is just too fast, so you may have to increase your substeps to catch all penetrations (but with your image given above I assume you have to tweak the tets size first).

If you do not want to use FEM for this specific simulation (for performance reason) I am sure you could get good results from Houdini's cloth solver (which, as I understand, isn't exactly a FEM solver internally) OR even a PBD (position based dynamics) solver like “grains”.

Marc

P.S. / Edit - attached is a frame from a quick “grain” (particle based in this case) solver setup. No intersections. But (as to be expected with a particle based solution) quite hard to control in terms of “haptics”. Dramatically faster than FEM, but still a lot slower than specialized solutions (like syFlex etc).


This is a bit unrelated, but I've been trying POP grains, and using 16.5 on either Linux or Windows (same hardware), Houdini throws me a Python tuple error when I try to create a second POP grain object.. I'm pretty sure sidefx didn't release a version of Houdini with such a bug, so I'm trying to understand why 16.5 throws me this:

Traceback (most recent call last):
  File "dynamics_popgrainswet", line 4, in <module>
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.268/houdini/python2.7libs\doppoptoolutils.py", line 650, in createSandSource
    landinnode = createSandSourceFromObject(origobj, style)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.268/houdini/python2.7libs\doppoptoolutils.py", line 437, in createSandSourceFromObject
    0, 0)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.268/houdini/python2.7libs\toolutils.py", line 357, in connectInputsAndOutputs
    connectMultiInputsAndOutputs(newnode, branch, inputs, outputs)
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.268/houdini/python2.7libs\toolutils.py", line 338, in connectMultiInputsAndOutputs
    outputs[i][2])
IndexError: tuple index out of range

At first I thought it could be a drive failure, meaning causing a corrupted file or something, but I can replicate with a different OS on a different drive.
Or is this a limitation of Apprentice ? I don't see it in the description though. Because it doesn't make any sense to me right now. I'm going to downgrade the versions until it works..
User Avatar
Member
806 posts
Joined: Oct. 2016
Offline
Sorry, I don't have or use 16.5 - you might actually want to file a test scene to support. Even if you made a boo-boo in setting things up, such errors should be caught.

Marc
---
Out of here. Being called a dick after having supported Houdini users for years is over my paygrade.
I will work for money, but NOT for "you have to provide people with free products" Indie-artists.
Good bye.
https://www.marc-albrecht.de [www.marc-albrecht.de]
User Avatar
Member
24 posts
Joined: Dec. 2014
Offline
malbrecht
Moin,

I assume you created your scene file in 16.5 - it threw some errors for me (I don't have 16.5). But anyway, if you want to use FEM for this, the most likely problem is that your geometry isn't divided into small enough tets. When you embed the tets geometry (“solidembed” node), the default values are good for starting off, but you often have to change the min/max scale values to match the simulation requirements. Try basing your tets on 1 and then set max to 1.2 and min to 0.2 or something like that - might already solve the problem. You can also try to enlarge the collision geo, but given the slow solving of FEM simulations, my personal preference is to work with original sizes as far as possible.

Also, collisions often appear due to motion that is just too fast, so you may have to increase your substeps to catch all penetrations (but with your image given above I assume you have to tweak the tets size first).

If you do not want to use FEM for this specific simulation (for performance reason) I am sure you could get good results from Houdini's cloth solver (which, as I understand, isn't exactly a FEM solver internally) OR even a PBD (position based dynamics) solver like “grains”.

Marc

P.S. / Edit - attached is a frame from a quick “grain” (particle based in this case) solver setup. No intersections. But (as to be expected with a particle based solution) quite hard to control in terms of “haptics”. Dramatically faster than FEM, but still a lot slower than specialized solutions (like syFlex etc).


Ok, can you explain how you achieved the smooth surface ? I did a few tests but I can't get the spheres to really disappear at render time.
User Avatar
Member
806 posts
Joined: Oct. 2016
Offline
Hi,

I am on my way to a client (for a week) and won't have access to Houdini (unfortunately none of my clients are using H) - could you, please, help me with some detail? I didn't do anything “specific”, just uses a high enough number of control points to not create bumps (the spheres are only “visual helpers”, in H16 you can just switch off their geometry object node altogether - or, if you are having problems with the sprites, just bypass the sprite node).

I hope this helps!

Marc
---
Out of here. Being called a dick after having supported Houdini users for years is over my paygrade.
I will work for money, but NOT for "you have to provide people with free products" Indie-artists.
Good bye.
https://www.marc-albrecht.de [www.marc-albrecht.de]
  • Quick Links