Replicating a stepped truchet pattern

I really want to replicate this truchet tile design using Rhino/Grasshopper.

This video gets me half way, however I am stuck on applying the stepped pattern after extruding.

I’m very new to Rhino/Grasshopper and would appreciate some guidance here. Below is my algorithm so far.

Thanks in advance

1 Like

Hello
I am not sure this tutorial is a good idea of resolving a Truchet pattern.

When tiling something you use tiles, not just one tile. For me the same thing in Grasshopper. You make a tile, and then replicate it, turn it randomly and copy it. Some examples on old Grasshopper forum.

1 Like

First part replicating the pattern, it is not so simple as it must be symmetric. But at the end some drawings helps doing the right things and putting the good flip, shift, weave … follow the flow.
The slider is set to put the number of steps
The graph mapper is used to have the progression (shape)
You can also add a scale in Z


The simpler part is to rotate randomly. So I use a random between 0 and 1, if random value < 0 => no random. If > 0.5 => 90 deg rotation.

truchet stepped shape.gh (19.3 KB)


8 Likes

This is really awesome @laurent_delrieu, thank you!!

I want to combine the generated surface into a single body that’s embedded on a block like the source image. Then I can export the body as an STL for 3D printing. Do you have any hints of how to do this?

Yes it is possible
just use the classical CAD operations, so you must end up with solid


To have a solid you need some faces

  • Make a lateral closed curve, transform it with boundary surface
  • Rotate it
  • Join it with a revolved stepped part (I just suppress the vertical line that mess up the rail revolution)
  • Cap hole
  • Then solid intersection with a brep going on the diagonal
  • Then mirror
  • Then solid union
  • Then you have a solid
  • Then make the pattern
  • Union everything.

Normal CAD work.

2 Likes

Thank you for your kind hints. I’ve tried to copy your algorithm but it isn’t working as expected.

I think it’s something to do with panels not being ‘Closed Brep’?
I am a total n00b to Rhino/Grasshopper so I’d appreciate your assistance!

your error starts here feeding a non-existing (empty) brep to the boolean operation…

Hello
I didn’t post a script just because I believe in self education.Meaning doing the job by yourself is a better way of learning than just opening a file.
So the whole logic here is cutting a solid with another solid done in Rhinoceros.
You have this piece


You want that without self intersection

So you must cut there on the red line

I choose to cut with a solid intersection. The solid must be bigger than the piece you want to cut and having a plane at 45°. I choose a cube

So after boolean intersection I have that

I hope it is clear, I took more time to explain that just posting the file.
So try to follow the steps in Grasshopper, learn CAD modelling…

You just have to make a cube in Rhinoceros. Not a big challenge !!!

2 Likes

Mixing with others pattern
2 patterns





3 patterns




5 patterns

9 Likes

It’s been a few years now and I still haven’t worked out how to do this. I hope someone can help.

I added a box in Rhino at 0,0,0, with 10,10,10mm dimensions

I tried to add as one brep to the brep assignment component

This has been my point of reference, but some of the nodes won’t join up at multiple points as shown, and some of the expressions seem to fail because there is no “x” variable.

I will restate I am a total n00b to Rhino/Grasshopper and this project is really my first exposure to it. I’ve attached my project file, gh script, and a render of the result I’m getting. I hope someone can help me get to the result I was looking for.

truchet stepped shape.gh (23.2 KB)

truchet-stepped_231125.3dm (93.4 KB)

Here are my roadblocks:

“Parameter “Variable x” has an invalid name. Only use alphanumeric characters and don’t start with a number.”

Is the expression wrong? “0.5 - 0.5 / (2*x + 1)“

I’ve set the slider expression name to “x” just to be sure. By default it was blank. Confused.

Same again here

“if(x<0.5,0,π/2)“

I’ve assigned a Brep at an angle on the origin

I’ve checked all the wiring, and it seems correct.

I don’t see any result. What am I missing here?

Hello

It has been a long time !!!

If variable is named “x” why naming “variable x” ? just put “x”.

Here are all the scripts I made. Written 4 Shapes but as indeed 5 shapes/tiles !

stepped truchet 4 shapes LD.gh (27.8 KB)

stepped truchet LD.gh (27.4 KB)

stepped truchet 3 shapes LD.gh (30.9 KB)

1 Like