3D deformation of a 2D frame due to shrinkage

Hello everyone,

I would like to get some opinions on how to simulate something in gh that I have been experimenting within physical models. In the attached photos you can see some cork-bioplastic tiles. Initially, cork works as 2d frame to contain bioplastic while it dehydrates. But as bioplastic dehydrates, it shrinks and as a result, deforms the cork frame 3d. From physical experiments, I know that there are so many other parameters apart from frame(humidity, hanging orientation, temperature, bioplastic thickness and formula, etc.) that affect the exact form how it deforms but would like to have an easy way to test different frame variations even if it is only somewhat accurate.
I stumbled upon some papers and blogs that to me seem relevanthttps://vimeo.com/user15741966, https://www.researchgate.net/publication/326552014_Tailoring_Self-Formation_fabrication_and_simulation_of_membrane-actuated_stiffness_gradient_composites.

However, not sure where to start. Maybe someone already had a similar problem?

1 Like

Hi @aydagris,

This does look like something that would be possible to simulate. Have a look here for an example of something similar:

I’ll try and post another example soon showing combination with shells

@aydagris,

cool project!

so many options!

No ‘expert’ knowledge here :slight_smile:

Here’s a naughty file with some options:
hybrid_deformer_sample.gh (60.5 KB)
I have been playing with similar stuff and can’t make time for housekeeping.

Anyway,
it has a ‘basic’ option involving twisting of a 2D shape (edit 3 lol: though it needs not be 2D), perhaps worth playing with:


I suppose you’ll eventually adapt to a full minimal membrane within the boundary instead of the ribbon I show…

Within the same file, you can navigate to the ‘kangaroo section’ and play with some cylindrical points to generate a different object with ‘physical behavior’:


…surely less elegant than whatever Daniel returns with (just wait :wink: )

Nonetheless, part of what I show you I adapted from the examples here and may help you in a similar way to what’s in the post shared by Daniel.

It’s all kangaroo anyway :slight_smile:

edit : I believe a nicer aesthetic will result from using spatial deform during or after the main shape is generated

edit 2:
‘due to shrinkage’

also meant to point out the (more kangaroo) knot minimizer

Hi Daniel,

Big thanks for the examples and tips. Before I dive in subdividing the frame and mesh into segments(as seen in the photos) thought to play around with basic geometry shapes to get the grip of it and there are few trivial(probably) things bothering me.

I noticed that the rod component often throws me an error: Object reference not set to an instance of an object. It flashes red as I slide through the min-max edge length slider. Additionally, if I just replace with new rod component it’s all good to go again. So I was wondering if I don’t see something or something weird is going on internally in that component?
Also, solver throws this error once in while: 1. Solution exception:Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index.

Sorry for silly questions but don’t want to move further before I get this. Thanks again. bio_modules_291220.gh (14.8 KB)

Hi - not silly questions at all.
It looks like something is going wrong inside the Rod component.
All that component does though is create angle goals between consecutive segments, and length goals for each segment. So we can replace it by creating those goals ourselves like this:
bio_modules_291220.gh (17.9 KB)

Also, when switching between different meshes, the Grab component can sometimes throw an error if the index of the last grabbed point no longer exists in the simulation. This should go away though when you reset the simulation and try grabbing a new point.

Hi again Daniel,

Big thanks for the input, it really helped to get things rolling. I changed some things with remeshing, especially when I tried to introduce internal divisions (first creating surfaces for all “areas” within the tile, first joining surfaces, then meshing it, so I would get matching vertices for the faces that are next to division line).
I did some tests for the pieces that have internal division and it does have similar behaviour as the actual tiles!

Sometimes though I get funky twists(see bellow)


Is there a way to stop the bending once the edge touches the mesh?

Otherwise super happy this is getting into shape(literally)!
bio_modules_050121.3dm (4.0 MB)

bio_modules_050121.gh (25.2 KB)