Skip to content

ciiindyxuu/Procedural-Terrarium-Generator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 

Repository files navigation

CIS 5660 Final Project: Procedural Terrarium Generator

As the final project for my Procedural Computer Graphics course at Penn, I developed a SideFX Houdini Generator Tool that allows users to create variations of succulents and cacti using procedural modeling.

Table of Contents

Final Renders

Design Doc

Introduction

The motivation behind this project is to utilize the power of proceduralism to replicate naturally occurring phenomena from real-life flora! I was especially drawn to the concept of phyllotaxis, the phenomenon in botany where leaves or petals are arranged around a stem in a spiraling pattern. Phyllotactic patterns (Fibonacci sequences, Golden Ratio, etc.) can be observed in a variety of plant species, such as succulents, which result in beautiful and fascinating geometric patterns.

Succulents come in various shapes, sizes, colors, and arrangements, making them an interesting subject for procedural modeling. While there are endless types of succulents, for this project I will focus on the echeveria, a type of succulent known for its aesthetic, rosette-shaped design.

Goal

Through this project, I hope to accomplish the following:

  1. Develop a procedural modeling tool that generates different variations of succulents, enabling users the creative freedom to create a wide range of succulent species and designs.
  2. Continue developing my procedural modeling skills in Houdini, gaining hands-on experience with creating a user-friendly and intuitive tool for 3D artists
  3. Create beautiful and realistic final renders of terrariums, populated with succulents (and potentially other greenery like cacti if time permits) generated with my Houdini tool.

Inspiration and Reference Images:

There are endless variations of echeveria succulents which means tons of inspiration to draw from! Below are a few examples of different succulent shapes, colors, and arrangements:

Frame 3

I also found references to visualize what the final renders could look like. From ceramic pots to glass containers, I plan to draw direct inspiration from these photos when designing my terrariums.

inspo

Specification:

The main features of this project include:

  1. The procedural succulent generator allowing users to control multiple parameters
    • Parameters such as:
      • number of petals
      • roundness vs. pointiness of the petal tip
      • bend angle of the petals
      • width and length of petals
      • scale of the entire succulent
      • distribution of color
  2. Terrarium containers, both glass and ceramic versions modeled and textured in Houdini
  3. Polished final renders of terrariums with variations of succulents

Extra Credit Features:

  1. A procedural cacti generator allowing users to control multiple parameters:
    • Parameters such as:
      • scale of the cacti
      • amount of ridges
      • density of spines
      • length of spines
      • amount of twist
  2. Implementing procedural placement, allowing the user to randomly generate arrangements of the succulents

Techniques:

For this project, I anticipate using Houdini procedural modeling techniques learned throughout the semester and VEX. I have also collected some helpful tutorials, articles, and a paper:

Design:

CIS 5660 Final Project Diagram (1)

Timeline:

Week 1 (11/8 - 11/15):

  • Implement a working Houdini tool that can generate basic succulent geometry
    • Expose parameters for users to create custom succulents
    • If time permits, implement color control

Week 2 (11/16 - 11/27)

  • Continue to refine the succulent generator tool, adding color and tweaking the shape
  • Model different versions of the terrarium containers, including round glass containers and ceramic pots
  • If time permits, experiment with creating a cacti generator tool

Week 3 (11/28 - 12/5)

  • Create final renders
    • Generate different variations of succulents and manually place the succulents into the terrariums
    • Add some soil and/or rocks into the terrariums
    • Add lighting and apply materials

Milestone 2

Building the Succulent Generator

For Milestone 2, I created a working succulent generator that allows the user to adjust the petal's shape and depth using ramps as well as control other parameters such as petal count, petal bend, layers, width, length, and depth. Below are some examples of succulent models created using my generator:

Screenshot 2023-11-26 190938

One major challenge I faced when building the generator was implementing the "golden ratio" algorithm. I was able to generate points following a phyllotactic pattern using VEX I learned from this tutorial, but I had a lot of difficulty figuring out how to create a petal shape and attach it correctly to each point. With the deadline approaching, I had to pivot and change my strategy -- mainly using the skin node to craft the petals and revolving those petals around circles. While I'm disappointed I couldn't figure out how to implement phyllotaxis as I originally planned, I'm overall satisfied with the look of the current version!

My main goal for the next milestone is to tweak the generator to potentially add more controls for petal bending as well as implement color, which is crucial for creating a variety of visually interesting succulents. I want to try my hand at creating a cacti generator to go alongside the succulents, and I will be following this tutorial to build my ceramic pots with soil/pebbles.

Milestone 3

Succulent, Cacti, and Pot Generators

For Milestone 3, I created three different generators for building variations of succulents, cacti, and containers for the plants. As of the deadline, every generator is feature complete and I'm very happy with the overall look and user controls! Using my generator, I created some different succulents and cacti and arranged them into the composition below.

Succulent

After Milestone 2, I added more controls for petal bend, allowing petals to curl in on themselves and have more overall bend. I also used VOPs, mainly a color ramp and noise, to add color controls and a waxy-looking texture that appears on real-life succulents.

Cacti

Similarly to my succulent generator, I made my cacti generator mainly using a skin node and circles to form the base cacti mesh. I also created spines that got copied to points along the outer ridges of the cacti. The user can use ramps to adjust the cacti's and spines' shape and has access to a variety of different controls such as height, scale, twist, spine length, spine frequency, and more.

Pot

To make the pot generator, I followed this helpful YouTube tutorial. I modeled a pot and accompanying tray and created an adjustable layer of soil using a blast node and a mountain node to add some realistic variation. I also procedurally modeled an extra pebble/soil layer using a scatter node to get a series of points on the soil layer and copied spheres affected by a mountain node to the points.

Goals for the Future

Based on the feedback received from class, I see some potential ways to spruce up this tool and polish it further. Since there are so many different possibilities for the succulent petal shapes it can be hard to replicate the exact parameters used to create certain shapes. So, I'm also thinking of creating and saving some ramp presets to make a more efficient and artist-friendly tool. If time permits, I also want to tackle random generation, using a global seed to create random succulents, cacti, and overall compositions. If I can't get the randomization done in time, I will go with my original plan of manually placing my generated plants into nice, aesthetic compositions.

While I may not be able to fit these into the final submission, I am looking forward to further refining this tool in the future! :)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published