How to create a polyline like bauhaus chairs

Hey there first of all I want to let you know that I am noob with grasshopper, so please be pantient with me.

My attempt is to recreate something like this with grasshopper.

I want to do something like a bauhaus style art installation. I want to take multiple of these generated polylines and bend steele wire with a CAD wire bender.

That`s what I have got so far:

I created points in squarish 3D pattern in a box and randomly reduced some of them. Than I took these points sorted them and created multiple line or you also could create one single polyline.

My problem ist that I want that these lines are always perpendicular or othogonal to each other (you see I not pretty accurate with these terms). So that when you one point (3/10/45) only on of x y z changes to the next point (3/20/45).

That is what I have got in grasshopper. I hope you understand what I want and mean. (11.0 KB)

I would be very grateful If someone could help me a little bit. I tried all kinds of stuff the last days and can’t get any futher.

this may help you;
@PeterFotiadis I had worked on an orthogonal voronoi
I would have to review the issue of fillets

Check this

1 Like

Well … the general - not Hilbert - case (I’m always after the general case in anything) is not a task for a novice nor for anyone not very familiar with coding.

Thus … and given the opportunity … and solely for fun (can’t teach you anything with regard using native components) get the attached. (134.1 KB)

For the result thre’s 4 options to play. From a real-time abstact wire collection:

To something like that:


Wow thanks guys, the example from Pfotiad0 is exactly what I was looking for.

It seems to be a more complex problem than I thought initally.

But is there some information out there, a tutorial etc. which I could follow to learn something on my own?

Or is a tool where I can set the endpoint of a line so that the angle between the generated line and the last line on the list ist always 90 degrees?

greetings from the grey and rainy germany :wink:

This could easily be adapted to use Z axis in addition to X and Y:

Like this: (26.6 KB)

Self-collision (including back tracking on itself) is unresolved in this effort, though it could be added.


For a start there’s 2 options:

  1. Start learning how to code. If you are in the broad AEC market sector do that right now. It’s a bit hard at first but after some time sky’s the limit … plus is 100 times easier to handle complex things and/or complex data structures and/or whatever.

  2. Try to do (up to some level) things via components and/or add-ons:

  • Fully master what a DataTree is (kinda a Dictionary of Lists). 99% of the questions asked here are related - implicitly or explicitly - with some kind of inability to handle DT’s. But remember: a DT is a custom so to speak structure internal to GH … thus if at some future time you want to migrate (or to work in parallel) to other platforms/apps (most notably if you are in the AEC market sector) then you’ll face serious/critical interoperability issues.

  • GH is a-cyclic by design: so the first thing to do for things “like” these is to get the gist of something the likes of Anemone (but that has more or less a rather limited usage on more challenging tasks).