logo
3D Graphics
Personal Project Showcases from Graphics Courses at Stanford | March 2022

In my senior year, I took two core Graphics courses at Stanford that had me learn core CS graphics concepts. As part of the courses, I got introduced to 3D Modelling in Blender, and Animation and Simulation in Houdini. This page features some of the assets I made for my projects.

Modelling
Learning 3D Modelling in Blender
CS148 Final Project
CS148 Final Project

For my final project in CS148, the goal was to create a hybrid stylized-realistic image that draws inspiration from the world of the Last of Us Part II, one of my favorite videogames. I wanted to combine a bunch of different motifs from the game’s story into a natural ocean-view image that conveyed a haunting tone.

Modelling Process

Boat: I modelled the boat from scratch using Polygon Modelling. I carved out the initial shape of the boat from a plane and then used subdivision to flesh out a smoother shape. I also used a NURBS path to carve out the boat hanger for the lantern and used a Bezier circle to create a surface around the hanger path. I applied a Wood texture to the boat and hanger to finish it off.

Lantern: I modelled the lantern from scratch using Polygon Modelling. I placed vertices halfway along the path of a top-down lantern reference image and then used screw modifiers to bring out the shape of the lantern sections. For the handles, I used NURBS paths again. I applied 3rd party Metal textures to the body of the lantern with some custom modifications. For the actual lamp, I used an emission shader in conjunction with a point light to create the actual light source.

Guitar: I downloaded the guitar model from an online source. I UV unwrapped the object myself and matched it to a reference image of an acoustic guitar to create its final appearance.

Ocean: The ocean was created from scratch. It is a plane with an Ocean modifier added to it. Waves properties were tweaked to generate the current look. Finally, for presenting a realistic water appearance, the base color and displacement of the water material are further tweaked with a 3rd party Foam texture. I found this was needed to more accurately model the color, reflection and transmission of the waves. If I had more time, I would have workshopped the water shader some more so that it appears more translucent and less muddy. I would've also fixed some of the inconsistent patches in the water, which I think were caused by the combination of my water shader with Blender's waves modifier.

Sky Dome: The Sky Dome material is procedurally created from scratch. A Noise Texture node was used in conjunction with a ColorRamp to create the stars texture in the sky. A Gradient Texture was used to map the bottom glow of the night blue sky that fades as we go up. The Moon object is a PNG image of a moon imported as a plane and then stuck on to the Sky Dome semi-sphere. The moon’s color, alpha and emission (which acts as the moon light) are also drawn from this image and tweaked appropriately. In order to create a glow around the moon, another gradient texture was placed behind the moon object with some RGBCurves scaling to give the appearance of a glow. Lastly, another series of Noise texture and ColorRamp nodes were used to model the cloud texture in the sky. All of these components were merged together using ColorMix nodes to create the final night sky dome.

Ferris Wheel: The Ferris Wheel model was downloaded from an online source. I added the same base metal texture that I used for the lantern to the entire object. Then, I added a number of emission shaders to different parts of the Ferris Wheel’s lights, from the circle light to the various plank lights, to create the neon-lit look Ferris Wheels have. These shaders also contribute to the lighting of the scene and their light is reflected on the ocean surface.

City Skyline (Buildings): Most of the buildings are modelled from scratch using a cube with some adjustments. Some additional ones were found online and added for variety. I found a Skyscraper material online that is applied to every building to create the random lit window appearance.

Final Render

The final image was rendered in Blender's Cycles. I also used some volumetric absorption (light fog for the city and distant ocean), motion blur (for the Ferris Wheel movement) and denoising (NLM) to achieve the final look.

Animation
Keyframe & Procedural Animation in Houdini
Clock
Sleeping City
Simulation
Simulating gravity, wind and rainfall with built-in and custom solvers
Bowling Alley
Lego Character FX
Stormy Night