Web Development



Creation of a new website design for the Multiart PR agency. The website uses a Typo3 CMS and we also implemented a Newsletter creation and archive system.

Paul Watzlawick Ehrenring


Redesign of the Paul Watzlawick Ehrenring website. The site was implemented in Typo3.



Website design and implementation in Typo3.



Redesign and creation of a product database website, that can be automatically copied over to other servers and domains, when necessary. This project was also created in Typo3.

UTC Brand


Website design and CMS (Typo3) for a tennis club.

B├╝hne Weinviertel


Website design and content management system for a theater group. The website was implemented in my own CMS and also includes a slightly responsive layout.

Josef Newerkla


Website design and CMS (my own implementation) for a private website.

Waldviertler SkiShuttle


Website design and custom made Content Management and Bus Tour Management system, written in PHP (using Smarty Templates).

Cuddle Combat


An online-game that was created as a project during my study at the University of Applied Sciences in Hagenberg. It entails having cats fighting against each other ;).

Software Development

L-System trees on the GPU

We implemented the scientific paper about Real Time L-System Generated Trees Based on Modern Graphics Hardware during the course "Fractals" of the "Visual Computing" master studies. The application was built from the ground up, although we re-used parts of my Deferred Shader from the Realtime Graphics course.


The application was written in C++, using OpenGL as the graphics API. An OpenGL 3 compatible context and GLSL was used. Furthermore GLFW was used for creating the window and OpenGL context and we used the Boost library.


Realtime Graphics

During the course "Realtime Graphics" of the "Visual Computing" masters degree studies at the Vienna University of Science and Technology we created a realtime graphics demo that is supposed to show off a few realtime graphics effects. In our case we decided to create a demo with Deferred Shading.


The application is written in C++, using OpenGL as the graphics API and NVidia Cg for the shading language. We used FBX for loading 3D geometry. Effects used in this demo are:


Kabu's Journey

Our practical task in the course "Computergraphics" was to create a game, from scratch. We had to build the engine, game logic and interactivity completely by ourselves.

Background story

On a beautiful platform somewhere in the Universe, there were these peaceful creatures called Tamis. But one day, they were attacked by the evil Primitives and threatened to be enslaved by them completely. The wise men of the Tamis chose one fellow called Kabu. They let him in on the secrets of the Universe, enabling him to travel through a secret dimension to other platforms in order to find a weapon, that will be able to drive away the Primitives. He gets a magical Orb, that enables him to travel from one platform to the next, in order to reach his goal. The Primitives however will try everything in their power to prevent that.

The goal is to reach the final platform.


The game was written in C++, using OpenGL as the graphics API and NVidia Cg as the Shader language. Microsoft Visual Studio was the developing environment. The 3D models and levels were created in Maya and imported via FBX. We used OPCODE for the collision detection and the DevIL library for image loading.



In the context of the course "Information Visualisation" we made an application to visualize the spatial flow of arbitrary objects.

A special algorithm by Doantam Phan, Ling Xiao, Ron Yeh, Pat Hanrahan and Terry Winograd is used to create a computer generated Flow Map, which are usually hand drawn.


This program was written in C++ and with usage of the OpenGL and Qt Library.


A dedicated documentation page can be found here: files/portfolio/InfoVis/

Rendering Engine

In the course "Rendering Engines" our task was to implement 3 different modules into an existing small rendering engine. Those 3 modules are for creating geometry, changing/editing the geometry and rendering. In our specific task we created random asteroids which are rotating in an asteroid belt. Those asteroids will be stored in a dynamic octree which will be used fore view frustum culling.



In the context of the course "Visualisation" we made an application to visualize flow data. It is possible to show directions of the flow with arrows, visualize the flow with stream lines and show everything in different colors in dependence of data like velocity, vorticity and pressure.
Streamlines are created via integration of stream vectors using the Euler or Runge-Kutta method. Streamlines are created in an evenly spaced manner using the algorithm of Bruno Jobard and Wilfrid Lefer ("Creating Evenly Spaced Streamlines of Arbitrary Density", Visualization in Scientific Computing '97, Springer Vienna, 1997, pp. 43 - 54).

This program was written in C++ and with usage of the OpenGL and Qt Library.


A dedicated documentation page can be found here: files/portfolio/FlowVis


In the Context of the course "visualisation" we made a programm, which made it possible to display 3D volume data. It is possible to see several slices of the dataset, as well as a 3D Model of the Volume Data. The realisation of the raycasting depends on the Paper "Display of Surfaces from Volume Data" from Marc Levoy (IEEE Computer Graphics and Applications, Vol. 8(3), pp. 29-37, Feb.1987).

The user is able to see the slices for the Axes X, Y and Z. Concerning the Raycasting, the User can choose between three different modes:

  • Levoy (uses the algorithm from Marc Levoy)
  • First Hit (displays the first intensity value on the ray)
  • Maximum Intensity Projection (displays the maximum intensity value on the ray)

This program was made with C++, OpenGL, the GUI Library Qt and the Shader Language Cg.


A dedicated documentation page can be found here: files/portfolio/VolVis


Genesis is an interactive computer game which is projected on a table and you physically interact with it using marker cubes.


The game represents a simple simulation of some environment which the player can influence. The game is round based and in each round the player can set "elements" like water, trees or animals into the world. The position and order of each element have certain effects on each other.

The environment is projected onto a surface and the game is not controlled with your mouse or keybaord, but rather with symbolic objects representing these elements. These objects can be set into the world directly.

We broke down different tasks for our team of 5 people:
  • Tracking
  • Graphics creation
  • Game engine
  • Graphics engine
  • Sound
The game is written in C++, the graphics API is once again OpenGL. We used ARTag for tracking and FMOD for sound. Directing the project and creating the underlying game engine and simulation was my responsibility.

Portrait Cropping

During the course "Digital Imaging" at the University of Applied Sciences in Hagenberg we created an automatic portrait corpping plugin for ImageJ. This plugin is supposed to automatically detect the portrait of a person with in a picture and crop the picture accordingly.

The plugin is written in Java, since it is a plugin for ImageJ. Built-in functionalities of ImageJ are used to pre-process and analyse the picture, in order to find the most probable region of the head. Our plugin anlyses the contours of the head and searches for certain patterns.

Virtual Hockey

During the workshop "Physical Interfaces" at the University of Applied Science in Hagenberg we were able to decide on our own what project using such 'physical interfaces' we want to create. We decided on a form of "Virtual Hockey", where we would have haptic input devices (representing the air hockeys) and a virtual puck that is projected on a table.


The hockeys are tracked by a camera. The puck interacts with them within the application and the updated position of the puck is projected onto the table. In order to easily identify the hockeys in the picture of the camera, we used infrared. There are infrared emitters that are reflected back by the hockeys to the camera, which in turn has an infrared filter. The resulting image is analyzed within the application.

The application is written in C++ and we used OpenCV for the image analysis and OpenGL for the graphics API.


Video Projects



This was a 30 second video project done during a video course in Hagenberg. It was filmed with a consumer MiniDV cam, while the gaming part was grabbed from the video output of a gaming console. The movie had to be cut in the simple iMovie application, while editing the source material beforehand if necessary (effects etc.).

The short film can be viewed on YouTube.

Roli's Raum


In another video course we had to create a 5 minute long movie, including making a storyboard and script. In my case a somewhat odd story emerged. The movie was shot on a location in Grainbrunn, using a professional DV cam (from the university) and it was cut in Avid Xpress while editing audio in Cubase.

The movie can be found here on YouTube.



A real object had to be converted into a vector Illustration. This particular illustration was done in Macromedia Freehand 10 in 2004.

Corporate Design

Our task was to create a logo out of our name's initials. We had to keep different criterias in mind, like monochromatic use and simplicity. During the process many scribbles of many different possible logos were done. Each logo variation was further iterated with changes until a final design emerged. The last step was to take a complete Corporate Design into consideration.


In order to be acquainted with advertising strategies, we had to create a unique advertising concept for a real product. The concept concists of an analysis of the current state of the project, the creation of a copy strategy, a createive strategy and a media strategy.