Bachelor's Thesis

Procedurální generování tradiční valašské architektury

Final Thesis 11.73 MB

Author of thesis: Bc. Jakub Zelenay

Acad. year: 2025/2026

Supervisor: Ing. Tomáš Milet, Ph.D.

Reviewer: Ing. Tomáš Chlubna, Ph.D.

Abstract:

This thesis focuses on the design and implementation of a tool for Blender that procedurally generates 3D house models featuring elements of traditional Wallachian architecture. The solution is implemented as a Geometry Nodes library which transforms simple input geometry into complex output geometry in real time, including a shingle roof, ground-floor log walls with dovetail corner joints, upper-floor walls with decorative cladding, and the placement of windows and doors with openings cut using Boolean operations. The thesis describes the key design principles and selected implementation techniques (face selection and ordering, instancing, manifold geometry) and presents a projection-based texturing method that avoids the need for UV unwrapping. The conclusion summarizes the results, testing, limitations, and possibilities for future extensions.

Keywords:

Blender, Moravian Wallachia, Blender library, Blender extension, Geometry Nodes, procedural generation, traditional Wallachian architecture, dovetail joint, log construction

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Topics for thesis defence

  1. Proč začíná název skupiny uzlů „.Join logs and joints, texture“ tečkou? V textu tento výskyt vypadá na první pohled jako překlep.
  2. V textu je uvedeno: „...zásuvný modul sa v texte myslí celkové riešenie...nie termín Add-on, ktorý v kontexte programu Blender znamená jeden konkrétny spôsob rozšírenia, využívajúci skript v jazyku Python...“ Jedná se o označení z pohledu autora, nebo lze tyto definice dohledat? Addon může pomocí jazyka Python vygenerovat i geometry nodes, které by fungovaly stejně jako řešení autora, nebo může průběžně aktualizovat scénu pomocí skriptu a docílit tak stejného efektu.
  3. Kolik uživatelů se účastnilo testování? Měli předchozí zkušenosti s Blenderem?
  4. Obrázek 2.7 a použitá pravidla se nápadně podobají obsahu webu lazynezumi.com/lsystems. Jedná se o náhodu? Ukažte obrázky vedle sebe a vysvětlete odkud pravidla, která jste použil, jsou a jak jste obrázek vygeneroval. Chybí v textu citace?
  5. Vytvořte graf závislosti času generování na počtu vstupních stěn geometrie, nebo podobně proměřte výkon rozšíření v závislosti na vstupu.
  6. Jakým způsobem generujete náhodná čísla? Proč semínko generátoru nastavujete opakovaně?
  7. Jaké architektonické prvky váš systém zvládne a nezvládne generovat? Proč jste je vynechal?

Language of thesis

Slovak

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

prof. Ing. Adam Herout, Ph.D. (předseda)
doc. Ing. Michal Bidlo, Ph.D. (místopředseda)
Ing. Jaroslav Dytrych, Ph.D. (člen)
Ing. Ivana Burgetová, Ph.D. (člen)
Dr. Ing. Petr Peringer (člen)

Supervisor’s report
Ing. Tomáš Milet, Ph.D.

Studentova práce byla příkladná. Pracovalo se s ním dobře a plnil dohodnuté úkoly. Sám přicházel s návrhem řešení.

Evaluation criteria Verbal classification
Information about assignment

Cílem práce bylo vytvořit zásuvný modul pro generování valašské architektury. Práce je obtížnější a vyžaduje hlubší pochopení procedurálního generování v Blenderu. Jsem spokojen se studentovou prací.

Work with literature

Student si dohledával potřebné zdroje informací.

Activity during solution, consultations, communication

Student konzultoval pravidelně. Na konzultacích byl připravený a ukázal názorně, co udělal.

Activity during completion

Student byl aktivní i při dokončování. Finální obsah práce byl konzultován.

Publication activity, awards

Student zveřejnil svůj zásuvný modul a jeho práce může posloužit jako studium, jak generovat valašskou architekturu. Zároveň i modul samotný je uživatelsky přívětivý a jeho výsledky jsou použitelné.

Points proposed by supervisor: 90

Grade proposed by supervisor: A

Reviewer’s report
Ing. Tomáš Chlubna, Ph.D.

Realizace je zdařilá a unikátní, textová zpráva dobře popisuje postup, avšak je zatížena několika nekritickými nedostatky.


Celkově se jedná o zajímavý a vydařený projekt, který unikátně obohacuje komunitní nástroje editoru Blender. Autor také řešil netriviální geometrické úlohy při procedurálním generování obsahu. Hodnocení je sníženo kvůli menšímu množství formálních nedostatků v textové zprávě.

Evaluation criteria Verbal classification Points
The difficulty of the assignment

Evaluation level: more difficult assignment

Cíl vytvoření obecného generátoru dané architektury na jakékoliv geometrii je náročné splnit díky velké variabilitě možných vstupů.

Autor zvolil několik elementů valašské architektury, na které se zaměřil a ty celkem zdařile implementoval. Generátor by šlo dále rozšířit a ošetřit různé neočekávané konfigurace, avšak výsledek je velmi pěkný.

Presentation level of the technical report

