I've been making an animation using Legos, and the last part I have to do is make a Lego pond. I've looked into a few tutorials and other posts, but they all resize the lego tiles to make them fit together. I can't resize the Lego tile, because it needs to be to scale with the rest of the parts I use in the animation.

I'm using a plane shape with an ocean modifier for my water. In the geometry nodes tab, I have a "mesh to points" block going into a "instance on points" block: My geometry node

However, this puts all the tiles very close together: Very scuffed Lego water

I need help finding a way to snap them to a grid, or if there's something else I could do, please let me know. If more info or screenshots are needed as well let me know.

  • 1
    $\begingroup$ Could you provide a simplified version of your Blender file using blend-exchange.com ? Just keep the plane shape with the ocean modifier, and the Legos piece for water. There are two sockets named Selection in your GN modifier that can certainly help in disseminating the blue tiles. $\endgroup$ Commented May 18 at 20:33

1 Answer 1


With a Mesh to Points node, it takes all the vertices and converts them to points. When you use Instance on Points, it puts one Lego on each vertex of the original mesh. So, if your original mesh doesn't have the vertices spaced properly, it's not going to line up, no matter what.

Fortunately, we can make a new pond mesh for this using Geometry Nodes, with the correct vertex spacing.
My final setup required the original pond mesh, and a new mesh, which has the geometry nodes setup.
Scene View Layer

The object "Deform pond" only has an ocean modifier:enter image description here

The object "Lego pond" has first the geometry node system to create the mesh with properly spaced vertices.
A shrinkwrap modifier set to project comes next. You will need to move the plane below the "Deform pond" to have it properly shrinkwrap. If the shrinkwrap modifier is not set to project, the vertices will all be moved around, negating all that hard work we just did.
The final geometry node setup is super basic, only used to distribute the Legos on the vertices.
Lego pond modifiers

The geometry node setup:
Main nodes
Those first three nodes get the size of your Lego part. Take care to have the vectors correctly plugged into the Vector Subtract node.

The "Get Size" subgroup:
(this is the important one)
Get size subgroup

Hope this works for you! Let me know if it needs any farther explanation.

To create custom inputs on input and output nodes, hit N to open the sidebar, and click the plus icon.enter image description here

  • 1
    $\begingroup$ This worked!! Thanks so much! It took a bit for me to understand what everything did and to even get it working, but I definitely learned a lot more from your short explanation than I did from a 40-ish minute video! Now let's see if I can figure out how to mark this thing as solved... $\endgroup$ Commented May 19 at 0:30
  • $\begingroup$ Awesome, I'm so glad it worked out for you! $\endgroup$ Commented May 19 at 0:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .