Procedural castle with geometry nodes

Hello !

This is a project made with geometry node to keep practicing procedural modeling and image composition. I’ve been working on that since a couple of months now and I’m mostly done with the procedural setup so far.

Now comes the second part of the project where I’ll use that setup to produce images and work on composition, lighting, rendering… At some point I’ll make a video compiling some of the best shots and a little technical breakdown of the setup.

To get started, here are some of the latest images I’ve done, I’ll probably revisit them later :


Any feedback on these is more than welcome :slight_smile:

The process look like this :
Starting with very basic geometry, a bunch of modifiers recreate the whole environment.


Then I can use simpler setup to set dress or better compose the shot :


these are manually placed foreground elements.

The scene from another POV :


I also added a preview switch that makes things easier to work with :

The rendered frame :


And then I use Natron for compositing !

If you’re asking, everything is modeled with nodes, all the setup are procedural except the basic geo used to define the shape of objects.

I’ll use the first posts to sum up the creative process and to do some basic technical breakdown.
I’ll probably improve them in the upcoming days/weeks. And from there I’ll post new images and little tips and tricks as I go.

Thanks for stepping by, any comment and artistic feedback is more than welcome !

67 Likes

History of the project

My main starting point was game of throne IP and I was curious about how far I can go with modeling a castle and an island with nodes. On top of that I was in vacation for a few mounts which helped me to fully dedicate to the project.

One of my main reference/starting point was the Pike island :

And here is a first render :

Another one :

Since my idea was to have almost everything automated I basically spend a lot of time on stuff like that :


Based on the distance I create either a rope bridge ( green) or a bridge ( red ) .
The main recurring trick I used was to generate all the possibilities and then eliminate some of them based on some rules. Here you see the result of that.
Getting these “boring” setup to work generally took me a few days, while generating the final “more impressive” geometry was much more straightforward :

Eventually the project started to look like this :


I added rivers, some “inner bridges” I tried fancy stuff like, “when an inner wall cross a river I add an arch on top of the river”.

Then I added houses and tried some trees ( lollipop tree for now) :

This version worked very well from a distance, but close-up shots weren’t good enough.
Also, since I started the project without any plans nothing was really on scale, which is kind of the first thing I’d look for when working professionally … That backfired at me badly…
Long story short at this stage I had to revisit every node tree to make sure everything is at a correct human size reference and lost a couple of days and energy there…

The procedural system were starting to get a bit too heavy to iterate fast, so I switched to a simpler test model :

One of the main problem with working like that is that it’s so much technical that didn’t spend a lot of time on the design, especially in the early stages.
If I knew all the time I was about to spend I would probably started with more research and better design, but sometimes that freestyle approach was refreshing too :smiley:

So basically I started with a crappy render and did a crappy paint over it :


This helped figuring out what was missing, at least a first pass… This was much simpler to organize my work from there.

This lead me to that version :

A first pass on materials :

Some vegetation :

The land areas definitely felt too empty, so I started to add farms to add variations .


Like many times, getting these basic lines to work properly took me a few days, quite frustrating and fun at the same time :smiley:

Once that base was set, real work can start and was generally simpler :


removing grass in the farm fences…

Adding fences, barns :

Some details to the houses :


Obviously I reused a few nodegroups from my abandoned house generator there…

Then the castle missed a little design pass, since like always I spend so many time into technical stuff I didn’t had energy left for addressing that…

Before :

After :

Then I looked into adding some lakes, and coasts :

I looked into creating some bridges that would cross the land :

But I started to get a bit tired and one job opportunity made me wrap up the project.
From now I’ll be more playing with the tools in my spare time rather than developing them full steam.

Next logical step was to look into rendering, this is a first test :

I really liked what the volumetric fog was doing there, but it was too long to render.
So I switched to using Z pass / mist and tried to get the same effects in comp :

Unfortunately the renders were still a bit too long ( for animated shots) on my PC.
So in the end I got inspired by sprite fright making of and gave point clouds a go :


