Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


I created this repository to collect and summarize many of my finished projects. It mainly includes projects I did during my studies or in my free-time (work experience mostly not included, because of privacy reasons from the companies I've been working for so far). Besides the projects listed here, I also have some public repositories on my GitHub account (mainly experiments, contributions, or work in progress though, but feel free to check them out too if you're interested). Below you will find five categories:

  1. Publications - Here I put all the links to my published scientific papers and articles
  2. Technical Blog Posts - From time to time I share some collected knowledge about a topic or explain some ideas I had
  3. Talks - Official public talks I've given
  4. Coding Competitions - Though not very active in this area right now, I collected my achievements there.
  5. Projects - These project pages link to more specific information including a summary, achievements, my responsibilities in these projects, etc.


Technical Blog Posts


Coding Competitions

  • ~Top 3% at Google Code Jam 2019
  • ~Top 1.X% on LeetCode's Global Ranking
  • ~Top 10% on Codeforces Global Ranking
  • ~Top 12% at Google Hash Code 2017


Acceleration Structures for Cone Tracing

(Computer Graphics, Ray Tracing, kd-tree, Bounding Volume Hierarchy)

Acceleration Structures for Cone Tracing

Superjump - Trampoline Jumping with a Head-Mounted Display in Virtual Reality

(VR, 3D User Interaction, Framework)


Diminished Human - Empathizing Audiovisual Sense Impairments with Mixed Reality

(Mixed Reality, Head-Mounted Display, Audio- and Image processing)

Diminished Human

Public Brewing - A Media Façade with a Mixed Reality Interface to brew beer

(AR, Media Installation, Networking)

Public Brewing

Zero Gravity - A Virtual Reality experience in air and water

(VR, Multimodal Interaction)

Zero Gravity

Immersive 360° Videos - Virtual Reality Zoo Visit and Immersive Journalism

(VR, Human-Computer-Interaction)

Immersive 360° videos

Virtual Studio - Semi-Automatic Camera and Switcher Control

(Audio Processing, Expert System, Networking)

Virtual Studio

Birds - An interactive, chirping media installation

(Computer Graphics, Media Installation, Agents)



Smartcity - Augmented Reality Visualization

  • Programmed an Augmented Reality visualization for 1 month in a team of 4 for Panasonic. Coded on the user interaction and animation sequences.
  • Project featured at the IFA 2016 in Berlin (world's leading trade show for consumer electronics and home appliances).

Panasonic smartcity AR booth

Panasonic smartcity AR booth

Augmented Reality photo album

My vision was to breathe life into my old photos. An Android app enables the user to see different animations or effects on the images, e.g. it is snowing on a winter image or you can see the people breathing. Content was hand-made. Used Vuforia for image tracking.

Magic lens exposes my bad barbecue skills

Magic lens exposes my bad barbecue skills

Augmented Reality Sound Sandbox: An artistic installation for musical expression

This installation produces ambient soundscapes using a Lattice Boltzmann based particle simulation running through a deformable landscape. Our interface exploits the three-dimensional topology of physical sand, distributed over a tabletop surface. Visual feedback is front-projected onto the sand and onto the users hand. The user can explore the landscape by using his or her hands and use spatial gestures via on-body projection to control AR content and further settings.

Although the project itself was a huge effort, it was mainly conducted by Bastian Dewitz as part of his master thesis. However, I helped him out with prototyping interaction concepts, visuals, interaction design, camera to projection space calibration and an informal evaluation.

The project was published in INTETAIN 2017: Intelligent Technologies for Interactive Entertainment

Video: Augmented Reality Sound Sandbox

Video: Augmented Reality Sound Sandbox

Particles flowing over the sand

Particles flowing over the sand

Control menu projected on the user's hand

Control menu projected on the user's hand

Lecture: Real-Time Rendering

The goal was to develop a shader and a corresponding ray tracing implementation. I implemented a grass geometry shader with billboards using Unity3D, ShaderLab/CG/HLSL and ray tracing program using NVIDIA OptiX. Compared both results in a short report.

Grass billboard shader with animation in Unity3D

Grass billboard shader with animation in Unity3D

LeapMotion - Rock Paper Scissors - Proof of Concept

Coded small Proof of concept when the first version of LeapMotion was released in 2013. This was done with a small JavaScript library provided by LeapMotion.

Video: LeapMotion - Rock Paper Scissors - Proof of Concept

Video: LeapMotion - Rock Paper Scissors - Proof of Concept

Java Robot programming - Race IT

We built and programmed a robot driving in a circuit with LeJOS, Java for Lego Mindstorms. It had light, ultrasonic and RFID sensors to recognize the route, distances to obstacles and the type of obstacles it had to overcome. I programmed the ultrasonic sensor, the algorithm to drive over a seesaw, and our scanning and planning algorithm from scratch.

Video: Java Robot programming - Race IT

Video: Java Robot programming - Race IT

Sudoku with Java

In our second semester, we implemented Sudoku on the command prompt with Java. The biggest challenge was to make the game easy to play via the command prompt. I coded the user interaction.

Video: Sudoku with Java

Video: Sudoku with Java

Mini RPG-Game

Created for a friend using RPG-Maker 2k.

Waking up in a foreign room, without any memories

Waking up in a foreign room, without any memories

Such a weird dream...

Such a weird dream...

Underworld: On the way to the demon king

Underworld: On the way to the demon king

Blitzbasic Projects

Actually, Blitzbasic got me into programming at the age of around 10-13, I can't recall exactly. I started programming because I was a little gamer and I was always wondering how it is possible to create video games. However, this project was about practicing easy linear functions in the form f(x)=ax+b and one of my first programming projects ever. Some younger friends used this program to practice for their exams - needless to say they did well hehe.

Practice linear functions with math text problems, calculation of intersection points, amongst other things

Giving rough graphical representations of linear functions

Autodesk Maya shorts

We created two short movies with Maya:

  1. The goal of the first one was to capture the atmosphere of a graveyard scenery (the assets in this short movie were bought)
  2. The goal of the second one was to show an abstract chain reaction between multiple objects (hand-made)

Video: Maya Graveyard scene

Video: Maya Graveyard scene

Video: Maya Chain reaction short

Video: Maya Chain reaction short


(will add them when I'm finding the footage and also time for it)

  • Android Quiz App programmed with CocoonJS
  • Web pong (HTML, CSS, JS)
  • UnrealTournament maps I created (UnrealEditor)

Back to the top


Papers, Tech blog articles, Talks, and Project Portfolio






No releases published


No packages published