Text dodržuje standardní strukturu a je dobře pochopitelný, v implementační části jsou v menší míře úryvky teorie.

V návrhové kapitole autor pěkně popisuje i alternativní řešení, která nakonec musel přepracovat kvůli optimalizacím a jasně popisuje jejich výhody a nevýhody. 

V implementační kapitole se místy nachází delší úryvky, které popisují, jak fungují jednotlivé uzly v Blenderu (např. Repeat Zone či Evaluate on Domain). Tyto části jsou spíše teoretickým popisem existujících nástrojů než implementačními detaily.

92
Formal preparation of a technical report

Text je většinou vysázen vhodně a není zatížen kritickými chybami, místy se vyskytují nekonzistence a menší nedostatky.

V textu se nevyskytují překlepy, jen na str 13 se nachází navíc tečka za odkazem na poznámku pod čarou umístěnou za již existující tečkou.

Slova Object Info jsou nevhodně vysázena tučně v obsahu a nadpis 5.7 je z neznámého důvodu rozdělen na dva řádky. V seznamech není použita diakritika oddělující jednotlivé položky. Nad sekcí 3.2 se nachází odstavec s jednou krátkou větou. Na některých místech (např. str. 30 či 62) se nachází velký nevyužitý prázdný prostor.

Obrázky vytvořené autorem jsou velmi pěkné, kde je to vhodné také s prvky ve vektorovém formátu. U popisků je mírná nekonzistence ve formátu, kdy některé popisky končí tečkami a jiné ne, některé jsou delší a dobře vysvětlující a některé velmi krátké (např. obr. 2.8 má popisek dlouhý 11 řádků, zatímco obr. 2.11 má popisek dlouhý 3 slova, která jen opakují to, co už v obrázku napsáno je). Podobně i věty v poznámkách pod čarou jsou někdy zakončeny tečkou a jindy ne. Obrázky 3.1 a 3.2 nejsou referencovány v textu. Algoritmy jsou místy odkazovány jako pseudokód, což vytváří nekonzistenci mezi popiskem objektu a odkazem v textu. Obrázek 5.21 přetéká přes svůj vlastní popisek.

80
Realisation output

Výsledné rozšíření generuje pěkné výsledky a je aplikovatelné na většinu standardních geometrických tvarů.

Rozšíření je snadno použitelné v Blenderu a lze pomocí něj vygeneroval valašskou architekturu na libovolné geometrii. Celkově jsou výsledky vizuálně hezké a generování probíhá dostatečně rychle.

95
Usability of results

Rozšíření je publikováno a volně dostupné pro komunitu.

Jelikož se jedná o úzce zaměřený generátor na lokální architekturu, tak je výsledek unikátní a vytváří užitečné výstupy, které by bylo náročné získávat jiným způsobem.

The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

Všechny body zadání byly splněny.

Extent of the technical report

Evaluation level: is within the usual extent

Zpráva je informačně hodnotná a dobře popisuje celou práci, jen kapitola měření je velmi stručná.

Kapitola měření mohla být více obsáhlá a například zhodnotit celkový výkon generování, jak dlouho celý proces trvá s narůstající geometrií. Autor měří výkon některých částí, nicméně v textu chybí specifikace sestavy na které byly časy měřeny. V popisu uživatelské studie chybí základní demografické údaje o účastnících a také jejich celkový počet.

Work with literature

V textu je vhodně citováno 13 relevantních odborných zdrojů, některé citace jsou neúplné.

Záznamy [2, 3] odkazují na stejný zdroj a mohly být sloučeny. U zdrojů [9, 10] chybí DOI.

V textu je velké množství vhodně umístěných poznámek pod čarou s doplňujícími informacemi. Některé z nich dobře popisují převzaté materiály nejen použité v textu samotném, ale i v realizační části. Některé však jsou duplicitní (např. odkaz na publikovaný výsledek). 

88
Topics for thesis defence:
  1. Obrázek 2.7 a použitá pravidla se nápadně podobají obsahu webu lazynezumi.com/lsystems. Jedná se o náhodu? Ukažte obrázky vedle sebe a vysvětlete odkud pravidla, která jste použil, jsou a jak jste obrázek vygeneroval. Chybí v textu citace?
  2. Proč začíná název skupiny uzlů „.Join logs and joints, texture“ tečkou? V textu tento výskyt vypadá na první pohled jako překlep.
  3. V textu je uvedeno: „...zásuvný modul sa v texte myslí celkové riešenie...nie termín Add-on, ktorý v kontexte programu Blender znamená jeden konkrétny spôsob rozšírenia, využívajúci skript v jazyku Python...“ Jedná se o označení z pohledu autora, nebo lze tyto definice dohledat? Addon může pomocí jazyka Python vygenerovat i geometry nodes, které by fungovaly stejně jako řešení autora, nebo může průběžně aktualizovat scénu pomocí skriptu a docílit tak stejného efektu.
  4. Kolik uživatelů se účastnilo testování? Měli předchozí zkušenosti s Blenderem?
  5. Vytvořte graf závislosti času generování na počtu vstupních stěn geometrie, nebo podobně proměřte výkon rozšíření v závislosti na vstupu.
Points proposed by reviewer: 88

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová