The Projects under this section are are from my Cand.IT, Multimedia technologist degree. These project all, more or less, relate to wireless technologies and computer game development. Projects will be posted here until I turn in my thesis in june 2006.
I've structured each of the below project descriptions with a short summary, relevant links and downloads. So if you are looking for some in depth knowledge on a particular project, check out the downloads.
If you should find the content of this page useful, fell free to use it, but please remember where you got it from and give credits accordingly.
Real Time Graphics System Design for SmartPhones using OpenGL ES
01.03.2007
Course:
Master's Thesis
Description:
This project deals with the design and implementation of a platform independent 3D framework using the open mobile OS Symbian and OpenGL ES v.1.0.
A selection of 3D scene setup related computer graphics strategies known from the world of stationary PCs and consoles, is in the project modified and adapted to the limits of mobile phones and ported to a real world device.
The project introduces a Bezier patch based level of detail (LoD) strategy for triangulated polygon meshes. A half-edge data structure (HDS) variant fitting the limits of mobile phones is developed and used to represent mesh connectivity. Using HDS mesh traversal, a Bezier model of the mesh surface is build using approximations of the 1st order partial derivatives. Based on the Bezier model, two mesh resolution increase strategies are presented.
Below, the project report and source code is available. A SIS file for program installation on a Series 60 platform supported mobile phone is also available. Note that this program is only support by Symbian v.8.0a (S60 2nd Ed) ) and newer versions.
This project deals with the setup and design of a J2ME/JME build system. Using Eclipse, EclipseME, Ant and Antenna, the project discusses the necessity of build systems when developing J2ME/JME programs, which device diversities to deal with, a general grouping of devices and important features of good build systems.
Main features of the system is that it is portable, easy to expand to new device groups and localization settings and that it has a 'one-click build-all' function supported in Eclipse.
The report is written in a 'student-to-student' tongue and the project should therefore be easy to understand for anyone new to build systems.
An Eclipse project template build system is supplied below.
As a conclusion to the Mobile Systems Software course, me fellow student and I decided to develop a primitive peer to peer system for Symbian S60 2nd edition mobile phones. We did so using the SMS protocol. Since many cell phone subscriptions come with 'free sms' service, we developed this program as a proof of concept as to how client-to-client data transfer can be done cost free. The bandwidth of the developed peer-to-peer service proved to be critically low making the service very doubtfull in regards to realistic realworld application.
This is the final project of the '2561 Computer Graphics' course that I attended as a guest student at DTU in fall 2006.
This projects incorporates a Octree Spatial Partitioning solution into the Raytracing exercise of the course to optimize the time it takes to render a scene. By querying our octree of object spatial relations when collision detecting Rays as part of the Raytracing render engine, we greatly improve render timings.
The program have been implemented using C++ and OpenGL.
This project deals with GPU programming. In it, my fellow group member and I, developed a real-time animated water shader using OpenGL, C++ and Cg. A proper world setup and testing environment was implemented to be able to play around with settings to get the shader to 'look right'. The different aspects of the shader itself are wave geometry transformations, bump mapping, texture mapping, local illumination using Phong equation and environmental mapping.
Below, the mandatory game and report done during the 'Game Programming' course of ITU can be found. We were told to develop a car game of any kind. My group and I decided to focus on physics and collision detection and therefore designed a world to take place within a Dome (sphere) .
The game was done using the open source 3D engine Panda3D, Python and C++.
Mandatory exercises done during the 'Computer Graphics' course of ITU. The course introduces important computer graphics algorithms and terms. This course introduced me to C++ and OpenGL and all exercises have been done using these languages. The exercises cover scanline theory, phong shading, scenegraph structures and texture mapping. This course introduced me to C++.
The mandatory report that concludes the 'Location Based Mobile Applications' course of ITU. This course covers important articles, cases and technologies regarding the design of location and context based mobile applications. This report discusses a conceptual design solution that aids Danish health caretakers through location and context awareness.
This project explores the possibilities of creating a cell based Bluetooth positioning system using a Blip Systems Bluetooth BlipNet and a mobile phone unit. The project analyses the possibilities of a BlipNet and discusses positioning schemes using signal strength measurements in general. The product of the project is a server application responsible of locating and positioning Bluetooth devices, and a clientside J2ME/JME MIDlet using the positioning data to display a device's location on a map.
The product of the project will only be functional within a BlipNet setup and the clientside MIDlet is optimized for the Nokia 6600 phone.
IM course exercises F2004
Multimedia technologist 1st Semester
Description:
The mandatory exercises I did while taking the 'Introduction to Multi-media Technology' course. These exercises range from an implementation of the Huffman source encoding algorithm to basic Image Processing in Matlab. In other words a large variety of topics related to multimedia. All exercises were passed.
The mandatory exercises I did while taking the 'Signal Processing Course' course. These cover signal processing basics from convolution, correlation, z-transfrom and filter design. The exercises are either handwritten math problems or have been done using MathLab. All exercises were passed.