diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f600982 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +backup/* \ No newline at end of file diff --git a/INSTRUCTIONS.md b/INSTRUCTIONS.md new file mode 100644 index 0000000..aeed301 --- /dev/null +++ b/INSTRUCTIONS.md @@ -0,0 +1,119 @@ +# 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/9) +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. +1. Building a detailed peacock feather render. +2. Working on the body of peacock with additional feathers + +#### 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/16) +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/28) +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/5) +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. diff --git a/README.md b/README.md index 2859b45..d4c3a12 100644 --- a/README.md +++ b/README.md @@ -1,117 +1,216 @@ -# 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/9) -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/16) -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/28) -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/5) -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. +# Final Project CIS 566 +Find a quick [video of making and demo here](https://drive.google.com/file/d/1E5Ascchzc6NvScllslJxYXp_-zhpFCp1/view?usp=sharing) + + +## Motivation + +Peacock is one of the most beautiful and colorful birds. I have always been fascinated by the colorful patterns of its feathers, its regal crown, smooth, glossy body and joyful gait. It always reminds me of monsoon rains, petrichor and dancing in puddles. I had a fallen peacock feather that I used as a bookmark and would spend hours staring at. It brings back many folktales I've heard and poems I've read in my life. Hence I wanted to recreate this lovely bird for this project. + +## Goal + +I intend to get used to developing with Houdini. I want to create a peacock with its feathers spread out. I want to start with building a detailed peacock feather and if time permits, maybe even end with a complete peacock bird. Animating the peacock spreading its feathers can be future work after this project submission. + +## Inspiration/Reference + +### Peacock feathers + +|Artistic reference 1|Artistic reference 2| +|---|---| +|![](References/feather/feather3.jpg)|![](References/feather/feather2_50.jpg)| + +|Real world reference 1|Real world reference 2| +|---|---| +|![](References/feather/feather1.jpg)|![](References/feather/feather5_50.jpg)| + +--- + +### Peacock Body (Possible future implementation) + +|Artistic reference 1|Artistic reference 2|Artistic reference 3| +|---|---|---| +|![](References/peacock/peacock4.gif)|![](References/feather/feather4.jpg)|![](References/peacock/peacock3_25.jpg)| + + +|Real world reference 1|Real world reference 2|Real world reference 3| +|---|---|---| +|![](References/peacock/spreadingfeathers.gif)|![](References/peacock/peacock5_50.jpg)|![](References/peacock/peacock2_40.jpg)| + +## Specification: +Main features of the project: +1. Building a detailed peacock feather render. +2. Working on the body of peacock with additional feathers (not detailed) + +Prima facie, I believe my work will involve a lot of the following Houdini base nodes and I will be extensively relying on their documentation: +- lsystem +- noise, scatter, copyToPoints +- geometry nodes (lines and primitives) +- transform, bend, orientation +- attribute wranglers, masks +- resample, remesh, sweep + +## Techniques: + +I read through some of the following papers which helped me understand the structure of a peacock feather. + +### Papers +[The physical structure, optical mechanics and aesthetics of the peacock tail feathers](https://www.witpress.com/Secure/elibrary/papers/DN02/DN02043FU.pdf) + +[An analysis of optimal structural features in the peacock tail feather](https://www.sciencedirect.com/science/article/abs/pii/S003039920500126X) + +### Video links +[Peacock spreading its feathers](https://www.youtube.com/watch?v=6wVWJIBsUFY) + +### Technical Breakdown of a feather: +The papers helped in understanding how a feather looks like in depth + +|Feather terminology|Feather structure| +|---|---| +|![](References/feather/feathercomponents2.jpg)|![](References/feather/feathercomponents.jpg)| + +--- + +### Useful Houdini tools and tutorials: + +I plan to start off with [this Houdini tutorial](https://www.youtube.com/watch?v=jNj9o9g04pA) for a basic feather design network. It samples points along a line(which will act as the stem or quill) and adds multiple curves (called barbs in a peacock feather) along the base line. I can then add tube geometry over all curves and merge it together. +To change it to look like a peacock I will have to perform the following operations: +1. Vary the sizes of barbs to give it a desired shape +2. Blending different colors to generate a color scheme along the axes +3. Maybe using a color mask to create the eye and set hard color borders +4. Sample points with varying distance along the quill + - Base of the quill has loosely knit barbs or widely spaced out + - The eye has tightly knit barbs or are very closely spaced +5. I will also have to change the irridescence in some way by using some material types +6. Maybe use of some function to vary the curls/bends of the quill within a small range. + +## Design: + +The following diagram shows the things I will have to consider as I build the feather. I have described the feather in detail and for future possible work also incuded basic components to consider when making the entire bird. + +![](References/design.png) + +## Timeline: +- Milestone 1 - Detailed peacock feather generation +- Milestone 2 - Refining the eye and basic structure of peacock body with primitives +- Final submission - Tuning and adding additional details to the peacock for an aesthetic final render + +--- + +# Milestone 1 - Peacock feather + +## Structure + +I followed the Houdini feather tutorial referred above for a basic feather and the tweaked it to make it look like a peacock feather. +I start off with a line for the main stalk and applied a distance based mask along it. I then used an attribute wrangler to get a density attribute based on the mask and distance from base of the stalk. Using Houdini's `Labs Curve Resample By Density` node, I was able to resample the line and scatter points along the line with varying density. + +|Line density mask|Low density sampling|High density sampling| +|---|---|---| +|![](images/mask.png)|![](images/dist1.png)|![](images/dist2.png)| + + +I took another line and bent it to generate a single barb curve. After using some noise to update the normal at each point on stalk, I copied all barbs along the stalk and mirrored it. I used distance along geometry again to remap the length of each barb to obtain a peacock feather shape. I also ruffled the barbs and their orientation with noise function. + +|Single barb curve|Barbs along stalk|Remaping length and mirror| +|---|---|---| +|![](images/barb1.png)|![](images/halfbarbs.png)|![](images/structure.png)| + +The barbs are distributed to ensure that they are spaced far away near the base of the stalk and very tightly near the eye. All lines are then given round tube geometry with radius along the length. + + +## Color + +For the colors I have mostly referred to the following color palette: +![](images/colorPallettePeacock.png) + +The stalk is colored white at its base and brown at its tip (at base of the eye). For the feather colors, I used two `Adjust color attribute` nodes to vary colors along X and Z axis respectively (The feather is placed in XZ plane). + +|Stalk coloring|Colors along X|Colors along Z|Blended feather| +|---|---|---|---| +|![](images/stalkcolor.png)|![](images/colorX.png)|![](images/colorZ.png)|![](images/colorXZblend.png)| + +Finally I used some 2D SDFs combinations to create colors of the eye. + +|Eye colors|Eye positioning| +|---|---| +|![](images/eye.png)|![](images/eyePos.png)| + +The final feather I generated for this milestone looks as follows after adding a slight bend. + +![](images/milestone1.png) + +# Milestone 2 - Iridescence and shape + +For this milestone I worked on 2 main things - correcting the shape of my feather and trying to get iridescence working. I also worked on trying to set a path for the camera and feather to follow and animate, but it is stilll work in progress + +## Feather shape + +I realised after comparing with reference that my barbs curve seemed to be incorrectly bent. So I corrected that by rotating the barb before attaching it to the stalk and it improved the look a lot. + +|Old barb curve|New barb curve| +|---|---| +|![](images/barb_old.png)|![](images/barb_new.png)| + +After a critique session with Rachel I updated the following things: +- Pushed the eye higher +- Made the feather shape around the eye rounder and more suited to look like a feather. I used 2D sdf again to get the shape right and then added some noise to scale the barbs + +My reformed feather structure looks as follows: +![](images/m2_shape3.png) + + +## Iridescence + +I used the following cosine color palette to get iridescence colors: + +| Iridescence color reference | Iridescence color pallette | +|---|---| +|![](images/ir_color_ref.jpg)|![](images/ir_color_palette.png)| + +|a|b|c|d| +|---|---|---|---| +|(0.500 0.500 0.500) | (0.500 0.500 0.500) | (0.718 0.988 1.000) | (-0.222 0.448 0.898) | + +The following figure shows what the iridescence colors look like from different views: + +--- +### Top View +Notice the purple/pink very prominent at tips and the middle where the barbs curve in +![](images/ir_top.png) + +--- + +### Side Views + +In the following images you can observe the changing green and yellow shades and compare it with the look from top view. +![](images/ir_side.png) +![](images/ir_side2.png) + + +I multiplied the color directly with the feather color and it shows the following look +![](images/ir_top_color.png) + +**I do not like the idea of multiplying it. In my next milestone I will try to set this color as a specular/sheen color in the material assigned to my feather.** + +## Camera animation + +I tried adding camera and feather animation but I am not satisfied with the renders. I still need to work on lighting to get the renders right. +![](images/anim1.gif) + +# Final submission: + +![](images/parameters.jpg) +![](images/finalpeacockFeather.jpeg) +![](images/fullrenderss.jpeg) +![](images/fullrender.jpeg) + +**Iridescence bloopers:** + +I initially started off by following the following think film shader turorials and shadertoy example which calculated iridescent colors using complex wavelength functions or using noise functions and I was not happy with the results much + +[Reference shader toy](https://www.shadertoy.com/view/4t2GDG) +[Reference video](https://www.youtube.com/watch?v=Icvp1hrOgn0) +[Thin film shader code](https://docs.chaos.com/display/OSLShaders/Thin+Film+Shader) + +| Iridescent noise from top view | Iridescent noise from different angle of viewing | +|---|---| +|![](images/m2_ir1.png)|![](images/m2_ir2.png)| + diff --git a/References/design.png b/References/design.png new file mode 100644 index 0000000..867a8df Binary files /dev/null and b/References/design.png differ diff --git a/References/feather/feather1.jpg b/References/feather/feather1.jpg new file mode 100644 index 0000000..d1c9365 Binary files /dev/null and b/References/feather/feather1.jpg differ diff --git a/References/feather/feather2.jpg b/References/feather/feather2.jpg new file mode 100644 index 0000000..4979d77 Binary files /dev/null and b/References/feather/feather2.jpg differ diff --git a/References/feather/feather2_50.jpg b/References/feather/feather2_50.jpg new file mode 100644 index 0000000..015a441 Binary files /dev/null and b/References/feather/feather2_50.jpg differ diff --git a/References/feather/feather3.jpg b/References/feather/feather3.jpg new file mode 100644 index 0000000..f46d5ea Binary files /dev/null and b/References/feather/feather3.jpg differ diff --git a/References/feather/feather4.jpg b/References/feather/feather4.jpg new file mode 100644 index 0000000..911514e Binary files /dev/null and b/References/feather/feather4.jpg differ diff --git a/References/feather/feather5.jpg b/References/feather/feather5.jpg new file mode 100644 index 0000000..ad03ac7 Binary files /dev/null and b/References/feather/feather5.jpg differ diff --git a/References/feather/feather5_50.jpg b/References/feather/feather5_50.jpg new file mode 100644 index 0000000..9ccab82 Binary files /dev/null and b/References/feather/feather5_50.jpg differ diff --git a/References/feather/feathercomponents.jpg b/References/feather/feathercomponents.jpg new file mode 100644 index 0000000..cb4fac4 Binary files /dev/null and b/References/feather/feathercomponents.jpg differ diff --git a/References/feather/feathercomponents2.jpg b/References/feather/feathercomponents2.jpg new file mode 100644 index 0000000..4df2bed Binary files /dev/null and b/References/feather/feathercomponents2.jpg differ diff --git a/References/iridescentRenderHoudini.png b/References/iridescentRenderHoudini.png new file mode 100644 index 0000000..31bc196 Binary files /dev/null and b/References/iridescentRenderHoudini.png differ diff --git a/References/iridescentRenderMantra.png b/References/iridescentRenderMantra.png new file mode 100644 index 0000000..66ee2e6 Binary files /dev/null and b/References/iridescentRenderMantra.png differ diff --git a/References/peacock/peacock.jpg b/References/peacock/peacock.jpg new file mode 100644 index 0000000..e50b849 Binary files /dev/null and b/References/peacock/peacock.jpg differ diff --git a/References/peacock/peacock2.jpg b/References/peacock/peacock2.jpg new file mode 100644 index 0000000..e530c62 Binary files /dev/null and b/References/peacock/peacock2.jpg differ diff --git a/References/peacock/peacock2_40.jpg b/References/peacock/peacock2_40.jpg new file mode 100644 index 0000000..40dfd8c Binary files /dev/null and b/References/peacock/peacock2_40.jpg differ diff --git a/References/peacock/peacock3.jpg b/References/peacock/peacock3.jpg new file mode 100644 index 0000000..7c52464 Binary files /dev/null and b/References/peacock/peacock3.jpg differ diff --git a/References/peacock/peacock3_25.jpg b/References/peacock/peacock3_25.jpg new file mode 100644 index 0000000..376610b Binary files /dev/null and b/References/peacock/peacock3_25.jpg differ diff --git a/References/peacock/peacock4.gif b/References/peacock/peacock4.gif new file mode 100644 index 0000000..d538b82 Binary files /dev/null and b/References/peacock/peacock4.gif differ diff --git a/References/peacock/peacock5.jpg b/References/peacock/peacock5.jpg new file mode 100644 index 0000000..0b17141 Binary files /dev/null and b/References/peacock/peacock5.jpg differ diff --git a/References/peacock/peacock5_50.jpg b/References/peacock/peacock5_50.jpg new file mode 100644 index 0000000..31faee9 Binary files /dev/null and b/References/peacock/peacock5_50.jpg differ diff --git a/References/peacock/spreadingfeathers.gif b/References/peacock/spreadingfeathers.gif new file mode 100644 index 0000000..943ef30 Binary files /dev/null and b/References/peacock/spreadingfeathers.gif differ diff --git a/References/peacockFeathersPaper.pdf b/References/peacockFeathersPaper.pdf new file mode 100644 index 0000000..a7d22da Binary files /dev/null and b/References/peacockFeathersPaper.pdf differ diff --git a/References/peacockFeathersPaper2.pdf b/References/peacockFeathersPaper2.pdf new file mode 100644 index 0000000..eb1ac4b Binary files /dev/null and b/References/peacockFeathersPaper2.pdf differ diff --git a/images/8.png b/images/8.png new file mode 100644 index 0000000..7cd6814 Binary files /dev/null and b/images/8.png differ diff --git a/images/anim1.gif b/images/anim1.gif new file mode 100644 index 0000000..e7e1596 Binary files /dev/null and b/images/anim1.gif differ diff --git a/images/barb1.png b/images/barb1.png new file mode 100644 index 0000000..543afcf Binary files /dev/null and b/images/barb1.png differ diff --git a/images/barb_new.png b/images/barb_new.png new file mode 100644 index 0000000..1053633 Binary files /dev/null and b/images/barb_new.png differ diff --git a/images/barb_old.png b/images/barb_old.png new file mode 100644 index 0000000..f989459 Binary files /dev/null and b/images/barb_old.png differ diff --git a/images/blooper1.png b/images/blooper1.png new file mode 100644 index 0000000..8a8e144 Binary files /dev/null and b/images/blooper1.png differ diff --git a/images/colorPallettePeacock.png b/images/colorPallettePeacock.png new file mode 100644 index 0000000..2dff9ba Binary files /dev/null and b/images/colorPallettePeacock.png differ diff --git a/images/colorX.png b/images/colorX.png new file mode 100644 index 0000000..bc42d80 Binary files /dev/null and b/images/colorX.png differ diff --git a/images/colorXZblend.png b/images/colorXZblend.png new file mode 100644 index 0000000..a0e42fd Binary files /dev/null and b/images/colorXZblend.png differ diff --git a/images/colorZ.png b/images/colorZ.png new file mode 100644 index 0000000..6c24c7a Binary files /dev/null and b/images/colorZ.png differ diff --git a/images/dist1.png b/images/dist1.png new file mode 100644 index 0000000..29694e5 Binary files /dev/null and b/images/dist1.png differ diff --git a/images/dist2.png b/images/dist2.png new file mode 100644 index 0000000..635c086 Binary files /dev/null and b/images/dist2.png differ diff --git a/images/eye.png b/images/eye.png new file mode 100644 index 0000000..bb70b3f Binary files /dev/null and b/images/eye.png differ diff --git a/images/eyePos.png b/images/eyePos.png new file mode 100644 index 0000000..7dda3da Binary files /dev/null and b/images/eyePos.png differ diff --git a/images/finalpeacockFeather.jpeg b/images/finalpeacockFeather.jpeg new file mode 100644 index 0000000..4f95b4f Binary files /dev/null and b/images/finalpeacockFeather.jpeg differ diff --git a/images/fullrender.jpeg b/images/fullrender.jpeg new file mode 100644 index 0000000..0bda41e Binary files /dev/null and b/images/fullrender.jpeg differ diff --git a/images/fullrenderss.jpeg b/images/fullrenderss.jpeg new file mode 100644 index 0000000..53d8a1e Binary files /dev/null and b/images/fullrenderss.jpeg differ diff --git a/images/halfbarbs.png b/images/halfbarbs.png new file mode 100644 index 0000000..3777536 Binary files /dev/null and b/images/halfbarbs.png differ diff --git a/images/ir_color_palette.png b/images/ir_color_palette.png new file mode 100644 index 0000000..ca776de Binary files /dev/null and b/images/ir_color_palette.png differ diff --git a/images/ir_color_ref.jpg b/images/ir_color_ref.jpg new file mode 100644 index 0000000..e592527 Binary files /dev/null and b/images/ir_color_ref.jpg differ diff --git a/images/ir_side.png b/images/ir_side.png new file mode 100644 index 0000000..105094a Binary files /dev/null and b/images/ir_side.png differ diff --git a/images/ir_side2.png b/images/ir_side2.png new file mode 100644 index 0000000..7c3d55a Binary files /dev/null and b/images/ir_side2.png differ diff --git a/images/ir_side2_color.png b/images/ir_side2_color.png new file mode 100644 index 0000000..0d02c47 Binary files /dev/null and b/images/ir_side2_color.png differ diff --git a/images/ir_side_color.png b/images/ir_side_color.png new file mode 100644 index 0000000..6339420 Binary files /dev/null and b/images/ir_side_color.png differ diff --git a/images/ir_top.png b/images/ir_top.png new file mode 100644 index 0000000..3148a65 Binary files /dev/null and b/images/ir_top.png differ diff --git a/images/ir_top_color.png b/images/ir_top_color.png new file mode 100644 index 0000000..6bd5c99 Binary files /dev/null and b/images/ir_top_color.png differ diff --git a/images/m2_1.png b/images/m2_1.png new file mode 100644 index 0000000..411c440 Binary files /dev/null and b/images/m2_1.png differ diff --git a/images/m2_2.png b/images/m2_2.png new file mode 100644 index 0000000..8cdadf1 Binary files /dev/null and b/images/m2_2.png differ diff --git a/images/m2_ir1.png b/images/m2_ir1.png new file mode 100644 index 0000000..dee446a Binary files /dev/null and b/images/m2_ir1.png differ diff --git a/images/m2_ir2.png b/images/m2_ir2.png new file mode 100644 index 0000000..5549e44 Binary files /dev/null and b/images/m2_ir2.png differ diff --git a/images/m2_shape.png b/images/m2_shape.png new file mode 100644 index 0000000..559e003 Binary files /dev/null and b/images/m2_shape.png differ diff --git a/images/m2_shape3.png b/images/m2_shape3.png new file mode 100644 index 0000000..25187c2 Binary files /dev/null and b/images/m2_shape3.png differ diff --git a/images/mask.png b/images/mask.png new file mode 100644 index 0000000..65d4ab4 Binary files /dev/null and b/images/mask.png differ diff --git a/images/milestone1.png b/images/milestone1.png new file mode 100644 index 0000000..b69549f Binary files /dev/null and b/images/milestone1.png differ diff --git a/images/milestone1_render.png b/images/milestone1_render.png new file mode 100644 index 0000000..3bb3c7d Binary files /dev/null and b/images/milestone1_render.png differ diff --git a/images/parameters.jpg b/images/parameters.jpg new file mode 100644 index 0000000..e50e151 Binary files /dev/null and b/images/parameters.jpg differ diff --git a/images/stalkcolor.png b/images/stalkcolor.png new file mode 100644 index 0000000..ecc6863 Binary files /dev/null and b/images/stalkcolor.png differ diff --git a/images/structure.png b/images/structure.png new file mode 100644 index 0000000..abc763a Binary files /dev/null and b/images/structure.png differ diff --git a/peacockFeather.hipnc b/peacockFeather.hipnc new file mode 100644 index 0000000..ae7f609 Binary files /dev/null and b/peacockFeather.hipnc differ diff --git a/radial_ramp_01.hdr b/radial_ramp_01.hdr new file mode 100644 index 0000000..12cc705 Binary files /dev/null and b/radial_ramp_01.hdr differ diff --git a/rendervid/v2.gif b/rendervid/v2.gif new file mode 100644 index 0000000..7eeab90 Binary files /dev/null and b/rendervid/v2.gif differ