Winnie: a framebuffer window system

A few weeks ago, I started a minimal window system, which performs software rendering on the linux /dev/fb0. My aim was to learn some systems programming and familiarize myself with concepts like event and device handling, memory management, window management, drawing on the framebuffer, IPC mechanisms etc (and certainly not to create a full linux window system! :)p) I call the program winnie and the code is available on github here: https://github.com/hikiko/winnie/tree/winnie.clients-as-plugins, https://github.com/hikiko/winnie and lp.

The program is not finished yet and I don’t know if I ever finish it, since I came up with new project ideas again.. Nevertheless, you can see some videos of the development stages below if you are interested (most recent first):

Continue reading Winnie: a framebuffer window system

A virtual keyboard

Some days ago I came up with the idea of a keyboard that can be used without having to type the letters. The user just stands in front of a camera and scrolls the letters by moving his head or hands to the appropriate direction…

And here it is:

Continue reading A virtual keyboard

Augmented reality snakeball game

A very simplistic snakeball game (not yet complete) I made for fun using C++, OpenGL and OpenCV 🙂

In the video I use a flashlight to move the cursor and collect the balls that appear at random positions. I track the flashlight by locating the largest and brightest blob on each frame and calculating the center of its bounding rectangle.

Hierarchical animation using trigonometric functions.

This is my first OpenGL project: Bob. (a lego-like robot). It’s made by transformed cubes and it is animated using hierarchical body animation with trigonometric functions.

Video:

and screenshots from early stages:

Early stage robot
robot parts

Bob-robots running on a wooden floor
LEGOs on the floor

 

Virtual Anatomy Class

Group project for a Virtual Environments MSc course: an anatomy class

The users (supposed to be students) can move around in the class and inspect a virtual skeleton. During the virtual course they can scatter, grab and move the skeleton bones around and try to combine them correctly. The program is written in XVR scripting language. For the scene and the objects 3d studio was used and the skeleton model was taken from www.turbosquid.com.

Here are some shots of the application running on pc:

The skeleton is complete.
Welcome to the class!

Continue reading Virtual Anatomy Class

Ray tracer using axis aligned bounding boxes!

The first ray tracer I wrote (in C++, using SDL to display the pixels). Screenshots:

ray tracer with shadows
Step 1:  Shadows
Shadows and reflections.
Step 2: Shadows and reflections.
Step 3: Shadows. reflections and a sphereflake.

Code:  svn://quasar.dnsalias.com/eleni/ray_tracer