I wrote my raytracer as a part of my CS488 Graphics course. It’s pretty straight-forward: single-threaded, non-AA non-accelerated raytracer. It renders polygons and spheres.
My work-in-progress compiler. So far I have a working SLR(1) parser for any BNF grammar and a simple lexer. Github code here.
I sponsored and did quite a bit of work to help with my brother’s quadcopter when he was back in highschool. Here’s the code Github page.
Fooling around with wavelet-like transforms. I would like something that has both a high frequency resolution & bandwidth along with a high temporal resolution for high frequencies. By comparison, regular (non-windowed) FFT transforms the entire signal, with no temporal axis. A windowed FFT has a temporal resolution of SIG_LENGTH / WINDOW_LENGTH. A STFT transform (FFT with sliding window) is better, but its temporal resolution is still low-frequency. My transform is inspired by the way ears work, as I believe that is a better space for what I am trying to achieve. Constant Q transforms / Morlet wavelet transform solve this problem on some level as well.
The top picture is the transform of the signal in the bottom picture (two sines added together).
An implementation of Phong shading. Video here.
This is from back when I was in highschool. It was my entry for JayIsGames’s very first CGDC competition. It’s just one level. Try out the game here.
As part of ECE354, each student grouped up into a team and wrote a RTOS for the Motorola 68000 CPU / Coldfire board. The first two weeks of my team’s work was getting GDB working on the board. Check it out here. It also works with the CPU emulator.
I wanted to make the closed-loop response of my quadcopter faster (AHRS to ESC path). I got a Teensy 2.0 to read serial from AHRS, send PWM to the ESCs, and read USB from the motherboard for direction info. I only got as far as making a blinking LED and interfacing with x86 through raw USB. See projects here and here.