Hexagon column tessellation New member here so please let me know is I'm doing anything wrong in this post and I'll adjust accordingly.

I'd like to create the following image. I create a hexagon (circle with 6 sides), make the face, add one array modifier in x 20 times, another in x&amp;y once to create two rows, then another in y to create many rows. So far so good. I now set origins to geometry and apply a transform random in x &amp; y only. Perfect so far. NOW if I extrude these faces in z, they obviously don't tesselate properly because the rotation has kinda shrunk them when viewed from directly above.

How do I rotate randomly AND maintain the tessellating columns of hexagons afterwards?

Some sort of elaborate boolean cutting operation?

Appreciate any workflow help from the pros here!
Many thanks.
A procedural displacement, shader-only approach, using the HexGrid node group discussed here




The 'Cell ID' output is used to produce a UV into a Noise texture, to generate a random value
That value is used to rotate the Cell UV's, per cell.
The U is extracted from the rotated UV, to produce a gradient across the cell, in a random direction
The 'Distance From Edge' output is used to subtract from the displacement value, to give a slight bevel on the edges of the hexagons, which cleans up the near-vertical sides of the columns, and sink the cracks between them