Mix patterns

Hello.

As you know, all reptiles shed their skin, and yesterday I found this. It was definitely wrapped around the belly of a small lizard.

Since I am working on a complex project and struggling with the surface pattern, I’m wondering whether this finding might be some sort of sign.

Instead of choosing a specific pattern and applying it more or less uniformly across the surface (I have already tried Voronoi and hexagonal grids, but I’m not satisfied), I would like to take inspiration from the lizard and mix patterns where the cells may have 4 to 6 segments. Another variable would be the cell dimensions. The combination is not random, though: the cells are aligned and combined according to functional requirements and mechanical properties.

My goal is to bring these natural rules into my project. Please consider the attached file and the points below:

Zone 1) Low mechanical stress. Large size polygons with 4 segments → quad grid

Zone 2) High mechanical stress. Medium size polygons with 5 or 6 segments → Voronoi grid

Zone 3) Boundary → Higher m.s. Small size polygons with 6 segments → hexagon grid

How can I create something like this on the surface? Which approach should I take?

Thank you!

Test.3dm (154.4 KB)

Thinking it through:
Both hexagonal and square grids can be generated with Voronoi if the vertices are evenly spaced, so what we want is a way to blend from one spacing to the other. This image kind of shows the change:


Source: https://www.researchgate.net/publication/239597123_Centroidal_Voronoi_Tessellations_Applications_and_Algorithms

I’ll have a quick go…

3 Likes

A few Qs:

  • How adaptable does this need to be? Is it only this specific shape, or should it work on any shape?
  • How are the zones defined? Authored input, or does some parameter of the surface drive it?
  • EDIT: Ah you say you want the polygon size to change. This might need Kangaroo to relax points between two grids.

Ok, that’s the easy bit

squares and hexagons.gh (12.5 KB)

Blending between them is a fun problem…

2 Likes

Hello Tom,

Thank you for your replies. The paper you shared is really interesting, and your file is inspiring (I’ve never used the BoxProp component :D, if only I had known about it earlier…).

Regarding your questions:

  • This needs to be highly adaptable. It will actually be applied to a complex shape (the project I’m working on), which is made of several breps, but I preferred starting from a basic surface.
  • Great question: I would say both. If I look at the shape, the “weaker” areas are visible (Zone 2, in red), so we could place something like a curve to identify those areas. On the other hand, parameters might be the key to — let’s say — highlighting the shape itself (I’m thinking about surface curvature).
  • I have Kangaroo, but I’m far from mastering it.