Some of my hobby, work and university projects.








Window Systems / Graphics / System Programming



Winnie (libwinnie): a framebuffer window system

Winnie is a framebuffer window system I write for fun and to familiarize myself with the concepts of device handling, event management, window management, memory management etc on Linux. Winnie can handle the mouse and keyboard events (/dev/psaux, /dev/tty) and render to the Linux framebuffer device (/dev/fb0). It has a minimal window manager that can handle the frames using reparenting. (Linux)More...


Gliar (libgliar)

Libgliar is a library that can fake the OpenGL context information returned by most glGet methods. It can be used to debug OpenGL applications. (Linux) More...





3D Graphics algorithms, hobby projects and apps



Sdrviewer

A minimal pixel shader viewer that can instantly show the changes made in a pixel shader. (Linux) More...


Hair simulation using a mass-spring system

A mass-spring based system to simulate mohawk-like hair. (Linux) More...


3D texture-based volume rendering: a CT scan viewer

3D texture based volume rendering of 2D computed tomography slices. It uses a sigmoid-based transfer function. (Linux) More...


3D graphics algorithms: Clouds and Bumps for Stellarium (a PC planetarium)

As part of the ESA Summer of Code in Space, I added shaders and multitexturing support on Stellarium (a planetarium for pc) and I used normal mapping and procedural clouds (Perlin noise) to improve the Stellarium planet rendering. (Linux, Windows, Mac OS X) More...



A CPU Path Tracer

A path tracer that can load complex scenes (with quad and triangle meshes) and perform global illumination using both area and point lights. Software rendering. (Linux, Windows, Mac OS X) More...



A CPU Ray Tracer

A ray tracer that can render spheres and sphereflakes. Software rendering. (Linux, Windows, Mac OS X) More...




Computer graphics experiments (Uni assignments and/or hobby projects)

Computer Graphics experiments i.e. hierarchical body animation using trigonometric functions, visual effects with particle systems (smoke, fire, fireworks). (Linux, Windows, Mac OS X) More...





Computer Vision, Motion Tracking, Augmented Reality apps and experiments



VKeyb: A motion driven virtual keyboard application

Vkeyb is an optical flow driven keyboard for Linux that allows the user to type by moving his body in front of a web camera. More...



Computer vision and image processing research projects and MSc assignments.

Some Computer Vision and Image Processing projects like Optical Character Recognition (OCR), Head detection on Kinect depth frames, Snakes, Medical Imaging et c... (Linux, Windows, Mac OS X) More...



A team project for the CAVE environment: Virtual Anatomy Class

A virtual course for the CAVE environment. Team project, XVR. (Windows) More...


An augmented reality game: AR Snakeball

This is a small program, similar to the snakeball game. It can be "played" using a webcam and a flashlight. The player collects virtual balls that appear on a window in random positions using a flashlight. (Linux, Windows, Mac OS X) More...


Kinect helloworld: Invisible

A quick hack for kinect to play with libfreenect on linux. The texture is distorted using a GLSL shader and takes the shape and depth of my silhouette. (the idea comes from this video: https://www.youtube.com/watch?v=Z4nYmivmXGw) Code: here






Other hacks



A system to reject phone calls from my laptop

A system we devised and set up at home for me to be able to reject annoying phone calls from my laptop. I used it More...


DTMS ("Don't touch my screen!")

DTMS is a short program that shouts "Don't touch my screen bro!" whenever someone touches my screen and leaves a fingerprint on it. More...


Electronics experiments: an infrared receiver

An infrared receiver circuit to remote control programs with lirc support such as mplayer. (Linux) More...


☃☃☃☃☃☃ A small experimental kernel module

My one and only kernel experiment. More...





Visual effects for Ubuntu



Extracts from my code for Ubuntu

Screenshots and videos from random graphics assignments for the Ubuntu Desktop during my years @Canonical. More...



Igalia



Code for Igalia

Code I write at work or to have fun with the code I've written at work... More...