Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
backup/*
geo/*
hda/backup*
Binary file added Procedural.hipnc
Binary file not shown.
225 changes: 108 additions & 117 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,117 +1,108 @@
# Final Project!

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:

## Project planning: Design Doc (due 11/5)
Before submitting your first milestone, _you must get your project idea and scope approved by Rachel, Adam or a TA._

### 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:

#### Introduction
- What motivates your project?

#### Goal
- What do you intend to achieve with this project?

#### 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.

#### Specification:
- Outline the main features of your project.

#### Techniques:
- What are the main technical/algorithmic tools you’ll be using? Give an overview, citing specific papers/articles.

#### 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.
## Milestone 1: Implementation part 1 (due 11/12)
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 2: Implementation part 2 (due 11/24)
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.

Put all your code in your forked repository.

Submission: Add a new section to your README titled: Milestone #3, which should include
- written description of progress on your project goals. If you haven't hit all your goals, what did you have to cut and why?
- Detailed output from your generator, images, video, etc.
We'll check your repository for updates. No need to create a new pull request.

Come to class on the due date with a WORKING COPY of your project. We'll be spending time in class critiquing and reviewing your work so far.

## Final submission (due 12/1)
Time to polish! Spen this last week of your project using your generator to produce beautiful output. Add textures, tune parameters, play with colors, play with camera animation. Take the feedback from class critques and use it to take your project to the next level.

Submission:
- Push all your code / files to your repository
- Come to class ready to present your finished project
- 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.
# Procedural modeling: Yuanlin

Author: Henry Han, Nico Kong

## Showcase Demo

![](./img/demo1.png)

![](./img/demo2.png)

![](./img/demo3.png)

## Terrain & Lakes

![](./img/1.png)

## Paths

![](./img/path.png)

## Buildings

![](./img/building.png)

## Plants

**Bamboo 👇**

![](./img/bamboo1.png)

![](./img/bamboo2.png)

**Willow 👇**

![](./img/willow1.png)

![](./img/willow2.png)

## Rocks

![](./img/rocks.png)

![](./img/rocks2.png)

## Fish

![](./img/fish.png)

## Walls & Entrance

![](./img/wall_entrance.png)

## Introduction

Yuanlin (Chinese garden) is an important art form popular among many officials, poets and businessman in ancient China, and now they are open to public visiting. After visiting many gardens in China and learning Houdini in procedural modeling, I find it really interesting to procedurally generate Chinese gardens since it is asymetric structure and involving with a lot of nature elements.



## Goal

Produce a method in houdini that can procedurally generate Chinese garden.

## Inspiration/reference:

[Interactive and Procedural Modeling of Featured Chinese Architectures](https://link.springer.com/chapter/10.1007/978-3-319-53838-9_2)

[Design Analysis of Chinese Classical Garden](https://conservancy.umn.edu/items/a043988e-b843-4ece-9683-8d09d085d91d)

Also some pictures of the most famous Chinese garden (photos from wikipedia)

![](./Reference/liuyuan.jpg)
**Lingering Garden** 👆 (Many stones are surrounding the pool, with 3 small pavilion in between)

![](./Reference/shizilin.jpg)
**Lion Grove Garden** 👆 (A small pavilion stands on the center of the pool, with surrounding stones and trees. )

![](./Reference/zhuozheng.jpg)
**Humble Administrator's Garden** 👆 (The small pavilion is on the left. And the big building is on the right, with an entrance that connects to the bridge)

## Specification:

Procedural modeling of components:

- Buildings (large and small, on land and on water): The buildings are the most complicated part of the garden
- Corridors and walls: These separate the garden into sections
- Trees and rocks: These are the natural components in the garden
- Pools, streams and bridges: Also a very important components in the garden, whether it is built or natural

## Techniques:

L-System / Grammar-based modeling: Generate paths, isle, wall placement, and pavilion positioning

Noise-based generation: Create rocks and partitions

## Design:

![](./Reference/Diagram.png)

## Timeline:

Week1: Produce some basic assets, e.g. small pavilion, bridges, willow, rocks. Find a way to place pools and streams
Week2: Refine the buildings and the plants with more styles and parameters
Week3: Try out more ways to put altogether, as well as try rendering
Week4: Finish up

## Progress Update (11/24)

![](./img/f1.png)
Binary file added Reference/Diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added Reference/liuyuan.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Reference/shizilin.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Reference/smart-graphics-2017.pdf
Binary file not shown.
Binary file added Reference/zhuozheng.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/Animation.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/e1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/e2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/e3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/e4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/q1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/q2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/q3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/q4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/r1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/r2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/r3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/r4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/w1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/w2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/w3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SlideImg/w4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added garden_map.hipnc
Binary file not shown.
Binary file added garden_map_bak116.hipnc
Binary file not shown.
Binary file added garden_map_bak116_bak28.hipnc
Binary file not shown.
Binary file added garden_map_stylized.hipnc
Binary file not shown.
Binary file added hda/object_SirEnri.bamboo.1.0.hdanc
Binary file not shown.
Binary file added hda/object_SirEnri.lotus.1.0.hdanc
Binary file not shown.
Binary file added hda/object_SirEnri.lotus_leaf.1.0.hdanc
Binary file not shown.
Binary file added hda/object_SirEnri.plants.1.0.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.ROOF_SURFACE_IMPL.1.6.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.0.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.1.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.2.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.3.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.4.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.5.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.6.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.7.hdanc
Binary file not shown.
Binary file added hda/sop_SirEnri.building_impl.1.8.hdanc
Binary file not shown.
Binary file added img/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/bamboo1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/bamboo2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/building.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/demo1.png
Binary file added img/demo2.png
Binary file added img/demo3.png
Binary file added img/f1.png
Binary file added img/fish.png
Binary file added img/path.png
Binary file added img/rocks.png
Binary file added img/rocks2.png
Binary file added img/s1.png
Binary file added img/s10.png
Binary file added img/s11.png
Binary file added img/s2.png
Binary file added img/s3.png
Binary file added img/s4.png
Binary file added img/s5.png
Binary file added img/s6.png
Binary file added img/s7.png
Binary file added img/s8.png
Binary file added img/s9.png
Binary file added img/showcase.png
Binary file added img/wall_entrance.png
Binary file added img/willow1.png
Binary file added img/willow2.png
Binary file added karma.exr
Binary file not shown.
Binary file added sop_SirEnri.ROOF_SURFACE_IMPL.1.6.hdanc
Binary file not shown.