Bathroom tiles

hi everybody,
i’m quite new to Grasshopper and currently I’m trying to create a definition for a bathroom backsplash, were I use the outlines of a surface and create tiles in it with the least “waste” and were I can change the number of the tiles and the thickness of the tile joints.

i guess it might be super easy, but I am overchallenged…
I would be infinitely grateful for your help!

Greetings, Jess

It would be helpful if you could provide what you have so far. Even if it is a sketch including the relevant dimensions. This saves a lot of guesswork for others to understand your intentions.

that is what i have so far. A crv which is the outline of the room und then i try to split it into tiles, but it is not very regular yet :frowning: also the tile joints are unequally, because they are thinner at the room corners and bigger between the tiles because of the offset

i don’t know how to achieve this goal

Super interesting question that has had me thinking for a few days. I too am kind of new to Grasshopper, and more specific, new to programming. So I think that you need to refine your question, both to us and to yourself. what do you mean by “Waste”? and what are your constraints? So any shape will have an area, let’s say in square inches. It will take that many square inches of tile to fill in that space.
If you lay a horizontal course of tile and end up with an 1/8 of tile left over can you start the next course with that left over piece? Can you cut all of your tiles in half? in quarters? in eights? I think that the smaller the tile pieces the easier they will fill in.
If you can make your grout joints super big, well you use less tile, so make the grout joint the entire wall (goofy but based on your question it is one answer). It is kind of a rabbit hole, that question (Alice in wonder landish). My limited experience makes me believe that you may need to really think about what you mean by waste. Do you mean how can I buy the fewest tiles? Or do you mean how can I throw the least away? I am not sure those two are the same. What are your criteria? as many full tiles as possible? Grout lines between 1/16" and 3/16" or? Every course stats with a full tile? etc.
I messed around with it a little bit, deployed Galapagos on it moving tiles around with a fixed grout line and set Galapagos to minimize the area of the tiles used and the results was “pick any thing”.
Challenge one = figuring out how to use grasshopper, components, data trees etc.
Challenge two= thinking about your solution from a programming perspective.
I don’t know if any of this helps…

Hi Bill, thank you very much for your input.
By “waste” I mean that the Tiles should not be dismembered too much, but should be cut and inserted as uniformly as possible… so I mean “how can I throw the least away?” and “as many full tiles as possible” or that it looks at least uniformly and harmoniously divided.
I am not exactly sure about the size of the grout lines or the tiles itself yet… that is why i want to create a grasshopper definition where i can change those sizes, because it’d be a lot of work to try and change it everytime manually

hi Jess,

I haven’t considered Bill’s additional questions in much detail, and there’s no optimisation here. however i have created a definition which lets you visualise which tiles need to be cut. This should allow you to adjust dimensions and geometry easily until it looks right

Script is attached here: (28.6 KB)

I’ve allowed for:

  1. tile width
  2. tile height
  3. grout gaps
  4. grout/silicone perimeter

The input is a bunch of curves which are internalised. I’ve demonstrated a method which allows you to create holes in the wall/splashback and also to move cutouts. The curves are all internalised, but you can simply bake them and re-reference in order to adjust.
Let me know if you have any questions, but i hope this is enough to get you started in solving your specific problem.

Cheers, Dharman


that looks amazoing, thank you very much!