A couple of days ago, I finally got a notice that my Diplom Thesis has been graded and that I could fetch my Diplom. So I went and did that and I’m very pleased with the result.
I now am a Diplom-Informatiker or – shorter – a Dipl.-Inf. That degree is roughly equivalent to an M. Sc. in Computer Science.
Building on the algorithms I’ve implemented as part of my Diplom Thesis, I’ve now implemented a demo of a 3D view on the Nokia N900. The idea is to adjust the camera through which the 3D scene is viewed to the user’s head position. The screen then appears to be a window into the virtual world.
The 3D scene is easily constructed on the N900 using OpenGL ES 2.0. A small box and a few foreground objects are sufficient. In order to determine the head position I use the face detection and tracking code I’ve recently implemented (and already used for a little tech demo). The two things are easily put together and the result is this:
The most difficult thing is to get the perspective right as there is a lot of conflicting information out there. Johnny Lee used the Direct3D function PerspectiveOffCenterLH, which is obviously not available in OpenGL. The best hint I found is here. There projection matrix M should look like this:
Where n is the distance to the near clipping plane, f the distance to the far clipping plane, t and b define the horizontal clipping planes, l and r define the vertical clipping planes.
I think the effect is pretty cool and I’m currently contemplating making a game with it.
These last months I’ve been working on my Diplom Thesis and now it’s slowly coming to an end. The topic of my thesis is Face Detection and Tracking for Computer Games on Mobile Devices. I started out working on the Nintendo DSi, but then had to change to the Nokia N900 because the company I worked at went insolvent.
I’ve implemented two different face detection systems on the Nokia N900 of which one works pretty well. On top of that I’ve created a very simple game – a technology demo – that uses the player’s head position as the input. The game is called BurgerFace and looks like this:
BurgerFace Screenshot
The goal is to pick up the burgers that increase the score and dodge the knives that cost lives. I’ve also created a video that shows the game in action:
Now I need to evaluate how well this input method works and if it’s fun. For that, I need your help. I’ve put the game online. Download it here (764 KB). It’s a .deb package that can easily be installed on your N900 by opening the file after downloading it (it depends on SDL, SDL_mixer and SDL_ttf and yes, it’s optified). It can also be uninstalled easily through the application manager.
Please download the game and play it as much as you like. Afterwards, take the survey that asks you some questions about the game and the input method. You can either take part in the survey on your computer or directly on the N900. If you want to do it on your N900 you can easily open the survey directly from the game.
I’d be very happy if you played the game and took the survey as that would greatly improve my thesis.
Today, I got the confirmation from the university that the time for my diploma thesis has officially begun. So I won’t do much besides working on it for the next six months.
I’m working on the thesis in cooperation with SnapDragon Games. Therefore there is the small disadvantage that I can’t really say what my thesis is about. On the other hand, the advantage is that my topic is very exciting and pretty much on the “bleeding edge”. And maybe you’ll one day see my work in a published game – who knows.
I guess I’ll run some posts on related stuff – like Latex, reference management or C++, but the actual topic has to stay top secret for now.