A robust procedural building generator that creates diverse architectural structures with randomized footprints, heights, window placements, and two fully-adaptive roof types — all assembled at runtime with no hand-authored prefabs.

This project was built as a solo course project for Procedural Content Generation at Georgia Tech. The challenge was to create a system capable of generating an unlimited variety of believable architectural structures — not just boxes with textures, but buildings with proper proportions, details, and roof geometry that adapts to any random footprint.
The hardest part turned out to be the gable roof system, which had to correctly connect intersecting roof geometry across a randomly-shaped building footprint — a problem that required a custom detection and geometry placement algorithm.
Dynamic Height & Footprint GenerationEach building gets a randomly generated footprint size and overall height, plus internal height variations via a radius-based system that creates realistic floor-to-floor variation. No two buildings share the same silhouette.
Two Adaptive Roof TypesImplemented flat apartment-style roofs and complex gable roofs, both dynamically adapting to whatever random footprint the building received. The gable roof system required a custom algorithm to detect intersecting roof sections and correctly place connecting geometry — the project's most technically demanding feature.
Procedural Texture AssignmentApplied custom textures procedurally for walls, windows, and doors — giving each building a distinct visual character while maintaining architectural coherence.
Door & Window PlacementEvery building procedurally places a first-floor door (chosen from two types) and window variants scaled to the building's size, ensuring architectural completeness and visual detail at street level.