Here are a some projects which I have done in the past for which I am pretty proud of. These projects were either done for fun and curiosity, or during my time as a student.

Hybrid Images

I became interested in hybrid images after reading Oliva et. al's 2006 paper on hybrid images. I decided to implement the algorithm my own and try it on a few images. The project was very fun and I was able to generate a few amusing pictures from it.

I used Python 3 and OpenCV Python bindings to do most of the image processing work. The goal of this project was to study the algorithms involved in creating hybrid images, and seeing how images behaved in the frequency domain when specific filters were applied onto them.

Marching Squares in ReactJS

Video Demo


This demonstrates Marching Squares, a graphics algorithm using ReactJS. This is another school project done during my graduate studies at the University of Illinois.

The main purpose of the project was to communicate how we can use modern web development techniques to create enriching teaching and learning experiences.

Overall, the feedback for this demo was very positive by Professors, and TAs. It was agreed that this project would definitely be a useful tool for teaching the Marching Squares algorithm.

Abstract preview: Web frameworks in the modern day have made it accessible to create many appealing visualizations to communicate narratives to readers. With modern web development, we not only can tell narratives, but develop teaching tools to initiate engaging practical examples to convey theoretical concepts. This paper discusses an implementation of the Marching Squares algorithm at a conceptual level and shows a practical approach using HTML5 and ReactJS.

Computer Power and Efficiency Through the Years

This was a project I had done in a graduate-level course in Data Visualization at the University of Illinois. It tells the narrative in consumer CPUs becoming more powerful, yet more power efficient over time.

This narrative visualization has a few interactive charts which communicate the efficiency of CPUs over time. The user can step through an interactive slide show, building up a line chart to track progress in the industry up until that point in time.

Floyd-Steinberg Dithering

This script was written in JavaScript using Jimp to demonstrate Floyd-Steinberg dithering. This was done as a hobby project to scratch an itch with doing something with image processing. Coupled with some nostalgia in growing up not having very powerful computers, I briefly missed the good old days of viewing images at reduced colors. 😂

In this specific script, given any input image, there will be an output image created using Floyd-Steinberg dithering to reduce the number of colors to just 8 colors.

Shaded Teapot in WebGL

Cubic B-Spline Demo

I created this project to help teach myself cubic B-spline curves. Since this is not an easy topic to understand, I made an interactive demo to help visualize the computations better.