This are all posts, no matter their category. See also All Pages.

The Confessional

At Zugvögel Festival 2026, our floor became a church - and what is a church without a confessional? So I built one: a wooden confessional box where festival visitors confess their sins to an AI priest, who teases the juicy details out of them, grants absolution, and then sends them onwards to the Holy Toilet - where their sins, anonymized and retold in an angel’s voice, are played back to whoever is enthroned there at the moment. [Read More]

Walden Floor 2026: Santo Nido

This year, our Walden floor at Zugvögel became Santo Nido: a church dedicated to a phoenix sect. Stained-glass windows, holy birds, an AI confessional, and a tower-clock that goes wild with the music. A lot of religious nonsense, and so much love for detail. [Read More]

Better WLED LEDMap Generator

Code to create a WLED LED-Map (the JSON that tells WLED the positions of the LEDs) with some features that I didn’t find in any online editors: Dragging the mouse over the canvas fills all hovered cells, rescaling the map to a different size, inverting, and inserting LEDs in between existing ones. [Read More]

The Palapian's Spaceship

An interactive, networked spaceship you can actually board: players complete (or sabotage) missions across a dozen physical interfaces - buttons, joysticks, LED boards, sensors, etc - to either launch the ship or doom it, with everything driven by a Python/ESP/Unity stack. It’s modular, auto-resets regularly, and scales to festival crowds without manual babysitting. [Read More]

Tux-Kart with Real-Life Powerups



First, there was the infamous PoolnudelschlagapparatPool Noodle Hitting Apparatus (PNHA). At Fusion Festival 2023, we had some pool noodles, some windshield wiper motors, and a wood construct to put a simple game into, so we did the only sensible thing to combine those things: You play Flappy Bird, and if you are too bad, you get hit with a pool noodle.

[Read More]

Podcast Episode on LLMs for Software Engineering

In this (german-language) episode of Code for Thought, Carina Haupt (DLR) and I talk with host Peter Schmid about large language models in Research Software Engineering: where tools like Copilot genuinely help (routine tasks, tests, small scripts), and where real-world projects expose their limits (builds, requirements, missing project context). I share my current work on matching papers to repositories via embeddings at the project level rather than just functions - so models carry meaningful context across an entire codebase. [Read More]

Paper-Code Matching with Repository-Level Code Embeddings

During my discontinued PhD at DLR, I developed and trained a graph neural network to combine code embeddings into repository-level representations and align them with scientific publications. Preliminary evaluation showed a promising improvement over pooling baselines, as a first step towards finding related implementations and their underlying assumptions across research fields. [Read More]

Adding dynamic content to HUGO

This website is build using Hugo, a framework to generate static websites from markdown-files. This means that after the compile-step, there are only pure HTML-files, which can just be hosted on any webserver. While this has several advantages in terms of eg. speed, debugability, search engine optimization and much more, a big disadvantage is that there is no straightforward way to include dynamic content. As everything is unchanged from the compilation on, allowing for content dependent on user input or from real-time data, or just including content generated from other web frameworks such as Python’s flask or Django, is not easy. However, thanks to Javascript, it is absolutely possible to incorporate such dynamic content, as I have done for example in my CV, which is generated with my custom CV-Generator. [Read More]

Mount a QNAP NAS to your system using SSHFS

I never really liked NFS, so I wanted another way to mount a drive from my QNAP NAS onto my linux machine. As I haven’t found any sort of instruction for that online, I’ll post how I did it here, in case anybody searches for the same thing.

The how is hurdled mostly by the fact that you cannot install SSHFS onto QTS, as the package ist not available for it. But as so often, the solution is Docker. We’ll just create an Ubuntu-Container where we can install SSHFS, and mount the directory we want to share as a volume. This of course requires that you have a NAS with Container Station, allowing to use Docker Containers.

[Read More]

Palapa Floor @ Fusion Festival

For the last three years I’ve been part of the crew behind Fusion Festivals largest Floor: Palapa — a collectively built, ever-changing “city of the future” and dance floor. We turn a 1,200 m² tent into a dense skyline of handmade structures, layered light, and countless small details. [Read More]

Automatic Meal Recognition

VisioLab is a startup that creates automated self-checkout registers for canteens, where the meals on the tray are recognized on on-device via an iPad, allowing the customer to pay for their meals within seconds without requiring an employee.

[Read More]

Siddata Study Assistant

The Siddata project developed a digital study assistant that helps students find relevant courses, learning resources, and study partners using personalized recommendations. I developed machine learning recommenders and worked extensively on its Django backend, turning a research prototype that previously took days to deploy into a containerized, tested, and easily deployable system. My masters thesis was also conducted in the scope of this project. [Read More]

Button-Board

Main Image

After finally (and only for now) accepting that a reliable sound2light-bassline-detection is probably more trouble than it’s worth, I next needed a way for tap2bpm instead. This, however, required new Hardware, and thus, I developed this Button-Board.

[Read More]

Gesture Recognition in Large Video Corpora

As a student research assistant at the Red Hen Lab, I worked on a video-processing pipeline for automatic gesture analysis in large video corpora. My work involved person tracking and identification using face recognition, shot segmentation, and deploying the pipeline on an HPC cluster using Snakemake and Singularity. [Read More]

Stringart-Lamp

targets

This is a lampshade made of string, made for a free-standing lamp with a single light bulb in it. It is designed dim the bulb as little as possible and just be a pretty ornament whether the light is turned on or off. As the bulb is pretty visible inside the shade, I recommend a pretty one with warm light, such as an Edison-bulb.

[Read More]

C++ Game: Bomberperson

As part of the practical course following the lecture The C++ Programming Language at the University of Osnabrück, we had two weeks to develop a complete game in a team of 11 students, including a level editor. The project involved working with libraries such as Box2D for physics and Boost, as well as the HDF5 data format. We decided to develop Bomberperson, a Bomberman-inspired multiplayer game with a few additional mechanics.

The Game

Bomberperson is a maze-based multiplayer game for 2-4 players, where the goal is simple: eliminate the other players and be the last one standing. Players can place bombs that explode after a short delay, sending explosions in multiple directions, destroying obstacles and potentially killing other players. Destroyed obstacles can drop power-ups, which can temporarily improve a player’s abilities or make their life more difficult.

Bomberperson gameplay [Read More]

Avanti Madonna Partys & Decoration

Bachelorthesis: Controlling Race Cars with Deep ANNs

Delving into the realm of self-driving cars for my bachelor’s thesis, I endeavored to optimize their tactical decisions, particularly speed, using cutting-edge deep neural networks and reinforcement learning in tensorflow within a transformed racing simulation. The resulting research platform, built on Unity, showcased the potential of real-time feedback and adaptability, offering valuable insights into the future integration of reinforcement learning in self-driving cars. [Read More]

3D-Game: AVZ-Run

In this 3D-Browser-Game developed in a computergraphics-project using THREE.js, the player is trapped in the infamous burning AVZ and must try to escape this inferno. The player controls the in-game character and must overcome obstacles, puzzles and traps to get to the bottom and out of the AVZ. Play here! [Read More]