Random Cross Line Facade

I would like to create a crossing line facade that would follow the shape of a geometry (this geometry has curves). I already applied the lines to the geometry but I cannot find a way to offset these lines on the geometry so that I can loft them after to create the structural system of the geometry. These lines need to be flat and have thickness. Any help is appreciated! Thank you!

Current Script and Rhino File:



Rhino File for Geometries

Geometries.3dm (686.7 KB)

Grasshopper Script:

Lines Facade.gh (8.8 KB)

I couldn’t open your R6 Rhino file so created my own “twisted box” (internalized in this GH file).

It seemed like such a simple idea, and it is for a single surface, but I’m highly embarrassed to admit that today, I can’t seem to do it for multiple surfaces without using BANG! (Explode Tree).

lines_facade_2019Jul20a.gh (31.0 KB)

The lines on each surface are not loftable and SrfSplit isn’t happy with them either. It’s an art project… Voronoi? :sunglasses:

1 Like

Hyungsoo Kim @HS_Kim did a beautiful work on Grasshopper forum

1 Like

The way I created my box in Rhino resulted in an obviously distorted top surface so first I used its edges to build new surfaces (white group):


Using the same Curve On Surface as before, applied Extend Curve and then the Clipper PolyOffset to make them long rectangles. Thought I had it working with standard curve offset at one point but lost it somehow…

Added ability to switch easily between each of the five sides (skipping the floor) and baked them one at a time:

Still not great as they are separate strips, cut from the same surface but not a perforated surface… I really need to step away from the keyboard and get some physical exercise!

lines_facade_2019Jul20c.gh (36.2 KB)

BELOW: Instead of offset, use Pipe intersection with surface to get two curves:

lines_facade_2019Jul20d.gh (31.8 KB)

Works very well, though still not a perforated surface.


Used another tip from @HS_Kim’s 2.5 year old solution, the painfully slow Trim Solid to subtract the pipes from the surface, leaving a “negative” image - holes where strips are wanted and vice-versa. Working with compound surfaces in this model, I had to map those edges to a planar surface before creating a “positive” image Boundary Surface with a surrounding rectangle. Finally, SrfMorph is used to map/morph the holed planar surface back to the compound original. Trim Solid takes 1.6 minutes in this file so is disabled:

lines_facade_2019Jul20e.gh (50.9 KB)

Hoping to get better performance, I refactored to map only the curves to the planar surface and do the pipes and Trim Solid on that instead of the compound surface. Now 1.2 minutes instead of 1.6… not as much of a gain as I had hoped for.

But this time I added thickness to the perforated surface before SrfMorph back to the original. As always, more could be done, such as culling tiny fragments and leaving a border at the edges. Still works on only one side at a time so one could defer the earlier steps of EdgeSrf, Random, Srf CP, Partition and CrvSrf to avoid the awkward BANG! step.

lines_facade_2019Jul20f.gh (54.6 KB)


My script from my blog post is a little bit outdated and it seems you want tapered and thickened crossing lines, so we’ll need a little different strategy. Here we have another one for the only facade except for roof & floor.

Lines Facade_reV1.gh (27.4 KB)


Thank you all so much! Your work is really helpful and you guys are amazing! I will see which one works best!