While it’s a bit tricky to work with, it’s quite interesting, and I was amazed how simple it was to generate these :
Basically I render a few images ( one over 30 ) it can be with very low sample ( 16 / 64 … ) and I use denoiser.
Then I export a position pass, and keep the same camera. And after a few tests to get the correct point size according to distance and focal length I was good to go.

It’s not perfect, when there is a lot of parallax in the foreground I get some holes that I in-paint in comp, but it’s then very fast to render (15s).

The point cloud seen from camera :


In the white circle we can see some parallax artifacts behind the planks.
Since I iterate a lot and tweak a lot of stuff in comp this technique is good enough for me.

And that’s basically where I’m at as of writing, I’ll post new shots and stuff as I go now !

Obviously working completely with nodes is overkill and impractical since it’s hard to art direct everything and it can take days to craft the rules correctly so the end result feel natural, but it’s a great opportunity to learn, and I’m sure I can make good use of that knowledge on real production scenarios, on top of that I really had a blast working on that !

Probably next time I’ll work more on modular procedural tools that I can assemble, rather than automating everything but it was super cool to experiment and learn so much stuff.

33 Likes

On this post I’d like to give credits to some sources of inspirations and resources I used for the project.

On the inspiration side

But of course after a few weeks I got countless image in my reference board, I’ll try to complete the list as I go !

Textures
Most of the textures comes from PolyHeaven and AmbiantCG

Geometry nodes

Also a few tutorials really helped me :

Thanks a lot everyone to make these amazing resources available !

I’d like also to take the opportunity to thanks blender developers and the geo-node team : @Jacques_Lucke, @HooglyBoogly, @lone_noel, @mod1, Johnny Matthews.
I’m always amazed by so cool new features, it’s like Christmas every week with you guys !

And, finally I’d like to thanks some friends who supported me and gave me great feedback : Henrik Evensen, @CharlesNG48900, @Cremuss, @pullup , @Kyouki, @kyraneth !

:pray:

20 Likes

Technical breakdown

This is a placeholder post that will show a few tips and tricks used to produce the geo nodes setup and final images

2 Likes

As i told you before… WOOOHOOOHOOO YEAHHH … unbelivable, freaking AWESOME!!

2 Likes

Awesome !

So you could showcase and generate a new environment and castle just changing values ?

This is the whole purpose of procedural, the need to generate variations, otherwise just use a modular system.

1 Like

Thanks a lot @moshus :pray: :man_dancing: !

@Ratchet, yes changing the main basemesh change the whole shape. But the main shape/design language is always the same, since it’s kind of baked into the procedure.
So yeah you decide if it’s more a procedural or a modular system :slight_smile:

I’ll probably showcase a few variations to give a better idea of the possibilities and limitations.

3 Likes

Ahh man!!! That’s some of the crispiest renders ive
seen in a while . AND !!! It’s procedural! Hats off

1 Like

As usual, very cool stuff! I am exited to see where you will take this!

1 Like

What can I say but :astonished:
Would you say that method was faster than traditional modeling? Since I actively used Geonodes for the first time yesterday: what’s the real benefit for modeling, except the usual Flower petal etc.?
How much time did you effectively spend, approximately?

And since I’m really missing YT on this one:

CAN U MAKE 2-MONTH LONG TUTORIAL ON HOW TO ANIMATE CARTOON CHARACTER? FOR FREE PLS

1 Like

Mind
blown.

Wow.

1 Like

Thanks a bunch @anurag_raturi , @mart0nnn , @Meshmonkey and @Corniger !

Hahaha, clearly not, I find doing that harder and longer. But it’s interesting nonetheless.
What can be fast and useful could be to build a modular kit, especially when there are some repetetive shapes like these :


Most of what you see is some curves or very simple shapes with a procedural modifiers to add details.
These are simpler to make compared to building the whole set in an automated way, if I had to start over I’ll probably do that rather than trying to get everything proceduraly.

On the overall I spend ~4 months making the setup, but my goal was more learning and exploration rather than trying to get to a result in a fast way. So I’m pretty sure I could have get there faster with a better initial plan but probably not enough to be faster than regular modeling.

One benefit can be to control a lot of detailed elements :


