Portfolio
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:
- Publications - Here I put all the links to my published scientific papers and articles
- Technical Blog Posts - From time to time I share some collected knowledge about a topic or explain some ideas I had
- Talks - Official public talks I've given
- Coding Competitions - Though not very active in this area right now, I collected my achievements there.
- Projects - These project pages link to more specific information including a summary, achievements, my responsibilities in these projects, etc.
Publications
- Performance Evaluation of Acceleration Structures for Cone Tracing Traversal (JCGT 2020)
- Trampoline Jumping with a Head-Mounted Display in Virtual Reality Entertainment (INTETAIN 2018)
- AR Sound Sandbox: A Playful Interface for Musical and Artistic Expression (INTETAIN 2018)
- Semi-Automatic Camera and Switcher Control for Live Broadcast (TVX 2016) ; Halbautomatische Steuerung von Kamera und Bildmischer bei Live-Übertragungen (Fernseh- und Kinotechnische Gesellschaft e.V.)
- Empathizing Audiovisual Sense Impairments: Interactive Real-Time Illustration of Diminished Sense Perception (AH 2016)
- Public Brewing: a Media Façade with a Mixed Reality Interface (PerDis 2015)
- ZeroGravity - eine virtuelle Nutzererfahrung in Luft und Wasser (MuC 2014)
Technical Blog Posts
- Axis-Aligned Bounding Tetrahedra and Octahedra for Ray Tracing Bounding Volume Hierarchies
- Another View on the Classic Ray-AABB Intersection Algorithm for BVH Traversal (also referenced in the Real-Time Rendering Intersection Table)
- How to create awesome accelerators: The Surface Area Heuristic
- Utilizing SIMD/SSE in Unity3D (.NET 2.0)
Talks
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
Projects
Acceleration Structures for Cone Tracing
(Computer Graphics, Ray Tracing, kd-tree, Bounding Volume Hierarchy)
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)
Public Brewing - A Media Façade with a Mixed Reality Interface to brew beer
(AR, Media Installation, Networking)
Zero Gravity - A Virtual Reality experience in air and water
(VR, Multimodal Interaction)
Immersive 360° Videos - Virtual Reality Zoo Visit and Immersive Journalism
(VR, Human-Computer-Interaction)
Virtual Studio - Semi-Automatic Camera and Switcher Control
(Audio Processing, Expert System, Networking)
Birds - An interactive, chirping media installation
(Computer Graphics, Media Installation, Agents)
Others
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
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
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
Particles flowing over the sand
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
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
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
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.
Mini RPG-Game
Created for a friend using RPG-Maker 2k.
Waking up in a foreign room, without any memories
Such a weird dream...
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
Autodesk Maya shorts
We created two short movies with Maya:
- The goal of the first one was to capture the atmosphere of a graveyard scenery (the assets in this short movie were bought)
- The goal of the second one was to show an abstract chain reaction between multiple objects (hand-made)
Video: Maya Chain reaction short
Others
(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)