Low relief tile surface?

Hi Folks, I’m trying to make a truchet title like the one attached. I can work it out in rhino but am struggling to wrap my head around how to make the surface appear smooth in Grasshopper. How would you approach a design like this? I’ve tried sweeping the edge profiles along the arcs and then unioning the pieces, but that leaves “creases” where the sweeps overlap. Thanks for your suggestions!

1 Like

Post your Rhino file so we can see what the shape really looks like. Could it be as simple as a vertically extruded hexagon tweaked by subtracting 2 parallel nearly horizontal cylinders and then 2 spheres?

Ooo, neat idea. Here’s the rhino file.
truchet-tile-3D.3dm (2.2 MB)

Thanks. The answer to my question, of course, is “obviously not!”

It looks like your shape does start with a vertically extruded hexagon, but there are 3 subtractions, not 2. I can’t quite figure out what #1 should be. #2 looks like a pair of toruses, and # 3 looks like a pair of spheres.

If I were making this in GH I’d make only 1 half of the shape and then mirror it, and then arrange both haves in a hex array.

Then I’d morph is onto some other 3D shape I could send to my 3D printer.

Hmmm…maybe #1 really is just a horizontal cylinder.

Well, I think I’m getting close with my cylinder & torus method:

Yours is on the left, mine on the right. Tweaking the params is a bit tedious, but this looks promising to me.

1 Like

There are many “Surface” expert, but from my point of view it seems that some of your surfaces does not exactly follow the arc circle.
I made a little Grasshopper component to make some base curve and surface.

So you will have main base curves and surfaces that could be used with network surfaces. Bake the visible elements in Rhino

then make a separation curve.

it is a bit better than yours but not yet perfect. Just position continuity

truchet tile.gh (19.9 KB)
truchet-tile-3D LD.3dm (3.5 MB)

1 Like

The shape doesn’t work as well as a Truchet tile because of symmetry…

Truchet tiles_2023Apr13a.gh (9.7 KB)


Do you think it is better with this surface?

Truchet tiles_2023Apr13a LD.gh (97.4 KB)


That looks amazing!

Wow, thanks for putting this together - so you are making some of the surface in GH and then going back to rhino to do the surface network?

Edit: added quote

Yes I am doing that as Curve Network in Grasshopper is not accepting surface edge, just the edges. So Edge matching is just done with position

Another attempt:

Truchet tiles_2023Apr13a rm.gh (145.4 KB)

1 Like

Your shape is very nice. Interesting to see the different strategies to “patch” this shape. I understand that Xnurbs or similar could be useful for such shapes.




Thanks for all the input everyone! I was able to combine a bit of everyone’s ideas to get something I think is reasonable, attached. 2 rail sweeps were the answer.
Truchet tiles_2023Apr17.gh (24.9 KB)

Unrelated to GH and rhino… (But still I used rhino and GH to put this up…)

I like this pattern, I’ve put up some animated svg stuff:
(move mouse cursor across screen)


That’s a very strange website Riccardo - and those 2 pages are quite impressive. I’ve never seen anything like their underlying HTML. Can you explain how it was generated?

I own that domain and is currently hosted on a raspberry at my home :rofl:
The website is there only for testing random stuff, very low level, hobby level.
It’s just an array of div elements or svg elements. Through the svg.js library I’m animating those, rotation + change of path shape. Not really optimized as each element is hardcoded, not created iteratively through a loop…
The element inside the html document are quite few. Some javascript functions and then a long list of copies of the hexagonal cell. Each cell have a .mousemove event trigger that call a function to animate that same cell.

You can right-click “see source” to actually have the very same full html page.
Then you also need to have the svg.js library on the same folder to make it work…

1 Like

Very interesting - thanks. I never would have thought a Pi could support externally accessible websites. I made websites for a couple of clients years ago - but that was way before anyone thought about programming the HTML with things like Java.

… well… it is a literal server once you set it up. You just need a public IP. Currently I use it for ftp/lan sharing, web server, remote wake on lan, etc … under 5 watt. Anyway, this is OT here, feel free to contact me via PM or maybe open a meta thread…