Canvas!

At UF I took a graduate level computer graphics course. There I learned some of the mathematical underpinnings of 3D rendering such as matrix transforms, Bézier curves, surfaces, and quaternions. The best part was that we applied all of these concepts and so much more using C++ and OpenGL 3.3.

I made a demoscene-like production synced to music using Three.js for rendering and GNU Rocket for keyframing. All of this took place over 36 hours during SwampHacks 2017. The final result leaves much to be desired but it was a great learning experience.

A 3D asteroid dodger that utilizes the LeapMotion API for input. It’s written completely in JavaScript using the Three.js framework. Created for KnightHacks 2016 by myself, Christopher Pirillo, and Adam Levy. It won 3rd place!

A fractal zoomer I built using SDL. It has support for dynamically increasing the fractal iterations and support for multisampled anti-aliasing.

Following the IO ARM contest, I put my new Verilog skills to the test and ported FreeFull’s ARM entry to a BASYS 2 FPGA. I wrote a VGA controller to drive an old monitor and created a state machine to feed it pixel data in real-time. The writeup contains details on the process and the final Verilog code.

A quick SDL application that I wrote to generate a Sierpinski Triangle using the Chaos Game.

To get more coding experience with low-level graphical primitives, such as line drawing, gradients, and flood filling, I implemented them myself.

I created a 564 byte ARMv7 graphics demo in assembly for the IO SmashTheStack contest. My demo animated a bouncing pixel similarly to the old DVD screensaver, which created an interesting effect. To run it yourself, follow the instructions on the contest link and download the binary.