yuhan

  • Will-o’-the-Wisp Shader

    Inspired by the Will-o’-the-Wisps from Brave, I created my own wisp using procedural noise tools in WebGL and Javascript. Check out my live demo HERE and my source code HERE. Breakdown WebGL Vertex and Fragment Shaders Creating the Wisp Wisp Body Wisp Arms Surrounding Effects and Interactivity

  • Scene Graph

    This Red Jay Scene Graph was my first introduction to advanced concepts in C++, including inheritance and polymorphism, as well as graphics and UI tool-building. Leveraging linear algebra transformation sequences, I created a tree data structure wherein each node contains a transformation matrix, and child nodes inherit the transformations of their parent nodes. The result…

  • Ceramic Generator Tool & Tea Simulation

    Ceramic Tool After visiting the Delft Blue ceramic factory in the Netherlands, I was inspired by the art and craftsmanship behind the many types of pottery that the factory hand-produces. This Houdini tool allows an artist to create and customize their own ceramics. The artist can generate and structurally manipulate vases, teapots, bowls, cups,…

  • Procedural City

    An ambitious and creative project born from design and development club Penn Spark, Procedural City was my introduction to proceduralism, Houdini, and large-scale collaboration. Our team of nine brought a medieval coastal town to life by combining smaller procedural projects in Houdini, Adobe Substance Painter, Maya and MEL. I was responsible for the Boat…

  • Fourier Drawing Tool

    Artist’s Horse Sketch Goal: Convey artists’ dynamic drawing process. I.e. blocking, sketching, refining. I’ve always loved drawing horses for their beautiful movement and figure. I’ve also been fascinated with the artistic drawing process, in which an artist begins by placing a rough sketch before refining and detailing. Thus, using my Fourier Drawing Tool (explained…

  • Frogger Arcade Game

    Java recreation of classic 1981 arcade game “Frogger.” I coded the game using Java in IntelliJ and painted the assets were drawn in Photoshop. Java Swing was used to build the GUI. The object of the game is to use the arrow keys to move three frogs, one at a time, from the bottom…

  • GLSL Shader Program

    GLSL Shader Program

    C++ Program that implements various fun vertex and fragment shaders to apply mesh coloration and post-process effects.

  • Rasterizer and Camera

    Rasterizer for drawing scenes composed of 2D and 3D polygons. Supports perspective projection, obj/json loading, translation/rotation transformations, normal/texture interpolation.

  • Micro Maya

    Micro Maya

    Summary: Micro Maya is a mesh editor application created using C++ and OpenGL in Qt Creator. Meshes are loaded in as OBJ files, stored in half-edge data structures from interlinked pointers, and visualized using OpenGL vertex buffers. Vertices, edges, and faces can be highlighted and manipulated using the UI. Mesh topology operations include adding…

  • Pandora’s Blocks

    With floating islands, wispy plants, otherworldly trees, and breathtaking skies, Mini Minecraft is an interactive 3D world exploration and alteration program in the style of the popular computer game Minecraft, created from scratch in C++ in collaboration between three students over the course of five weeks. We took style and aesthetic inspiration from Avatar’s…