Some of my hobby/work/past university assignments' projects.



Quicklists:

Animated GIFs and Screenshots: Imgur collection
Videos: YouTube playlist





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.



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



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



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





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