ETFE Cushion

Hello, Im trying to create an inflatable cushion along a surface with Kangaroo2. However the path is not working. What do i need to change? Thank you in advance

efte_cushion.3dm (46.5 KB) etfe cushion.gh (11.0 KB)

Hello @carmenrubio1,

Like in real life, you can’t inflate an object that is not a volume!
Imagine a cushion! Even if flat and not inflated, it has the potential to be, because it’s more or less airtight, has a sealable intake of sorts, and at least two sides that are sown, glued, or fused together, forming the pneu. All these parameters must also be met to simulate this, except the intake, which doesn’t even have to exist.

Now, could you be a little more precise on how you want the end result to look? What shape are you after? Do you want a single air chamber or a couple? If you want the air structure to stand like this, without supports, you probably need to be very peculiar about the design.
Your current geometry, when inflated, would probably look like a slightly bend salami.

Here’s a mesh inflation example using Kangaroo2:

inflation_mesh

Some mesh components from Weaverbird are also used.

Depending on what your end goal is, you might want to introduce some more simulation elements.
A collision plane would be great to introduce some sort of ground condition.
You could also add specific anchor points, where the air structure would be fastened to supports or something else. These could be fixed or movable in only some directions to get maybe more interesting results (if your using the simulation for form-finding purposes).

inflate_mesh.gh (23.9 KB)

7 Likes

Hi!!Thank you so much for your answer. I was trying to create monolayer efte panels that would be atached to the perimeter of the surface. Its just a part component of a bigger facade. Therefore the perimeter, as the cushion frame, would be the anchor points. Yes I was looking for that slightly bend salami aspect. Or to get multiple air chamber, however for that I would need as you said a volume-mesh :slight_smile: When I open the file it does not recognice the Pythonic Mesh Loft, is that from Weaverbird??

Nope, that is a custom component that I wrote in Python. You have to install GHPython, if you are using an older Rhino version!

Fun!

etfe cushion_NB Edit.gh (23.3 KB)

  • Excuse the bump -

Hi @Nick_Bruscia, thank you for sharing your solution here.

For a workproject I’m trying to create a series of inflated ETFE cushion shapes.

Unfortunately replacing the original input surface in your script with my new one doesn’t yield results. I think the sctipt works up until the Solver and even though it runs I’m getting a list on Nulls as result:

I have quite some NURBS/Brep GH experience, but I’m an absolute Kangaroo and even Mesh beginner. I can not seem to figure out what is causing the Solver to return Nulls.

I’ve tried changing some of the parameters as my surface is a much larger scale than the original input surface. For clarity I’ve marked all the original inputs orange and marked the new trials in blue.

Forumquestion_Kangaroo Cushion.gh (23.2 KB)

It would be fantastic if you could steer me in the right direction with this, I’m very keen to learn more about Kangaroo.

Thanks in advance!

Mark

Greetings @Mark_Keukens
This one had me stumped for a few minutes, but it seems to be an issue of scale. I was having the same problem with your target surface, which was 14 meters long. I scaled it back to 1 meter, and had to increase the strength of the Line goal much higher (~100) while keeping the strength of the Pressure very low (<1). Scaling back further increases the stability a little.

I remember scale was an issue in previous versions, especially with bending simulation. I believe that issue has been solved, though I’m having trouble locating that thread. @DanielPiker may be able to share more detail about the scale : strength ratio in your case. In the meantime, I hope this file is helpful.

Forumquestion_Kangaroo Cushion_edit.gh (21.1 KB)

1 Like

Yes, this is the expected behaviour. Pressure is dependent on area, so the force will increase as the square of the scaling factor, while the 1d elements scale linearly. So changing the size of the model can mean a much lower value is needed as the Strength input for the Pressure goal.

2 Likes

Thank you @Nick_Bruscia and @Daniel_Piker, the underlying principle of the squared relationship between scale factor and force over area makes total sense. I’m excited to dive further into these simulations. Have a great day!

And just to confirm if I’m understanding correctly:

The Pressure component will automatically ‘scale’ the Normal force proportional to the area of the Faces, whilst the Length(Line) component needs it Strength input to be scaled quadratically in relation to the scale factor (either manually or parametrically).

Here’s an example showing a combination of Length and Pressure and how to scale it while keeping the same shape:
pressurescale.gh (14.3 KB)
(the lower part is simulated at larger scale then scaled down to show it matches the upper simulation)

The Strength value we are providing for the Pressure goal is a value per unit area, and is being applied to a mesh whose area increases when we scale it, so we don’t need to change anything.
The Strength input you provide for the ‘Length’ goal is taken as the spring constant k.
If we want to calculate k for a real material, this can be found as k=(E*A)/L, where E is the Young’s modulus, A is the cross sectional area and L is the length.

Scaling a mesh triangle obviously increases its area, but for the line elements we are not actually geometrically modelling their cross section, but instead providing them as 1d elements, so we need to adjust the strength inputs accordingly.

Thank you Daniel!

Your description and example script are very clear and insightfull!

This is like going back to school and I mean that in the most positive of ways because I loved my physics class.

I want to apply this to my intended mesh, which comes from a split and filleted surface that I then explode and recreate by means of a sweep to get a clean untrimmed surface.

I then divide the area of my mesh by the area of the mesh in your example file and use that as the scale factor. For some reason however, I’m not getting any change, Kangaroo just outputs a flat mesh. I’ve tried tinkering with the scale factor, Edge Length strength and Pressure Strength inputs, but to no effect so far.

I have included the steps mentioned above in the script below as I might have made mistakes in previous steps. I’m struggling to understand the relationship between surfaces and mesh topology as a whole, I tend to get pretty disorganized meshes on most of my trials, which lead to inconsistent results in Kangaroo.

Forumquestion_pressure flat mesh.gh (72.5 KB)

I hope I have stated my issue cleary, looking forward to any feedback and tips you might be able to give.

Best regards,

Mark