Screenshots of some of the computer graphics applications I have been working on, including GPU path tracing, photon mapping, procedural terrain generation and ray-casting, ambient occlusion, procedural texturing, acceleration data structures, physics simulations, voxel engines, and volume rendering. Guess which is which!
3D Shooter Game
A 3D shooter written in C++.
OpenGL was used for rendering, and DevIL for image loading. Everything else, from the math utility library to the loading and rendering of MD2 models, was written from scratch.
Except for the math library, this game was developed over the course of two weeks
Bubble Bobble Clone
A 2D game inspired by Bubble Bobble, developed with a classmate at uni.
The most notable feature is perhaps being able to go back in time, together with the relevant graphics effect and the transition between levels.
Scrolling Text LED Panel
The "yo dawg" meme scrolling on a LED matrix, developed with my friend Alejandro Fernandez at uni.
The most interesting part of this project was that we received no help regarding the use of the board. Given the board's schematics and our limited experience with electronics, we had to identify what pins to interact with to manipulate the LED matrix, and then develop the code that would animate the scrolling text.
Tricky Disco on Arduino
Myself playing tricky disco on an Arduino.
Using my limited musical skills, I found the notes used to play the tune, looked up their frequencies and mapped each of them to one of the buttons. An Arduino would then identify what button is being pressed and play the relevant frequency on the buzzer.
Engine Dyno Facility Software
Software for Faluga's Engine Dyno Facility.
The program lives in an Arduino inside the operator's panel and takes control of the engine to allow for fully automated performance tests.
All of the hardware in the operator panel was done by my father; I just wrote the brains.
ASM IRC Bot — An IRC bot written in x86 assembly for Linux.
Elf Overwriting Infector — An ELF (Executable and Linkable file format) overwriting infector.
Linux Keylogger — A simple keylogger for Linux.
ShellBlade — A tool for extracting shellcode.
Shellcode — A little shellcode library for x86 Linux.