If you painfully hand placed everything there you probably don’t want to go over and change something.

But with a procedural system it’s generally very cheap :


But obviously this is quite technical and you need to study for some time to be able to do that.

What is quite interesting is that procedural modeling allows to work “backward” :
when doing regular modeling it’s really difficult to do broad changes late in the process. Procedural modeling is quite the opposite since you generally start to art direct at the end once the setup is build.

Say you modeled a very detailed house, with a procedural system adding a room or reducing a wall is super easy, with regular modeling it means a lot of adjustments.
Most of the time it’s overkill but working a bit like that is interesting to experience. It gives a new POV on your work allowing to make a lot of change on what you generally don’t touch a lot !

17 Likes

OK, so (since I use Archpick for procedural modeling anyways) a “regular to subpar Joe” like me mostly benefits from GeoNodes passively through addons built based on them, but it should be crucial to know about their functions in case one ever ran in, say, a city simulation and the client finds there aren’t enough lights in the windows, extremely simply put.

When I have enough downtime, I’ll try to catch up, atm. I just happily use GeoNodes to automatically spread ceiling lights :joy:

You really are an inspiration, I must say. My wife yould just ask me “why are you doing a castle? What’s the point, you’ve got more important things to do” like last time I tried to come up with a purely creative project when sculpting Dragons was a thing :sweat_smile:

2 Likes

Thanks a lot for the nice comments !

Yeah, to me it’s like with rigging, there are some auto-rig tools that can help a lot, but ultimately that’s not enough for many character animation driven projects. So at some point you might end up learning rigging all by yourself if you are serious about that, or find a specialist if the project requires it.

Depending on your needs and how flexible you’ll need to be, you can either use pre-made tools or take the long road and learn to make them by yourself. Both are fine, and GN fits really well pre-made assets, and we can’t learn everything anyway !

Needless to say, knowing at least a little bit is already quite helpful, like with many technical stuff like rigging, or scripting.

Hahaha ! Sure from outside that might looks insane :smiley: To me it’s more an excuse to learn. For sure I like the subject, but what interest me the most is more the process than the result, in these particular procedural modeling cases. I pick castles because it’s a bit harder than previous projects but still at my reach.
What I learned can apply to many different cases, on the technical and artistic side. In that case the subject in itself is not very important. While probably most people will see only the castle, to me I spend months learning how to model wood structures, rocks, vegetation, array of planks, bridges, terrain, scaffolders and so on…
And in fact each of these elements were an excuse to learn much more abstract stuff and basic procedural principles !

2 Likes

Thank you very much for your insights! For someone like me, those are paramount, since you’re also not trying to sell me something.

I was just referring to my wife - you abso-f00kin-lutely do NOT have to explain to me why you made that castle. After all, it’s a fantastic project. I learn the same way. A client wants something, I do it. Often a bad way, but I learn best under prssure and as long as the client doesn’t mind my messing around (whch they’ll know upfront), I’m happy to gain the greatest good from the project - knowledge! I’d do a castle 100x over a white box with windows that’s just made to get a bank loan to resell a property.

1 Like

Amazing! :star_struck:

1 Like

Super cool ! Good job, as always ! :smile:

1 Like

Incredible stuff! Your point cloud method for fog seems really interesting, but I’m not fully understanding it, can you point me to any resources explaining how to do this?

1 Like

mighty impressive. Both the setup of making all this procedural and also the render itself.
Seeing an animated flythrough would be so cool.

one thing that bothers me a bit is that there is such a huge entrance portal to the castle and the path there is not wider than the rest of the paths, I’d imagine way heavier stuff getting moved there and leaving a mark on the ground…

1 Like

Thanks a lot @Alex_Kyburg, @AntoineBagattini, @joseph and @TripTilt !

@TripTilt
You are definitely right ! that’s a good idea and the terrain can use more variations.
The procedural side , while being super cool and fun to work with comes a bit in the way, probably next time I’ll try to use less automation and work more on these kind of details.
The castle in itself can probably use a lot of more variation and details, which should be much easier to add in a less automated setup !

@joseph , I’ll provide more info on the point cloud !

3 Likes