Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HW2 - Jellyfish #26

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
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
90 changes: 27 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,44 @@
# Procedural Jellyfish
# Procedural Jellyfish Project

## Project Overview
In this homework, you'll create a procedural jellyfish using Houdini. This will give you a chance to dig into procedural modeling, as well as some simulation. Here is a breakdown of the different jellyfish parts you'll be putting together:
Note: I used a late day on this! Also, I do not see a place to submit my Houdini files on Canvas, so I just updated my README and made a PR.

<img height="500" alt="Jellyfish Parts" src="/assets/JellyfishParts.png">

---

Here are some SideFX docs that you might find helpful:

[Geometry Nodes Documentation](https://www.sidefx.com/docs/houdini/nodes/sop/index.html)

[VEX Documentation](https://www.sidefx.com/docs/houdini/vex/functions/index.html)

## Bell and Arms
Follow along to the videos to create the bell and arms of the jellyfish. Although I provide the values I used to create my jellyfish, you're heavily encouraged to play around and customize the setup to your liking!

[Jellyfish Bell Setup Video](https://www.youtube.com/watch?v=J3X8BB0yNRE)

[Jellyfish Arms Setup Video](https://www.youtube.com/watch?v=A_oNXqx8XH4)

## Veins
In order to create the veins for the jellyfish, you'll make use of the "Find Shortest Path" node. The Dungeon Corridor example in the Houdini Playground is a helpful reference for using this node. Here is some rough guidance for how to approach making the veins:
## Procedural Jellyfish Project
In this project, I set out to create a procedural jellyfish using Houdini! I learned so much about procedural graphpics and Houdini through this process and am excited to create more exciting works in the future! I ended up having a lot of technical issues with my computer crashing and Houdini refusing to launch, but hopefully with more practice I'll be able to get through these hurdles faster too :)

Remesh the jellyfish into triangles (otherwise you'll end up with very square looking veins)
The finished product:

<img width="300" alt="Remesh" src="/assets/Remesh.png">
<img width="300" alt="Final Jellyfish" src="/assets/Final.mp4">

Use the shortest path node to generate veins ([here](https://www.sidefx.com/docs/houdini/nodes/sop/findshortestpath.html) are the docs for the Find Shortest Path node)
[Google Drive video link](https://drive.google.com/file/d/1hY8OcFfnATgumvt7NZdxIK_choXAFDTW/view?usp=drive_link)

<img width="300" alt="ShortestPath" src="/assets/ShortestPath.png">
Now let's dive into how I did it!
My jellyfish has 5 major components:
- Bell
- Arms
- Veins
- Organs
- Tentacles

Smooth out the veins for a more organic look. You might find yourself needing the "resample" and "fuse" nodes in addition to the "smooth" node (and remember, the [docs](https://www.sidefx.com/docs/houdini/nodes/sop/index.html) are a great resource if you're confused about what a node does or how to use it)

<img width="300" alt="ResampleFuseSmooth" src="/assets/ResampleFuseSmooth.png">
<img height="500" alt="Jellyfish Parts" src="/assets/JellyfishParts.png">

Use a "sweep" node to give the veins width
---

<img width="300" alt="Sweep" src="/assets/Sweep.png">
## Bell
The first part I decided to tackle was the bell of the jellyfish. To do this, the first step was to create a line. Then, we use Bend nodes to bend the overall line, and then separately bend the tip to create a curve. After aligning the curve properly with the y-axis, we use a revolve node and adjust the settings to create the bell shape. I added a gradient to my bell using the attribute adjust color node.

Lastly, stick the veins to the bell's animation using the "Point Deform" node that we used on the arms. The final result should look something like this:
## Arms
For the arms, I started out with a grid node and applied a VEX script to use noise and point manipulation to add ruffles. Then, I used the twist node to add a more interesting shape, and some Vellum nodes to add some movement.

<img width="300" alt="VeinsGif" src="/assets/VeinsGif.gif">
## Veins
In order to create the veins for the jellyfish, I used the "Find Shortest Path" node.
I remeshed the jellyfish into triangles to create more organic-looking paths. I also used the resample function for additional smoothing, and the sweep node to add some depth to the veins. Then, I pinned the veins to the bell's animation using the "Point Deform" node similarly to the arms.

## Organs
Next, create organs for your jellyfish. You can approach this any way you'd like! The final result should look something like this:

<img width="300" alt="Organs" src="/assets/Organs.png">
Next, I created the jellyfish organs by starting with a line, bending, and revolving it around an axis similary to the way I created the Bell. I added a mountain node to create a more lumpy, organic look.


## Tentacles
When you're working on Houdini projects in the future, you usually won't be able to find tutorials for exactly what you're trying to do. Instead, you'll need to be able to take semi-related tutorials and apply the relevant techniques to your projects. This exercise is designed to give you some experience with that.

Your goal is to create tentacles that look like this for your jellyfish:

<img width="300" alt="TentaclesGif" src="/assets/TentaclesGif.gif">

[This video](https://www.youtube.com/watch?v=LN4XXaHQkmU) demonstrates how to simulate hairs to create renders like this:

<img width="300" alt="HairRender3" src="/assets/HairRender1.png">
<img width="300" alt="HairRender2" src="/assets/HairRender2.png">
<img width="300" alt="HairRender1" src="/assets/HairRender3.png">

Your task is to watch the video and extract the applicable information to make the tentacles! (also, just a heads up, the second half of the tutorial is all irrelevant rendering stuff in C4D, so you only need to watch the first 12 minutes or so).
Next, I created some very fine, hair-like tentacles to float around the perimeter of the Jellyfish. I used a grouping node to select only the bottom rim of the Bell, where I wanted to attach the hairs. I then used the Vellum hair node, and the point deform node (similarly to the Arms) to copy the main animation. I lowered the gravity in the Forces tab of the Vellum Solver to create an underwater effect as well.

## (Optional) Extra Credit
- Add another part to your jellyfish. This can be something real (ex: crown jellyfish and lions mane jellyfish have some pretty crazy features that might be fun to recreate) or whatever zany alien jellyfish addition you can imagine!
- Refine one of the existing parts (ex: adding scalloped edges and dents/puckering to the bell of the jellyfish)
- Render your jellyfish (a good place to start is watching [part 4](https://www.youtube.com/watch?v=1Ph-7ZpN5oY) and [part 5](https://www.youtube.com/watch?v=mCQPDf-bupY) of Entagma's Houdini in 5 Minutes series where they briefly cover rendering basics
- Add some flair to your scene by adding a background (ex: coral or rock formations)
## Submission
- Fork this repository
- Update your README
- Please delete the assignment README text
- A description of your project
- A video of your animated jellyfish ([video](https://www.youtube.com/watch?v=gXtDd1lPDmc) of how to save a video of your viewport out of Houdini)
- Create a pull request to this repository
- Submit your Houdini file to Canvas along with a link to your pull request
(Don't upload your houdini files to github -- it's a pain to upload big/binary files. Just canvas is fine!)
## Extra Credit
- I added some lighting and an image background, and attempted to render my final project. However, my computer struggled to finish the render before crashing.
Binary file added assets/Final.mp4
Binary file not shown.