# Creating a half tone like pattern with cylinders using Geometry Nodes

I want to create a pattern consisting of different cylinders.

I definitely could create them row by row, but I am also planing to animate them - getting bigger and smaller and so on. In the next step they should also react (collision).

Is it possible with Geonodes?

I tried but I had to make them real. (using 2.93 or will it be added in future maybe?)

I watched like "every" tutorial to get a clue how I could achieve it. found some but not on 2.93 or 2.92 and their nodes look way different, and every time I try some things it freezes Blender.

My workstation should be good enough, I think I just use them wrong.

I just duplicated these to get more rows, I need way more.

• Instead of having users go through links and external sites please use the builtin tools to embed images in your post. See How to upload an image to a post? Commented Apr 16, 2021 at 9:08
• Commented Apr 16, 2021 at 9:43
• @Chris Not really humor. Dumped some links this morning, because I didn't have time to prepare a complete answer. OP can check them out in the mean time. I'm currently working on this effect. Commented Apr 16, 2021 at 14:32
• Nice thanks a lot! i hadnt time to work on it again.. but i ll check it out! Commented Apr 16, 2021 at 16:25

In edit mode select all faces then in top left corner click Face->Poke Faces

Then Face->Tris to Quads

I added a subdivided cube, because in my opinion it looked nicer than cylinders, and an empty to control the scale for animation purposes.

And I did this node setup.

From left:

1. Attribute Fill node sets scale on every instance (vertex) to 1.
2. Attribute Vector Math multiplies position of each instance by vector (1,0,0) and saves result to a custom positionX attribute, so positionX contains only (X,0,0) of each instance.
3. Attribute Vector Math calculates distance between positionX and (X,0,0) vector where X is X part of Empty location. Result of this operation is saved as custom attribute distanceX.
4. Attribute Vector Math divides scale of each instance (it's always set to 1 by Attribute Fill node above, but you can instead of it use Attribute Randomize to make initial scale of every instance a little different) by distanceX. This works fine for most cases, but when empty is really close to an instance we end up with extremely large scales (for example 1/0.001 = 1000)
5. Attribute Math is used to control how wide the "wave" of large instances there are. The larger the float value the smaller the "wave".
6. Attribute Color Ramp is placed to cut the scale so it never exceeds 1. It allows you also to control how small the far away instances should be. (just change color from black to dark gray)

And this is the final result.

You can animate the scales of the instanced objects by moving the empty so the animation is really easy.

• crazy! thank you so much for your time!!!!! Commented Apr 16, 2021 at 17:05
• thanks again! works rly nice. maybe u can give me a hint to a add more empties to animate like 2-3 waves? Commented Apr 19, 2021 at 11:11
• Add two more points to the Color Ramp. Make them Black, White, Black, White. This should make more waves connected to same empty. For more complicated cases make a separate question. Commented Apr 19, 2021 at 15:11