Projects

Computer Graphics

Screenshots of some of the computer graphics applications I have been working on, including GPU path tracing, procedural terrain generation and ray-casting, ambient occlusion, procedural texturing, acceleration data structures, physics simulations, voxel engines, and volume rendering. Guess which is which!

Games

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.

Embedded

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.

Hacking

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.