This tool let you to create a grid of instances on the surface of an object that are placed based on the UVs of the mesh.
You have full control over the placement of the instances, rotating, scaling and randomization.
The instances are aligned to the surface normal and as you use the mesh UV to map the placement of the instances. you can create unique patterns on the surface of the mesh.
As you use instances, you can scatter an insane amount of geometry without caring about memory usage.
HOW TO USE THAT:
First, make sure that the object that you are willing to use as the surface has a good topology and UV with no overlapping areas.
To use that you just need to Append the "UV Array.blend" to your scene, selecting the "UV Array" inside the "NodeTree" folder.
After that, select an object to be used as the surface object, add Geometry Nodes modifier to it and load the "UV Array" there.
Create a new collection, place all the mesh instances inside that and load that Collection on the
UV Array Geometry Nodes