top of page

Ruined Cottage Generator Blog

  • Writer: Jesse Olchawa
    Jesse Olchawa
  • Apr 18
  • 4 min read

Introduction

Hello there, this post entails the development of my procedural cottage generator inspired by Atomfall. This generator uses Houdini to place modular modelled pieces into final buildings with controls, seeds and dropdown for finer artist control. Currently a work in progress.

 

Project Outline and Inspirations


The goals of this project are to get better at constructing buildings procedurally and build a good modular kit along the way. I’m quite inspired by Atomfall as after playing through the game I felt very nostalgic of summer trips to the Peak District and the lovely British cottage side (minus the radiation and ferals).



It’s also a great excuse to gather more reference by popping out with the upcoming summer weather. I dove through my reference pictures from trips and settled on trying to create a good kit to create the slate rock buildings of Wetton Village. This village is close by to Thors Cave a fantastic hilltop cave that I visited last summer with my friends, it has stunning views and great country surrounding the village.


Let’s breakdown this projects goals:

  • Create a procedural building generate int the style of northern cottage buildings

  • Be able to randomise the building with seeds

  • Support a variety of building types – tavern, inn, pub or shop through a dropdown

  • Place windows and doors at specified spots using tagged assets

  • Link shaders to the tool to apply worn vertex painting and dynamically change colours

  • Optimise cost through LODS and instancing within Unreal Engine


Some stretch goals:

  • Spawn decals to apply staining and damage

  • Apply vertex painting to instancing for ruined wear

  • Spawn additional set dressing on top like lamps, window flower planter, signage or vines

  • Write documentation


The timeline is not fully determined for this project as the university term is starting again, I will be busy with teaching however I would like to wrap it up before the middle of May for the base stages and push it further later on (maybe interiors?). I’m also taking partial inspiration to the phenomenal building breakdowns Embark released a bit ago from their game Finales do check it out: https://www.sidefx.com/community/making-the-procedural-buildings-of-the-finals-using-houdini/


 

Modular Walls – Make and Place

I modelled my modular walls in 3DSMax and set their dimensions to be 250 height and 200 widths. I got these numbers through some trial and error of measuring various references of cottages and creating a master building blockout (based on Danescombe Cottage). I explored further sizes of shorter pieces, but this made putting them together very close and strange compared to my reference.



To start the placement, I created a box and isolated the bottom border. From this I resample the points to be every 200 and spawned my walls. To make them rotate properly I used the normal point value to force a different transform of the pieces. For randomising the pieces I used a attribute randomiser to set a value random between 0 and 2 for choosing either blank wall, door and window.


Fixing Broken Resampling


I did encounter however a problem that if the inserted box was not evenly divided for 200 by 250 it broke the placement resample. To resolve this I used a bounds node to recalculate the spawning box into a box that does fit the dimensions using a wrangle. This will also ensure any other procedural placement resample will fit as long as the modular pieces are modelled to be 200 by 250.


Vertex Shaders for Walls


I wanted to test if some randomised vertex painting values on the walls would work. The current generation is mesh based not instanced so what I did was randomly spawn sphere to create splashes of vertex wear data around the walls. This worked quite well however will need to be reworked once the HDA is packed to respond in UE with its instances. The current vertex paint uses red channel for wear of paint to the stone and green for dark moss wear around window and door frames.

 

Placing Roof and Shingles

To place the tiles on the roof I first tried to manually fix the normals for each direction however uncovered that its much easier to resample the existing roof borders. A normal breaking node I accidentally introduced was the point jitter as this has a toggle to overwrite the normals too which originally made all my shingles face upwards. I also changed the ridge tile to be rounded to better fit the shape language of my master painted cottage reference - Danescombe Cottage. For determining the spawn point I used the bounds of the top of the border to get the areas to begin calculating the roof. For spawning the chimneys I used existing lines but chose the last 2 points to spawn them in as they appear prominently on the ends of the house (I assume due to where a fireplace is located for kitchen and living area).

 

Automatic Storeys and Building Up

After spawning was working well manually, I knew I had to add a method to automatically detect how many stories high the cottage needed to build. To do this, I added some for-number loops and used my previous scale calculation to figure out how many stories heigh the blockout was by diving by 250. I then took away one as if it was exactly one story the loops should not run, and the initial floor should be the only spawning part with the door. This broke some logic that ran on bounds of the final house such as the quoin and the offset, so I just added another loop to add more quoin per each level as it generated the floors.  Wrangles are phenomenal you can add any inputs and utilise iterations and all sorts of detail from the panels throughout an entire graph! Onto gutters next to make the roofs pop more.

Comments


© 2025-2026 Jesse Olchawa

The content provided on this website cannot be utilised for any AI training or data gathering purposes!

bottom of page