If you’ve been in the Blender community for a while you must have understood the power geometry nodes hold. You can even make your very own city generator with it, So that’s what we’re going to do.
Today I will guide you through how to make your very own city generator through geo nodes.
Concept
The concept is simple: you have a flat mesh, then you will distribute some points to the mesh, and then you will replace the distributed points with your own modal.
Basic node setup
Node setup of tall building.
First, create your geometry node tree. Then add a grid (or any ground you want) and scale it as much as you want. Then add a join geometry node.
Then add the “distribute point on faces” node. It’s basically going to distribute points on faces, which we will be using to distribute the buildings. Connect the mesh output of “grid” to the “distribute point on faces” node. Then add an instance on a point node and connect it to distribute points on faces. We will be using it to instance the building on the point. then connect it to the join geometry.
Now, if you have your own building, drag it to the geometry node tree; when you do this, you will have an object info node. Connect the geometry socket to the instance socket of instance at the point node, and then adjust the scale.
Add transform node between object info and instance on point and set translation z-axis to 1.
Make sure the buildings are not too dense, to that change the density of distributed points on faces.
Add random value node and change it to vector and connect it to the scale of instance on point node, then adjust the scale.
Node setup of small buildings.
Duplicate everything except “join geo,” “grid,” and “group output.”
Then connect the “grid” output to the second “distribute point on faces” and change the seed (and density, if needed).
Change the object information for the small building by doing the same thing that we did earlier.
Reduce the value of random to make the building smaller. Then connect it to join geometry.
Some important things.
The same original material will be applied to every building.
You can change the base mesh by changing the “grid” to whatever type of ground you like.
You can connect the blank output of group input to anything, and it will be added to the modifier tab, and then you can change that.
When you want to increase the size of the building, change the axis of random value, or else you will run into some problems.