Real sizes procedural Building

My version of a procedural building.
After a botched try to instantiate the grids as glued to the faces of a cube (so that they would be dependent on the cube dimensions, as in the great projects of sozap, Buildings and streets with some geometry nodes - #73 by sozap ), I’ve resorted to affect directly the grids, as, for instance, Chong3D does: https://www.youtube.com/watch?v=-rexNuTap44

This project is different in two ways from that, though: I use real world measures for the walls, complicating a bit the math, and a bunch of modulo nodes and math nodes to get an alternating pattern of face columns to instantiate different facades, and extricate the leftmost and rightmost column of the generated walls, to have the building corners different from the rest.

So far I have inputs for the three sizes, and a random seed for the windows panels, I plan to add still the drains, air conditioners and the parallax rooms, before call it a day.

My math is not great, and I possibly have a couple of redundant math nodes at the end of the process, where I stitch the four sizes of the building, but it works so far.

This is the part with the grid creation, with the modulo creating an alternating pattern:

Here’s a very lame video of it in action:

11 Likes

That’s cool ! well done ! It’s great to see different variation of the same idea each one with slightly different approach.

1 Like

Thank you! :slight_smile: I like your approach more (and your results are fantastic), but I couldn’t even go past the stitching of the grids to the cube building, I couldn’t rotate correctly two of the four grids after the dot product nodes at the very start.
This one is suitable for what I need, but of course can’t create complex buildings.

Yes ! complexity takes time and energy :smiley: , at least when it’s technically simpler it’s easier to focus on artistic parts.
Even if main shape stay cubic you managed to get nice variations and it feels natural,
What you’ve done is probably more suited to a real use case given the current geometry node toolset.

1 Like

The building itself has enough variation and visual complexity that even if you’re stuck editing it as grids, it still looks like a nice building.

I think there are plans to add a node for tesselation, which will hopefully simplify the process of setting it up the way you were hoping to initially.

1 Like

Thank you! I sure would welcome a bit of semplification: as little my exploration of geometry nodes is, I can see both the promise of the tool (huge) and the complexity for an artist not versed in math and geometry.

One thing also that would semplify a lot the system would be the ability to refer data from a different node directly as formulas in a different node, like Houdini does, that would save a lot of spaghetti :slight_smile:

I’ve added the air conditioners, drain pipes, walkaway, and interiors; plus, I’ve touched up or redone most of the materials; I’m not happy with my “fake” parallax interior boxes, however: it might be that I do them from scratch from 3D renderings sooner or later, even if I loose the variance.

A few things still missing on the roof, and I’m not sure whether or not to have more procedural stuff (cables, boxes, etc) on the surfaces, as the building itself has some weak points (for example, as the walls are not manifold, procedural geometry damage is impossible); and there are a couple of badly planned materials / objects pair: for example, I had to deactivate displacement on the walkway to avoid showing the seam on the walkaway corners: I could have avoided that if instead to bisect the corners, I had them wholly as part of a wall. etc.

I’m undecided at the moment, but it’s great to learn new stuff!



2 Likes

just a small update, I’ve redone from scratch, from a non procedural previous test, a second building. A few small touches, and I’ll adapt the node tree to its peculiarities and measures.

Fun sidenote, I’m relying more and more on few very useful key shortcuts that I almost never used before, Z for the wireframe mode, Shift G for select similar from vanilla Blender; Alt A for align, Shift MB 4 and 5 for snapping points and orientation, Shift S for cursor and pivot control, from machin3tools pies: I don’t know how I managed 3 years of Blender without using these five…

1 Like

super cool !

It looks really good !
I’m interested in seeing all the pieces that you modeled,

You may try to use a bounding box node to get the dimensions of the pieces, to not have to manually fit them. The catch is to realize the instance before the bounding box, because as far as I remember it doesn’t work with instances. But you can get the dimensions and keep mesh instanced on the main building.
Hopes that’s clear… is really cool to see your progress !

1 Like

I bow to the master :slight_smile:

About the bounding box, do you mean to use them to scale the previous grid to accept the new faces? Or I’m mistaking the purpose?

Since the math for the row and column size is done basically at the root of the nodetree, and only there, it should be easy to modify just that to fit the newer blocks, at least that’s what I imagined doing.

But I might to have to create a grid from scratch, though, as the new building as a whole works a bit different from the previous one (no alternating columns, different pattern for the door on the floor level)

ok !
Maybe I was thinking too fast, indeed if you need a new grid that may be not interesting.
It’s just that if you needed to get the instances dimension to create your grid, you can use a bounding box rather than entering the value by hand.
Like so , in theory, you can plug different collections and they automatically fit.

It’s only guessing here, I’m not exactly sure how you make your grid, row variations etc…
Anyway, it’s doesn’t sound overly complicated to manage, the result is really nice… so far, so good !

1 Like

Oh I get it now! The concept I mean, it’s brillant! I’m not sure I can make it practically work as it’s more advanced than what I’m able to do at the moment, but I might want to try it with something simpler.
Thanks mate!
:smiley:

1 Like

Cool !!
Yeah maybe it’s better to choose your battles on this project ! But give it a try one time, it’s quite useful in many situations !

I featured you on BlenderNation, have a great weekend!

1 Like

thank you, you too bartv! :slight_smile:

1 Like

Not final.
There is an error on the stitching of the four corners of the building, of less than one cm, but it’s annoying, as it messes with the bevel shader.
I don’t know what causes it: it could be I’ve messed up a shear origin when modeling, even if I was was careful. I might correct it manually on the source models, later on.

In any case, having read up about it more yesterday night, I’m mostly convinced that the bounding box technique, plus accumulate nodes is better than this, as manually adjusting the math because of different sized building blocks is not worth the hassle, in case anybody wished to do the same.

Here, for instance, I have 27 main collection inputs, the building blocks before the decorations, (X axis walls with 3 windows, Y axis with 2, 4 differently tall rows of floors with and without doors, all the corner walls, plus the sidewalk pieces) but 43 instance feeds (cause for example by different tranformations in different columns, and by the walls rotation): it’s cumbersome.

So, I’ll explore a different methid for the next building, if I’ll do it.

However, first, I want to create the parallax maps for the interiors of these, next time.

2 Likes

Slight tangent;
I’ve decided to create a few parallax shaded planes for this scene, and if enough variation for the interior scenes is to be provided, between night / day and rooms vs floor spaces, I ended up with a scary 156 parallax planes, too many for the scope of this.

I’ve decided then to model a few basic templates, and to rely on wholly procedural materialss to provide variations, plus using image planes later on for small objects / decorations, and other shortcuts.

In the meantime, knowing nothing of arch-viz, and not wanting to use external assets for the basic stuff, I started to re-create my kitchen.

It might seem a silly pipeline, but I want both not to end up with too generic stuff, and also build up my own asset library, for materials and building blocks.

Here:

The most complicate material is the pillow’s, and that by mistake (I figured up how to separate the areas in a easier way later), and the one that I like the best is the white painted wood.

I did a few wooden floors as well, and translated a few of my traditional media works into plates to kitbash in scenes, as paintings.

Just to cap things, I modeled the water faucet in Plasticity beta, the first thing ever I model in a CAD app, and man how I wish now that Blender was better at that kind of stuff… (Plasticity is great by the way).

I’ll post later with my experiments with parallax interiors.

1 Like

Second tangent (there will be probably one more of these, before I get back at assembling everything, when working actually on the parallax images), please ignore if you only care about the geonodes :slight_smile:

I’m almost “done” with the modeling and shading of basic elements that I will use to populate the parallax shaders (shaded? planes?) that will go behind the windows of the buildings.

Among them, I just made two nodegroups, one a simple vector tiler / scaler that feeds texture coordinates into plug and play procedural gliphs; the other is a masker for certain areas of the texture; the result of these two is a wallpaper maker ! :smiley:

It might look silly to you (it’s not a very complex thing), but it’s kind of nice getting more comfortable with math and vector math nodes!

3 Likes

Eh, sorry, one more tangent; as I needed them for this project, I just managed to create a venetian blind in geonodes; the node group governs length, width and rotation angle of the slats.
Instead of a grid, in this case, I use mesh lines to instantiate the elements.

2 Likes

super cool !

I love these little details on the venitian blinds , there is even holes in the middle, you’re going insane :smiley:

Keep up the good work !!

1 Like