Grasshopper

algorithmic modeling for Rhino

# Puzzle Solver - Randomizing tile wall

Hi there!

I am about to design a wall tile system and I need your help. The final pattern should be created by min. 4 different tiles which each one can be rotated in its own axis to be connected to another one. I have explained it in a Rhino file. I can solve the system manually...but would love to have it in a system and randomized with grasshopper.

My first thought was that I could use Galapagos to find the minimum distances between selected points on each face of the tiles...where the distances would be 0 - the tiles would fit together. But I got to many variables to figure out how to set it up.

Have any of you tried something similar?

the best, Tobias

Views: 235

Attachments:

### Replies to This Discussion

The final pattern should be created by min.

That's a little vague?  Looking at the Rhino file, it's clear that tile rotation must respect the orientation of one or two of each tile's adjacent neighbors.  This suggests an iterative approach, starting with one tile, placing adjacent tiles until a region is filled.  Your GH code doesn't help at all.  It doesn't even import the four tile surfaces from Rhino.  Interesting but not trivial.

Yes my GH file was not very useful, that was the problem ;)

But what is the approach to build the file with the iterative approach?
Would it to built something up with fx hoopsnake?

I didn't mean to go this far, but here is a failed effort that might get you started.  It is not the only way and perhaps not the best way...

The white "start layout" group places the tiles randomly in a grid.

There are two Anemone loops, one nested inside the other.  The outer loop cycles through all the tiles in the grid.  The inner loop (yellow group) tries four different angles of rotation trying to join the rotated tile with previous results to get a single joined surface (length of joined surfaces equals one).

But it's terribly flawed and fails (blue and yellow vs. "start layout" in white):Keep the grid size very small until you get something to work.  Then you might want to switch to Anemone "Fast Loop" components.

Attachments:

Wow great! I will dig into it. :)

Two things:

1. You need to come up with a much better way to make sure the edges are properly aligned and connected.
2. Instead of populating the grid with random tiles and trying four rotation angles at each one, as I did, the loop needs to evaluate sixteen possibilities at each grid point: one of four possible tiles and one of four possible rotations.

Yes that make sense.

I guess 1. is the million dollar question.

Just in case you didn't look at it, Truchet tiles could help you. It is more simple as all tiles can be glued with another tile.

I did this with 6 differents tiles. You just need random no loops.

http://www.grasshopper3d.com/forum/topics/truchet-tiles-on-revolved...

by CubicRAB

• View All