Back

Portfolio

A collection of some projects I've worked on


PIVOT

Spring 2023

A mobile puzzle game in which the character platforms within a 2D cross section of a 3D world. Players have the ability to swipe and rotate the cross section in arbitrary angles around the character in real-time, which in turn alters the 2D platforming segment. I was the project lead of the team of 8 working on it, which included programmers, artists, UI/UX designers, and a composer.

I focused on the graphics work, which involved a deferred pipeline with 8 shader passes in C++ and OpenGL. The pipeline features 3D mesh rendering, 2D cut logic and culling, billboarding, point and ambient lighting, fog shading, animation, normal mapping, pixelate/ripple effects, and far more. My code was extremely efficient to allow the game to run in real-time despite the intensive re-computation of the physics world every rotation frame.

The game won the “Most Innovative” award during the end-of-semester showcase, and due to my graphics work I received the only A+ in the course of 96 students.

Windows Build, Mac Build (coming soon), iOS Testflight Link

Showcase Link

pivot gamepla demo

Vulkan Ray Tracer

Spring 2024

Integrated Vulkan ray tracing into an existing rasterization framework to enhance visual quality. Implemented acceleration structures, double buffering, texture/material/environment mapping, area illumination, and anti-aliasing. Completed as a means to foray into the world of low-level graphics APIs, which I found to be very rewarding.

Source Code

demo vulkan image

Symbiosis

Spring 2022

A 2D puzzle-platformer game created by a team of 8 for desktop computers. I focused mainly on the graphics work by creating a custom deferred shading pipeline using LibGDX's OpenGL integration. The pipeline included lighting, normal mapping, parallax, smooth camera movement, and additional shader passes for special effects. Other than graphics work, I worked on level design, code architecture, playtesting, game concepts, and much more.

Showcase + Download Link


Large-Scale Particle Simulation

Spring 2023

A simulation capable of running 200,000 particles at over 60fps. Features include 3D collision optimized via spatial subdivision, dynamic particle regeneration, and textures dictating color, mass, and acceleration fields. The user is able to “draw” on the simulation, creating a current in the acceleration field, and is able to move the camera freely. Inspired by Refik Anadol: Unsupervised, this project is meant to deliver an aesthetically pleasing and interactive user experience. This was written using Taichi and was worked on with a group of four.

Presentation Slides

Source Code (currently only available to members of the Cornell community)

particles 1 particles 2

Monte Carlo Path Tracing

Spring 2022

A real time CPU-based path tracer using Embree combined with a rasterizer using OpenGL. Computes illumination from area and environment lights using microfacet materials and Monte Carlo techniques. Uses a deferred pipeline to achieve shadow mapping, SSAO, and a bloom filter with a sun-sky model. A forward pipeline is used to support skeletal animation. The application uses assimp to parse .obj and .glb files, and renders them at interactive rates.

Source Code (currently only available to members of the Cornell community)

stanford bunny staircase demo tree demo

Steam Game Rating Prediction

Spring 2022

A tool for game developers that can predict the rating their game will receive on Steam based on a subset of features of their game. Web scraping was used to obtain the training data, and the subset of features was selected by measuring feature importance on this. This project also utilized SMOTE, sentiment analysis, a GUI, and a collection of machine learning algorithms (of which Random Forest performed best at a 56% precision).

Presentation Slides

Source Code (currently only available to members of the Cornell community)

presentation slide

Ground-Up Ray Tracing

Winter 2022

An implementation of a CPU-based ray tracer in C++ using SFML to display the image. The user is able to select from several different presets to render in any resolution. The ray tracer uses perspective cameras, ray-sphere and ray-triangle intersection, the Blinn-Phong model, shadows, and mirror reflection.

Download Link

Source Code

three spheres two spheres six rainbow spheres

Procedural Terrain Generation

Fall 2021

A procedurally generated landscape visualized using the Marching Cubes algorithm in Unity. Terrain generates using several octaves of simplex noise, with its output modifying the ground’s height. Compute Shader code executes the Marching Cubes algorithm on the terrain and represents it with a mesh object. Additional features include chunking of terrain, proximal generation of chunks around the usable camera, and building/destroying terrain. This was my final project for Computer Graphics that was completed with two peers.

Download Link

Source Code (currently only available to members of the Cornell community)

terrain with marching cubes

This Website

Summer 2021

A simple website which I coded from scratch in HTML+CSS to showcase myself and interesting things that I've worked on. I bought the domain at Google Domains and hosted it on GitHub.

Source Code


COVID-19 Hospitalizations Prediction for EU Countries

Spring 2021

A prediction of future COVID-19 hospitalizations given a dataset of EU country-level cases by age group and current hospitalizations. The first part of the project predicts whether hospitalizations would increase or decrease a week from each date (with an accuracy of 70%), and the second part predicts how many hospitalizations would occur. Other features include custom training/validation data splitting, preprocessing, and multiple training algorithms. This was my final project for Machine Learning that I worked on with another student. The code was written in Python using sklearn, numpy, pandas, and the report was generated in Jupyter Notebook.

Source Code (currently only available to members of the Cornell community)


Game of Go

Spring 2021

A fully playable game of Go that features territory calculation, handicap, variable board sizes, and an ELO ranking system. This was my final project for Data Structures and Functional Programming that I worked on with three others. The code written in OCaml (mainly using its functional features), and it can be run in Ubuntu using a remote SSH.

Source Code (currently only available to members of the Cornell community)

go console

3D Model of the ΦΔΘ NY Alpha Chapter House

Spring 2021

A model done in SketchUp of my fraternity house at Cornell. This was my final project for Intro to CADD.

model preview

Simon Says

Spring 2021

A playable game of Simon Says on a development board. Rather than pressing colored buttons to match the sequence like in the original Simon Says, the board must be tilted in the corresponding directions (this was done using the built-in accelerometer). The code was written in C in MCUXpresso IDE to be uploaded onto a FRDM-KL25Z board. This was my final project for Embedded Systems that I worked on with another student.

Project Website

game being played

Weighted ETF Analysis

Winter 2021

A tool that analyzes the risk (covariance) and reward (expected return) of ETFs. The user is able to plug in any amount of ETFs from what our dataset provides; once selected, a risk vs. reward graph is shown depicting every possible portfolio between the ETFs. From there, the user is able to input a desired risk, and the optimal portfolio at the closest risk is outputted. This project is meant to visually depict the efficient frontier, of which I developed a fast algorithm to determine. This project was completed with two other peers, and was written in C++.

Source Code


Space Protector

Summer 2020

An asteroids-like video game that I coded from scratch the summer after I took Intro to Computing. Features include mouse control, polar/cartesian mathematics, increasing difficulty, and spritework. This was coded in Python using pygame.

Source Code

space protector game

The Cavern

Spring 2016

A mod I created for Call of Duty: World at War's zombies mode. Created during my freshman year of high school, I consider it to be my first 3D modelling + game design project. It has received over 5000 downloads and multiple YouTube playthroughs.

Download Page

cavern image