Self collision mis-behaving on inflated ball

I’m trying to mimic a form Anish Kapoor would maybe create by having a loosely inflated ball draped over a wall. I don’t want the mesh of the ball to collapse over itself, so I would like to introduce self-collision…this is where I’m having trouble.

I’m attempting to use the standard technique where you apply the collision spheres to each vertices of the mesh (using the default radius of 1). But when I attempt to run this, the inflated sphere vanishes immediately. Any idea where I could be going wrong?

As a side note…I’m having trouble determining when I should use Kangaroo’s ‘mesh edges’ component vs. the ‘length’ component when dealing with mesh deformations. Any clarity would also be appreciated.

2018.06.27_mcneel_forum.gh (19.5 KB)

Here’s a first go at improving this:


2018.06.27_mcneel_forum2.gh (26.9 KB)

4 Likes

Your sphere mesh have duplicate vertices.
(If you extract and use them with sphere collide it will make the whole mesh “break” because kangaroo would cull points at first iteration, but sphere collide will still try to “divide” a single particle… invalid mesh.)
Use “Combine and Clean” component to remove unneeded vertexes, then it works.
combine%26clean

2 Likes

One of the main issues with the file was that the way the mesh was created resulted in many duplicate vertices, which were causing problems down the line with the Kangaroo goals. A mesh clean component solves this, as Riccardo shows.

-and about the use of spheres for self collision - it usually works best if the mesh has fairly similar edge lengths, and the sphere radius is around half this length. Much bigger and the vertices will already be colliding with their neighbours, much less and the gaps between them could allow the mesh to pass through itself.
For the case of a sphere it might work better to instead of the quadball, use a icosahedron with loop subdivision in Weaverbird, since the resulting edges are closer to equal in length.

2 Likes

ballsquish

4 Likes

Seeing such wonderful examples as Daniel has here just deflates me…

Thanks Dan, I have to try that some time.

Hey guys im having a very similar issue and seeking help. I have a form of a pitched roof house im trying to inflate and collide against a dynamically relaxed voronoi net surrounding the pitched roof to create interesting forms. Im very new to grasshopper so i thought maybe this page can help me. inflatetest.3dm (164.0 KB)
inflateaboxmesh2.ghx (414.9 KB)

I’ll reply on the other thread you started. There’s no need to post the same question multiple times.

Daniel,

In regard to your earlier post in this thread that has the gif…

Notice how after the ball hits the wall and the pressure causes it to rebound throwing it off to the side.

I’ve been having trouble creating that motion. It seems like most times I try to have an object bounce or rebound, the force component just over powers any motion besides the z direction. Do you have any advice for getting object to bounce? Is there more to it than just using the force component and plugging in a negative Z vector?

The main difference there was using the ‘bouncy’ solver component, which preserves more momentum between iterations, instead of just trying to reach equilibrium as efficiently as possible, as the standard solver does. I’ll see if I can find that definition again.

1 Like