C++

  • Point Clouds to Geometry

    Construct mesh from point cloud by computing implicit MLS function with marching cubes algorithm. The Algorithm is as follows: More Detailed Breakdown coming soon! Algorithm in Images: Experimentation with Grid Sampling Size

  • Drag & Deform Meshes

    Interactively deform 3D models by dragging user-set handles. Multi-resolution surface parameterization, deformed using naive Laplacian editing. Implements two approaches to mesh deformation: The above GIF shows real-time mesh interaction. Deformation Breakdown (More Implementation Details Coming Soon!)

  • Skinning & Skeletal Animation

    Experimentation with different methods for skinning and skeletal deformation. Skeletal Animation Computing Hamonic Skinning Weights on Selected Handles Handle Selection Skinning Weights Visualization Skeletal Animation Comparison of Animation Methods Linear Blend Skinning LBS propagates transformations using absolute translation and rotations. This method does not pay attention to rotation properties, particularly at the joints where…

  • 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…

  • 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…