From f19711c7ea7d6ff1e7c5d61ead2d95dbe28a8990 Mon Sep 17 00:00:00 2001
From: sherryli02 <97941858+sherryli02@users.noreply.github.com>
Date: Wed, 8 Nov 2023 14:50:36 -0500
Subject: [PATCH 1/7] Update README.md
---
README.md | 101 +++++++++++++++++-------------------------------------
1 file changed, 31 insertions(+), 70 deletions(-)
diff --git a/README.md b/README.md
index 3f5b1e71..cec65ed2 100644
--- a/README.md
+++ b/README.md
@@ -1,36 +1,51 @@
-# Final Project!
+# Final Project: Townhouse Generator
-This is it! The culmination of your procedural graphics experience this semester. For your final project, we'd like to give you the time and space to explore a topic of your choosing. You may choose any topic you please, so long as you vet the topic and scope with an instructor or TA. We've provided some suggestions below. The scope of your project should be roughly 1.5 homework assignments). To help structure your time, we're breaking down the project into 4 milestones:
+## Design Doc
-## Project planning: Design Doc (due 11/8)
-Before submitting your first milestone, _you must get your project idea and scope approved by Rachel, Adam or a TA._
+#### Introduction
-### Design Doc
-Start off by forking this repository. In your README, write a design doc to outline your project goals and implementation plan. It must include the following sections:
+When walking around my neighborhood near the west end of campus, I always find myself admiring the facades of the townhouses. Although they all follow a similar structure, each has its own unique charm.
-#### Introduction
-- What motivates your project?
+During the Procedural Jellyfish assignment, I really enjoyed making a tool that lets artists tweak many parameters to achieve a desired result and also instantly generate random variations to quickly populate a scene. I think this sort of procedural tool would be perfect to generate townhouses, which are often needed in large numbers along a street and impractical to model individually.
#### Goal
-- What do you intend to achieve with this project?
+
+With this project, I intend to create a Houdini tool that lets artists generate variations of townhouse facades by customizing the parameters of a controller node.
#### Inspiration/reference:
-- You must have some form of reference material for your final project. Your reference may be a research paper, a blog post, some artwork, a video, another class at Penn, etc.
-- Include in your design doc links to and images of your reference material.
+
+My inspiration comes from the buildings around me. Specifically, I aim to reference the architectural style of flat-roof conjoined rowhouses that are [distinctive to Philadelphia](https://philadelphiaencyclopedia.org/essays/row-houses/).
+
+
+
+I want to have a substantial degree of realism, but not to the point of hyperrealism. Stylistically, I want to match the environments of animated films and games that have stylized characters but much more realistic buildings.
+
+
+
#### Specification:
-- Outline the main features of your project.
+
+The user will be able to control a wide variety of parameters that affect building dimensions, roof styles, brick styles, window and shutter styles, door styles, staircase/door height, colors of each component, presence of items like AC units, flags, and lamps, and other details. I aim to strike a balance between specification and noise/proceduralism such that the user has a high level of control, but not so much that it becomes tedious to construct one house.
+
+Stretch goals include having the user be able to simply scrub through a seed to generate infinite random townhouse variations, and generating houses in a row along a street.
#### Techniques:
-- What are the main technical/algorithmic tools you’ll be using? Give an overview, citing specific papers/articles.
+
+I aim to use a wide variety of Houdini nodes. Ideally, I hope to work with multiparms and Python scripting to customize instances of geometry. YouTube tutorials I'm looking at include [(x)](https://www.youtube.com/watch?v=gmYvA05orbs), [(x)](https://www.youtube.com/watch?v=h1JK3HL7Sb8), and [(x)](https://www.youtube.com/watch?v=uIe97023sDk).
#### Design:
-- How will your program fit together? Make a simple free-body diagram illustrating the pieces.
+
#### Timeline:
-- Create a week-by-week set of milestones for each person in your group. Make sure you explicitly outline what each group member's duties will be.
-Submit your Design doc as usual via pull request against this repository.
+Week 1 (by 11/15): Create the base geometry of all building elements (house, windows, door, staircase, inner details).
+
+Week 2 (by 11/27): Refine geometry (bricks, outer details, color).
+
+Week 3 (by 11/5): Implement stretch goals if possible (randomization, trees). Polish GUI controls and reate renders.
+
+
+
## Milestone 1: Implementation part 1 (due 11/15)
Begin implementing your engine! Don't worry too much about polish or parameter tuning -- this week is about getting together the bulk of your generator implemented. By the end of the week, even if your visuals are crude, the majority of your generator's functionality should be done.
@@ -61,57 +76,3 @@ Submission:
- Update your README with two sections
- final results with images and a live demo if possible
- post mortem: how did your project go overall? Did you accomplish your goals? Did you have to pivot?
-
-## Topic Suggestions
-
-### Create a generator in Houdini
-
-### A CLASSIC 4K DEMO
-- In the spirit of the demo scene, create an animation that fits into a 4k executable that runs in real-time. Feel free to take inspiration from the many existing demos. Focus on efficiency and elegance in your implementation.
-- Example:
- - [cdak by Quite & orange](https://www.youtube.com/watch?v=RCh3Q08HMfs&list=PLA5E2FF8E143DA58C)
-
-### A RE-IMPLEMENTATION
-- Take an academic paper or other pre-existing project and implement it, or a portion of it.
-- Examples:
- - [2D Wavefunction Collapse Pokémon Town](https://gurtd.github.io/566-final-project/)
- - [3D Wavefunction Collapse Dungeon Generator](https://github.com/whaoran0718/3dDungeonGeneration)
- - [Reaction Diffusion](https://github.com/charlesliwang/Reaction-Diffusion)
- - [WebGL Erosion](https://github.com/LanLou123/Webgl-Erosion)
- - [Particle Waterfall](https://github.com/chloele33/particle-waterfall)
- - [Voxelized Bread](https://github.com/ChiantiYZY/566-final)
-
-### A FORGERY
-Taking inspiration from a particular natural phenomenon or distinctive set of visuals, implement a detailed, procedural recreation of that aesthetic. This includes modeling, texturing and object placement within your scene. Does not need to be real-time. Focus on detail and visual accuracy in your implementation.
-- Examples:
- - [The Shrines](https://github.com/byumjin/The-Shrines)
- - [Watercolor Shader](https://github.com/gracelgilbert/watercolor-stylization)
- - [Sunset Beach](https://github.com/HanmingZhang/homework-final)
- - [Sky Whales](https://github.com/WanruZhao/CIS566FinalProject)
- - [Snail](https://www.shadertoy.com/view/ld3Gz2)
- - [Journey](https://www.shadertoy.com/view/ldlcRf)
- - [Big Hero 6 Wormhole](https://2.bp.blogspot.com/-R-6AN2cWjwg/VTyIzIQSQfI/AAAAAAAABLA/GC0yzzz4wHw/s1600/big-hero-6-disneyscreencaps.com-10092.jpg)
-
-### A GAME LEVEL
-- Like generations of game makers before us, create a game which generates an navigable environment (eg. a roguelike dungeon, platforms) and some sort of goal or conflict (eg. enemy agents to avoid or items to collect). Aim to create an experience that will challenge players and vary noticeably in different playthroughs, whether that means procedural dungeon generation, careful resource management or an interesting AI model. Focus on designing a system that is capable of generating complex challenges and goals.
-- Examples:
- - [Rhythm-based Mario Platformer](https://github.com/sgalban/platformer-gen-2D)
- - [Pokémon Ice Puzzle Generator](https://github.com/jwang5675/Ice-Puzzle-Generator)
- - [Abstract Exploratory Game](https://github.com/MauKMu/procedural-final-project)
- - [Tiny Wings](https://github.com/irovira/TinyWings)
- - Spore
- - Dwarf Fortress
- - Minecraft
- - Rogue
-
-### AN ANIMATED ENVIRONMENT / MUSIC VISUALIZER
-- Create an environment full of interactive procedural animation. The goal of this project is to create an environment that feels responsive and alive. Whether or not animations are musically-driven, sound should be an important component. Focus on user interactions, motion design and experimental interfaces.
-- Examples:
- - [The Darkside](https://github.com/morganherrmann/thedarkside)
- - [Music Visualizer](https://yuruwang.github.io/MusicVisualizer/)
- - [Abstract Mesh Animation](https://github.com/mgriley/cis566_finalproj)
- - [Panoramical](https://www.youtube.com/watch?v=gBTTMNFXHTk)
- - [Bound](https://www.youtube.com/watch?v=aE37l6RvF-c)
-
-### YOUR OWN PROPOSAL
-- You are of course welcome to propose your own topic . Regardless of what you choose, you and your team must research your topic and relevant techniques and come up with a detailed plan of execution. You will meet with some subset of the procedural staff before starting implementation for approval.
From 5e7ca752421c0bd28da3e5892331ff07364ac560 Mon Sep 17 00:00:00 2001
From: sherryli02 <97941858+sherryli02@users.noreply.github.com>
Date: Wed, 8 Nov 2023 15:36:36 -0500
Subject: [PATCH 2/7] Update README.md
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index cec65ed2..0fcc0947 100644
--- a/README.md
+++ b/README.md
@@ -38,11 +38,11 @@ I aim to use a wide variety of Houdini nodes. Ideally, I hope to work with multi
#### Timeline:
-Week 1 (by 11/15): Create the base geometry of all building elements (house, windows, door, staircase, inner details).
+Milestone 1 (by 11/15): Create the base geometry of all building elements (house, windows, door, staircase, inner details).
-Week 2 (by 11/27): Refine geometry (bricks, outer details, color).
+Milestone 2 (by 11/27): Refine geometry (bricks, outer details, color).
-Week 3 (by 11/5): Implement stretch goals if possible (randomization, trees). Polish GUI controls and reate renders.
+Milestone 3 (by 11/5): Implement stretch goals if possible (randomization, trees). Polish GUI controls and reate renders.
From 6000ca976d07c47adadad81687e1c57fabc0c272 Mon Sep 17 00:00:00 2001
From: sherryli02 <97941858+sherryli02@users.noreply.github.com>
Date: Wed, 8 Nov 2023 19:42:19 -0500
Subject: [PATCH 3/7] Update README.md
---
README.md | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 0fcc0947..d2804272 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
# Final Project: Townhouse Generator
+by Sherry Li
## Design Doc
@@ -10,18 +11,21 @@ During the Procedural Jellyfish assignment, I really enjoyed making a tool that
#### Goal
-With this project, I intend to create a Houdini tool that lets artists generate variations of townhouse facades by customizing the parameters of a controller node.
+With this project, I intend to create a Houdini procedural modelling tool that lets artists generate variations of townhouse facades by customizing the parameters of a controller node.
#### Inspiration/reference:
My inspiration comes from the buildings around me. Specifically, I aim to reference the architectural style of flat-roof conjoined rowhouses that are [distinctive to Philadelphia](https://philadelphiaencyclopedia.org/essays/row-houses/).
-
+
+
+
+
+
+
+
@@ -29,13 +29,13 @@ I want to have a substantial degree of realism, but not to the point of hyperrea
#### Specification:
-The user will be able to control a wide variety of parameters that affect building dimensions, roof styles, brick styles, window and shutter styles, door styles, staircase/door height, colors of each component, presence of items like AC units, flags, and lamps, and other details. I aim to strike a balance between specification and noise/proceduralism such that the user has a high level of control, but not so much that it becomes tedious to construct one house.
+The user will be able to control various parameters affecting building dimensions, roof styles, brick styles, window and shutter styles, door styles, staircase/door height, colors of each component, presence of items like AC units, flags, and lamps, and other details. I aim to strike a balance between specification and noise/proceduralism such that the user has a high level of control, but not so much that it becomes tedious to construct one house.
-Stretch goals include having the user be able to simply scrub through a seed to generate infinite random townhouse variations, and generating houses in a row along a street.
+Stretch goals include allowing users to simply scrub through a seed to generate infinite random townhouse variations and generating houses in a row along a street.
#### Techniques:
-I aim to use a wide variety of Houdini nodes. Ideally, I hope to work with multiparms and Python scripting to customize instances of geometry. YouTube tutorials I'm looking at include [(x)](https://www.youtube.com/watch?v=gmYvA05orbs), [(x)](https://www.youtube.com/watch?v=h1JK3HL7Sb8), and [(x)](https://www.youtube.com/watch?v=uIe97023sDk).
+I aim to use a range of Houdini nodes. Ideally, I hope to work with multiparms and Python scripting to customize instances of geometry. YouTube tutorials I'm looking at include [(x)](https://www.youtube.com/watch?v=gmYvA05orbs), [(x)](https://www.youtube.com/watch?v=h1JK3HL7Sb8), and [(x)](https://www.youtube.com/watch?v=uIe97023sDk).
#### Design:
From 5725c6631f2b94f9092f2f3924426faa87b9701a Mon Sep 17 00:00:00 2001
From: sherryli02 <97941858+sherryli02@users.noreply.github.com>
Date: Wed, 15 Nov 2023 23:57:35 -0500
Subject: [PATCH 5/7] Update README.md
---
README.md | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
index 6ee7b96a..ebe8abc8 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ Stretch goals include allowing users to simply scrub through a seed to generate
#### Techniques:
-I aim to use a range of Houdini nodes. Ideally, I hope to work with multiparms and Python scripting to customize instances of geometry. YouTube tutorials I'm looking at include [(x)](https://www.youtube.com/watch?v=gmYvA05orbs), [(x)](https://www.youtube.com/watch?v=h1JK3HL7Sb8), and [(x)](https://www.youtube.com/watch?v=uIe97023sDk).
+I aim to use a range of Houdini nodes. Ideally, I hope to work with multiparms to customize instances of geometry.
#### Design:
@@ -52,16 +52,17 @@ Milestone 2 (by 11/27): Refine geometry (bricks, outer details, color).
Milestone 3 (by 11/5): Implement stretch goals if possible (randomization, trees). Polish GUI controls and reate renders.
+## Milestone 1
+
+
+
+
+For this milestone, I created the base elements of the generator. Before I began constructing my node networks, I spent some time thinking through how I wanted to structure the generator in Houdini, particularly in regards to making it possible for me to later implement my stretch goal of having customization and randomization for a series of houses along a street. I decided on first creating a network to generate a single townhouse with an internal controller node. Later, I can convert it to a HDA and use multiparms with a for loop to generate multiple customizable townhouses.
+
+I procedurally modelled initial versions of the walls, windows, doors, roof, foundation, and staircase, connecting parameters to a controller node as I went along.
-## Milestone 1: Implementation part 1 (due 11/15)
-Begin implementing your engine! Don't worry too much about polish or parameter tuning -- this week is about getting together the bulk of your generator implemented. By the end of the week, even if your visuals are crude, the majority of your generator's functionality should be done.
-Put all your code in your forked repository.
-Submission: Add a new section to your README titled: Milestone #1, which should include
-- written description of progress on your project goals. If you haven't hit all your goals, what's giving you trouble?
-- Examples of your generators output so far
-We'll check your repository for updates. No need to create a new pull request.
## Milestone 3: Implementation part 2 (due 11/27)
We're over halfway there! This week should be about fixing bugs and extending the core of your generator. Make sure by the end of this week _your generator works and is feature complete._ Any core engine features that don't make it in this week should be cut! Don't worry if you haven't managed to exactly hit your goals. We're more interested in seeing proof of your development effort than knowing your planned everything perfectly.
From ac64660268e970048cdfc427773b0c538e384841 Mon Sep 17 00:00:00 2001
From: sherryli02 <97941858+sherryli02@users.noreply.github.com>
Date: Wed, 6 Dec 2023 10:22:14 -0500
Subject: [PATCH 6/7] Update README.md
---
README.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/README.md b/README.md
index ebe8abc8..1a087201 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,9 @@
+Presentation link: https://drive.google.com/file/d/1ndRS7wvy7Q7Ap0iTkW_ox9R9-V8OCexZ/view?usp=sharing
+
+
+
+
+
# Final Project: Townhouse Generator
by Sherry Li
From f02c7f5d58b71d9e281e74ea97b863b8cfd0de0e Mon Sep 17 00:00:00 2001
From: sherryli02 <97941858+sherryli02@users.noreply.github.com>
Date: Mon, 11 Dec 2023 10:11:48 -0500
Subject: [PATCH 7/7] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 1a087201..5f3b6577 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Presentation link: https://drive.google.com/file/d/1ndRS7wvy7Q7Ap0iTkW_ox9R9-V8OCexZ/view?usp=sharing
+Presentation link: https://drive.google.com/file/d/1F-joSUog9_I8KyWL3yK4KM3c83ZqQVwq/view?usp=sharing