Personal Projects
PolyMul
The Fast Fourier Transform (FFT) is used for a vast number of applications, and one of them is multiplying polynomials in O(nlogn) time.
When my Algorithms course covered this, we weren't tested or expected to know the workings of this algorithm, but I wanted to get a better understanding of how it worked.
Check it out!PicFilters
This project was created at a 24-hour hackathon as an extension of a class project along with someone I met during the hackathon.
I had been learning how to create a GUI in Java at the time, so I decided to apply it along with image processing algorithms I had learned in previous classes.
Check it out!
Sobel filter on Cal logo
Miscellaneous
Brainf__k Interpreter
A small interpreter I created while running across this esoteric language.
Inspiration from browsing HackerRank.
The interpreter can either take a file or load an interactive session.
Ford Fulkerson
I had just finished the semester and the algorithm was still fresh in my mind.
However, so far I had only worked it out on paper and not in code, so I implemented it.
Maze Generator
I was lazing around during break doing some programming practice on the side for interviews.
I made a small program that generates a small maze of any size
Also, I experimented with using it for a reddit bot.
Class Projects
Raytracer
Raytracing is a method used to render images by sending out rays from a camera testing for intersection with objects.
Information gathered from these rays give a (not as accurate) representation of how light interacts with materials.
Check it out!
Example generated image
Bezier Subdivision
Bezier subdivision is a method in which to represent a surface using many bezier curves which are combined to form bezier surfaces.
Uses OpenGL to make it interactive (can rotate, translate, zoom, and toggle features).
Check it out!
Bezier subdivision on a teapot
Inverse Kinematics
Given an arm and instructions on how to move it, it is easy to make it form a path. This is forward kinematics.
Given an arm and a path, it is not so easy to generate the instructions to make the arm follow the path. This is inverse kinematics.
Check it out!
An arm following a path
I am not a front-end developer and actively plan to never become one.
Yes, I realize that the content above is not responsive to your browser size, and sorry I don't want to fix it :P