Physics Based Simulation:
Cloth, Rubber, Jell-o
A physically based animation simulation using Material-Point-Method and implicit / explicit Euler integration. Jell-o simulation is created using MPM in Taichi, and cloth mesh / volumetric 3D bunny model animation is simulated with Mass-Spring Euler integration in C++.

Various Shaders with OpenGL
A program with different vertex and fragment shaders to apply different coloration / deformation effects to the surfaces of 3D models, including Sobel, Gaussian Blur, Worley Warp, etc.

Real-Time Approx. of Physically-Based Effects
Series of scenes with Physically-Based effects (Post-Processed Depth of Field, Subsurface Scattering Approx., Penumbra Shadow, etc.) using concepts of noise functions, raymarching, SDFs, and lighting.

Easy-OS
A basic UNIX-like operating system designed to operate as a guest OS within a single process on a host OS. It includes fundamental OS features, including priority job scheduler, foreground / background, synchronous child waiting, redirection, etc.

FistBump:
Social Network Web App
A Facebook-like web application, which supports user accounts, profiles, friend recommendations, and chatting service. It was developed focusing on utilizing cloud computing technologies to build a scalable application.
Monte Carlo Path Tracer +
Photon Mapper
A path tracer with global illumination effect using Monte Carlo estimation with multiple importance sampling. It supports various surface materials, light sources, and constructive solid geometries.

3D Scene Reconstructor:
Multi-View Stereo Algorithm
A project that utilizes two-view stereo and multi-view stereo algorithms to convert multiple 2D viewpoints into a 3D reconstruction of the scene.

Rasterizer
A simple rasterizer with a perspective projection camera, built from scratch in C++, that can draw scenes composed of 2D and 3D polygons.

Road Runner:
Errand Service Application
An errand service platform that connects students with school peers to ask for or do errands and create a tighter community. It allows the users to set errand details, such as time, importance, area etc. and chat with matched peers.

