(Help) Trapezoidal/Triangular Facade Pattern with Grasshopper


Hey everyone

Does anyone have an idea as to how I can make a patter similar to the on in the picture?
I have tried everything from voroni and Delauny meshes to Substrate with Cull Pattern (which gave me the closest results) but they are no where near this pattern.I have tried using all the native grasshopper mesh tools but I am open to using plugins like weaverbird or parakeet if they will help me achieve a similar result.

Thanks in advance

Vornoi is the way to go. Can you show some of the samples you have done. Why would you say they are not “correct”?

1 Like

So here would be a very rough 2d outline of how I would go about it:
As @scottd mentioned with Voronoi. There are various ways to finetune the pattern and also move it into 3d space (Map to surface).


Voronoi_Scatter.gh (8.5 KB)

2 Likes

This tessellation is a recursive one. like substrate tool, or ceramic cracks

Gilbert Tessellation with multiple velocities is also a bit similar (Parakeet or Nautilus)

Here some “Multi velocities” Gilbert tessellation.

3 Likes



The problem is I don’t exactly know how to approach making this pattern with voronoi as the geometry I need is supposed to be only irregular sharp-angled quads and triangles while in most instances voronoi patterns produce 5 or 6 sides of geometry and I don’t exatcly know how I can change the behaviour

I also tried using substrate which made close results on some breps what I concluded is that if I am able to divide a surface into several smaller surfaces and apply the same substrate method it might lead to a closer result
@felix.brunold 's Script is I think a step closer to what i am aiming for
Above are the scripts I used

Maybe you could mix them both voro and the tesselation. Use the tesselation with 1 or 2 recursions and then use the voro. When you use only a few points in your voro your more likely to get surfaces with only 3/4 edges

1 Like


(Left to Right)(Recursive Mix,Recursive Voronoi,Recursive Substrates 2 and 3,Original Pattern)

Okay so I spent a fair amount of time testing and tweaking and reached a few possibillites as to how I can approach it
Going with @felix.brunold 's suggestion using Voronoi with Substrate looks promising provided I make a suitable amount of recursions
and am able to rotate the existing voronoi cells the way we rotate the substrate tesselation
I also tried making substrates with several recursions and nesting them
I did encounter a problem however where the substrates curves would extend beyond the boundaries of the cells or parent substrates I then joined the substrate curves and made them split the parent brep into smaller breps and used the boundaries to form some type of cell with the substrates since they are baked as individual curves and not as cells (unlike voronoi) which did solve the problem..

This is all well and good but these methods would require more and more recursions to produce a similar result,I did try and use the Anemone plugin to make some kind of loop but I really couldn’t wrap my head around how it works

It feels like I am grinding much and the solution seems simpler then whatever it is I am doing.
Though the Gilbert tesselation script provided by @laurent_delrieu is the closest result although I did encounter a slight problem with it which I don’t understand much since I’m not really that experienced with grasshopper. :sweat_smile:

Trapezoidal Triangular Pattern Test Scripts.gh (306.0 KB)

2 Likes

This is the closest method to the desired result but I did encounter a few problems with it


The default surface on an XY plane will produce the normal desired result

Once I rotate it to XZ plane though this occurs but was able to fix it when I changed the output to the Z axis

But when I rotate it to any other plane other than the standard XY,XZ,YZ planes
the curves within the pattern interesect each other for some reason and I do not know what the problem is exactly.I tried setting the planes to the corner of the surface but that didn’t work.

Henning Larsen Architects state: “The white facade of the cultural centre in Hangzhou, China, is punctuated with geometric windows designed to create a pattern like cracked ice on a frozen lake” (source: https://www.dezeen.com/2019/07/15/hangzhou-yuhang-opera-henning-larsen-china-architecture-news/ )

I think you can get the very same look of that facade using Gilbert tesselation as mentioned by Laurent, and I say so because I see multiple fracture lines that don’t start/end exactly on the boundary of the facade itself, but start/end onto other fracture lines

for instance, this blue line is for sure one of the very first splitting lines:

but in order for it to end like that in the middle of the facade, it means that another fracture-line had to exist in that location:

and for that green line to stop like that in the middle of the facade, it must have met another splitting line:

which must have met two… and so on until like this:

so, in order to justify the existence of that blue line, we created another 9 lines (number 4 is indeed listed two times)

my eye tells me that there would also be a division somewhere here on the right (in white), so this might be (and would, for this study) our first division layer:

now that we have determined the first layer, we do the same and divide each cell again (red color), and the number of division lines we grow for each cell might depend on its area:

and again:

you keep dividing each resulting cell independently until you get in a final situation where each resulting fragment has an area that lies inside the domain of choice: the keyword is “independently”, the division that takes place inside a cell is not related to what happens to its neighbors

3 Likes

The error here are expected, this script is intended to work only in XY plane. I have now some that works on mesh.

I think it is worth you look at that also

It is very easy to get lines

change that
Curve curve = Curve.CreateControlPointCurve(new Point3d{p0, p1, p2, p3}, 3);
to
Curve curve = new LineCurve(p0, p3);

3 Likes