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]
This year, our Walden Floor transformed into the PetroLoco gas station that has been the site of a battle between the oil oligarchs and the ecological fraction. Next to the floor and the usual interactive installations, you could also play real-life Tuxkart here.
[Read More]
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]
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]
First, there was the infamous PoolnudelschlagapparatPool Noodle Hitting Aparatus (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.
Afterwards, somebody mentioned that this would be great as an item in Mario Kart. As I knew there is an open-source clone of that - SuperTuxKart, an idea was born.
A universal relay box for interactive builds: Ethernet-controlled with an integrated PSU, switching 230V, 12V, 5V and dry relays via OSC or Art-Net. I use it across projects like my Supertuxkart and the Palapa Spaceship to drive lights, fog, motors, and effects with simple, robust control.
[Read More]
Posted on May 26, 2025
| 1 minutes
• Other languages: 🇩🇪 Deutsch
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]
In 2024, for our Walden Floor at Zugvögel Festival, the visitor was immerged into the crash site of an alien spaceship, featuring multiple interactive installations next to our usual dancefloor.
[Read More]
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]
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.
My Ticket to Moyn Festival 2023, a nice one-week-project involving building something nice out of scrap material as well as implementing the software using a Microcontroller and a Raspberry Pi:
VisoLab is a startup that creates automated self-checkout registers for canteens, where the meals on the tray are recognized on on edge via an iPad, allowing the customer to pay for their meals within seconds without requiring an employee.
For this thesis, I created a Conceptual Space from Course Descriptions for explainable Recommendation, in a highly performant pipeline on the university-grid.
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.
In this student research job for the Red Hen Lab, I worked on a pipeline that automatically detects hand gestures in large datasets of videos, involving OpenPose for Pose Recognition, Person detection, Person tracking, Scene detection and more, and deployed it on a HPC using Snakemake and Singularity to create a multimodal communication corpus from the Ellen DeGeneres show.
[Read More]
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.
A comprehensive course, with lectures and interactive assignments, about Scientific Programming in Python, offered at the University of Osnabrück.
[Read More]
Bomberperson is a maze-based multiplayer for 2 - 4 Players, that was programmed in a C++-project following up the respective university-course. All players should try to eliminate each other and be the last one standing. Player can place bombs which explode after a certain amount of time in multiple directions and can destroy obstacles and other players. Destroyed obstacles can drop power-upgrades that temporarily improve a Player. The Player is killed if they get caught by any bomb exploding or get hit by the Koopa-Shell too often.
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]
Posted on August 4, 2016
| 3 minutes
• Other languages: 🇩🇪 Deutsch
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]