Making chainmail with alternating rows of rings

I have made a geometry node setup, but I want to be able to adjust the distance between the points ( maybe the distance between the rings in Z and Y axis, and distance and offset between the rows is a better description).
Altso, the rings should alternate in rows,- so I get one rows of solid rings, and one rows of riveted rings.
How do I fix that ?
My geometry node setup so far:

Picture for illustration purposes:

1 Like

If you pack both ring types in a collection, and use a grid where you know indexing logic, you can use the point ID to decide which object in the collection to pick for the instance and you can also compute an offset based on row number:

mail_v01.blend (126.0 KB)

Edit: And welcome to the forum!

OK, that works for the horizontal stuff. But It does not work for a plane.
I need that because it is for a garmen that need sto be sewn and so on…
They just end up in a strange horizontal stack:

the blend file is here:

Thanks for the welcome!

Hmmm i’m not very good with geometrey nodes and i’m also fighting some display quirks betwee 3.0.1 and 3.1.2 (?) but (the topologu for the shirt and the trousers also shoutbe more eqaulized for this if not a GN expert does propate the two chains better… i did use a posional offset “in model”):

(Please don’t call a file test, compress and clean of unused data… since →
ChainMailTest1.blend (458.1 KB)
so it is uploadable here and maybe can help other in the future…)

What @Okidoki said.

Also, you should remove the solidify modifier from the shirt, as that leads to doubling of the rings.

I included an additional subdivision surface to increase the ring density (and cleaned the shirt mesh up a bit, the seams at the underside of the arms weren’t working right)

(removed some stuff to get under the file limit, it’s basically the what @Okidoki did)
chainmail_test_v01.blend (4.9 MB)

As an alternative, you may want to have a look at the tissue tool addon
(download it from here)

1 Like

The workflow using tissue would go something like this:

  1. create a piece of the chainmail with the linking pattern you desire.

Important: the pattern must be rotation symmetric, such that if you rotate a section of the pattern it by 90°, it will still link up with the rest. E.g.,

  1. Cut out a square piece of the mail using a box whose length and width are integer multiples of your array offsets

  1. delete the faces at the intersections

  2. make sure you have an all-quads topology on your shirt ( I did a bit of cleanup on the file)

4a) add a subdivision modifier (1 level) to the shirt: gives smaller rings and a smoother flow

  1. apply the tesselate operation with the cut-out chainmail piece on the shirt, check “merge” in the data panel:


Here is the file before the tesselate operation (it creates a lot of geometry)
chainmail_test_v08.blend (1.7 MB)


Oh yes the tissue addon… i lately also gave it as a tip… but never used it yet :sweat_smile:… The (general) “make a tilable geometry” and then “put it on the” -Trick i was aware of (some feature in Zbrush… MicroPoly) and i tried with instancing on faces with scale by face… but nahhh (weird normals and noe tileable) … But this is awseome… and now including some scratched/broken/cut chain elements and is realer than reality :wink: (i must be mad: struggling to reach something and then raising the bar again…)

Should be easy: the tissue addon supports multiple components to be used where they are assigned according to the face’s material…and you can randomize the material assignment with geonodes:

Edit: so basically one starts with one tilable component and then generates variants by changing only the mesh in the middle of the tile, leaving the boundary geometry alone…

1 Like

Ohh my… :clap: :clap:… and i even didn’t have time to look some deeper in you files… but if have to look more into GN in general…