PortfolioHere 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.
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.
- Discussion - https://rogerngo.com/article/20201222_hybrid_images
Marching Squares in ReactJS
- Demo - https://urbanspr1nter.github.io/marchingsquares
- Code - https://github.com/urbanspr1nter/marching-squares
- Paper - PDF Document
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.
- Discussion - https://rogerngo.com/article/20200314_floyd_steinberg_dithering
- Code - https://github.com/urbanspr1nter/floyd-steinberg
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
- Discussion - https://rogerngo.com/article/20200418_shaded_teapot
- Demo - Demo
Cubic B-Spline Demo
- Discussion - https://rogerngo.com/article/20200522_b_splines