Buildings and streets with some geometry nodes

Hey Thanks !

That’s fun, I had a similar , semi-failed attempt before going wild with the abandoned house a bit later,

What you’ve done looks pretty cool already, it’s a bit weird around the tiles but that’s still an achievement. If you’ll get back at it a bit latter you’ll have new ideas and hopefully it will work better !
And it’s quite fun to see similar concepts developed in different ways, well done !!

It’s actually the trickiest part, I’ll try to describe it as best as I can, it deserve a tutorial or a .blend accessible, I’m thinking on it, but in the meantime…

So first, in the house and on my semi-failed attempt, I made that “Instance grid on face” node, and that 's the basis for many things.

It’s not that complicated at first, I delete points on the grid based on proximity from the faces, and near edge removal remove points near edges of the original mesh.

This is working , but there is an issue : When two faces are aligned, because the grid is way bigger than the faces you’ll end up having 2 grids on top of each other.
That’s fixable by storing the ID of the faces and remove points of the instanced grids that doesn’t belong to that ID.

With that it’s possible to make roof tiles and also windows, it’s not perfect as you can see on my first attempt : it was hard to get the right windows distribution, sometime you get an huge wall with one windows in the middle…

For that technique to work better, it’s important to have as less faces as possible on the mesh.
On my house thing, I used a decimate modifier set to planar to simplify the basemesh as much a possible, it worked without but it was better. It’s in fact the only modifier used on the project :smiley:

So now, how do we take this grid tool thing and makes the grid match the faces width and height ?
You’ll probably be disappointed because this is quite limited and hackish …

It’s kind of possible to get the face X,Z size if it’s square or rectangular. Because two X aligned edges got the same size you don’t have to bother about the order of points or ID.
That’s what I’m doing for the building, I separate some edges based on their Z orientation to get the height of the face, and the others give the width.

Then I use the bounding box of my panel to get it’s size, and I compare it with face’s size.
And finally I try to fit as much panels in the face and scale them a bit to fit the face.
The bigger the building is, the less obvious it is that the panels doesn’t have exactly the same size.
It works on that simple cube, but I already have some issue on other meshes, so I’m not sure how it will ends up…

That’s basically it, it probably sound like a big pile of hack that’s waiting for the right moment to fail… there is some truth to that …

I’ll start working on a base mesh generator for the buildings and I’ll see how it goes…

Don’t hesitate to come back to me if you have question or you want me to explain some things better. I’m quite curious of what you’ll end up with it you get back to it !

7 Likes