Hello all, brand new user to this site, but I have a year or two of experience in using Grasshopper.
I am an architecture student working as part of a group researching a material that was developed some 10 years ago with a physics professor at a local university. I want to create a grasshopper model of its functionality to mimic the way it works in real life but I am unsure how to do it.
So into it: The material starts as a flat, euclidean surface. The material can be manufactured as any flat shape you choose, as well as in a range of thicknesses. Whats special about it is the material is āprogrammableā - you can decide ahead of time while you are making it, to have specific parts of the material be able to react (expand or contract) to stimuli and change. So in other words you can design, for example, certain areas on the surface to expand and others to contract when they interact with a certain chemical or radiation. Ill draw a sketch of what I mean below.
Material (Before/After):
So as you can see in this (basic) drawing, the material starts as a Euclidean, rectangular surface, but we have programmed the center area of the material to expand on stimuli. As a result, after the stimuli is given, what we will see is that the material will try to expand, encounter material around it that wants to stay in its current situation and a pressure will form between the two regions. Because of this, the material will either start to bulge upwards or downwards since that is the direction of least resistance. Additionally, we tend to see the rest of the material ābuckleā after a change like this, note the edges of the rectangle warp, as a result of the internal stresses of the material, even though they were designed to not contract or expand. Ultimately the material we have after stimuli is non-euclidean. For the sake of context, in real life you can design the material to expand, contract or stay unchanged in any number of regions, to any degree you want (this is a non binary change), in what ever configuration you want.
What I want to do is create a model that can do this. I think perhaps Kangaroo could be good for this application, but I honestly have limited experience with it. Ill explain what I think is the best way to make such a model below with a picture, but please feel free to suggest other directions.
My Idea: I think the best way to envision the behavior of the model is to āzoom inā and imagine the building blocks of the material like cells of a living thing or atoms in a solid. So in other words, something like the picture below, a sort of grid of points arranged in 2d. Between each point and its closest neighbors is a spring. This spring is the programmable portion of the material. After stimuli, the spring (lets say it starts at X length) will want to either expand or contract (to anywhere between 1.5X to 0.5X). The object of the model is to set a basic shape (rectangle, circle, whatever), decide which regions of it will have springs that want to expand and which regions will contract and then run a simulation of it to see what resulting shape we get. We ultimately want to have a final shape in mind for a specific space then design the correct flat shape that will be able to morph into the shape we wanted.
Model:
The drawing above is a little crude, but the idea to keep in mind is that the number of ācellsā or āatomsā in the final product should likely be in the thousands. The interaction between each due the contraction/expansion of the āspringsā between them is complicated - and Im not sure where to start.
Ill include two 3d scans I have of the real life material, and the way it interacts with stimuli. These two models highlight the way the material behaves as a product of its thickness . In real life, the material is obviously 3 dimensional though its flat like a sheet of paper. This thickness is the last part of the puzzle - and I am not sure the best way to incorporate this attribute into the final model with grasshopper. Below is the material at 0.1 mm thickness, and afterwards a separate trial at 0.25 mm. Note both started exactly the same, they start as disks of the same size, and they both have similarly designed regions set to expand and contract. The thickness of the material lends a sort of rigidity that prevents buckling and warping. Also note in both, the edges of the material are āwavyā as a result of the stretching of the material. You can achieve similar results at home if you take a piece of a plastic bag and tear it in half, the material will stretch in the center and along the new edges where it tore, you will get this wave pattern.
0.1mm:
0.25mm:
Please ask me anything if you didnāt understand any part of this - I can upload more images of the material to explain things if needed too.
Thank you in advance for your help!