Deflating and folding a membrane

I am currently trying to deflate and fold an inflated geometry. Similar to the following nice video - ok maybe not that many folds, but the same principle. (and my current simulation is also lacking this great soundtrack in the background)

relevant scene starts at around 0:50

Currently I am approaching this challenge the following way:

  • set up a Kangaroo simulation with negative pressure applied to the geometry (in order to simulate vacuum)
  • making sure that there are no self-intersections by using the Radii component
  • set up “folding devices”, which are controlled by an incrementally growing number (which is retrieved by attaching the Trigger component to a number and adding it up every time the trigger runs:

My current solution seem to be a bit of a (non-elegant) workaround. Are there any better approaches to tackle this kind of simulation?

p.s.: as a side issue, I do also have the feeling that the Trigger refresh system is interfering with Kangaroo’s own internal Trigger and making everything slower - but I am not clear on that yet…

p.p.s.: I guess the simulation shown in the video are actually several separate simulations stitched into one animation?

p.p.p.s.: a cool video, I just found regarding this topic:

1 Like

I don’t think this should cause problems, but I notice you have the timer delay set to 500ms. Reducing that to the minimum would speed things up.

To avoid needing that extra timer and counter though, you could use the StepSolver with the input to Animate as just a simple boolean toggle.
This updates the simulation only when the inputs change, such as when you move the anchors.
To reset the simulation with this setup you’ll need to switch the Animate toggle off and on again. (12.8 KB)

Yes that makes sense, somehow overlooked that…

This is a great workaround - will experiment with it a bit. Thanks a lot!

Btw.: I connected the Animation slider to a Larger component, which automatically gives a True value, if the slider is running / larger than 0.

You actually don’t even need to do that - when any input parameter is type Boolean and you give it a number, GH automatically takes it as False if the number = 0 and True otherwise

oh, even simpler - love it!

now I only need to find an elegant way to create a simulation timeline, with different components acting at certain times…

I have been folding my half gallon [almond] milk cartons this way for years to take less space in the trash and often wondered at the natural origami nature of it, following the path of least resistance.


Burn it. :wink:

// Rolf