Varying the height of a gridshell inflation

Hi all!

I am working on an ETFE inflated gridshell structure (reference image of sorts following) and spliced the script using Grasshopper and Weaverbird scripts I found on helpful forums like these.
A reference of the inflation I was trying to achieve:

I am incredibly inexperienced with grasshopper and I am stuck on a problem that seems rather simple but specific. With the gridshell pattern I’ve used, there are proper quadrangles formed which look good but there are smaller triangles at the edges that are causing height problems. Currently my script has all the amplitudes to be the same for each subdivision piece, but I would like for the heights to be proportional to the area of the polygon they are “inflating” rather than a constant value for each. An attractor might work, or maybe using lists, but I’m not entirely sure how to go about implementing that system into my script. I just want a way to control/reduce the heights of these edge pieces so that they are not as prominent as the middle quadrangles! Also, if you have any suggestions or design feedback on how to make a “cleaner” gridshell pattern to reduce triangles like this I am all ears!

This is waht my gh produces:

These are the unwanted artefacts:

And this is what it looks like once the pieces are exported in mesh, weould like for these smaller pieces to “inflate less” but not sure of the best way to control that:

I think the msot relevant part of my gh code is here, where I brutishly move the points up along their normals by a set value (currrently an amplitdue of 1), which is then plugged into weaverbird mesh systems.

My gh and 3dm attached here:
230305_gridshell.gh (22.0 KB)
diagrid test 2.3dm (6.1 MB)

I don’t have some plugin components so am hesitant about posting the file I modified…? But it seems to me that you can multiply your Z vectors by the remapped area of each surface fragment?


gridshell_2023Mar5a.gh (27.6 KB)

P.S. Or by the remapped distance from each point to the boundary, perhaps with Graph Mapper and/or a range limiter in either case?

1 Like

The first option worked amazingly, thank you!