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 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.
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.