My name is Johannes and I create interactive spaces.

I used to draw comics and write a blog about the philosophy of aesthetics.

Now I program and make electronic music.

I started freelance work as a webdeveloper in 2017.

In 2018 2 friends and me founded the ABC*-Festival. It is a free festival for installed spaces. We had 3 installments in the Gängeviertel in 2019 and work together with Hallo e.V. for 2021 (the 2020 installment didn’t happen sadly).

I went to study Human Computer Interaction at the Universität Hamburg in 2018, but dropped out after the first semester. I then started working as a permanently employed software developer in 2019.

In 2018 I took actions to remove all traces of mine on the internet. I deleted all social medias, wrote e-mails to have most information deleted. I started using Linux, encryption, Tor and a password manager. I also dumped my smartphone for a Nokia 8110 4G (which is actually quite modern). It used to run on Kai OS, a bullshit closed source OS, probably collecting data for the big G. Because of that I flashed the phone, installed a custom ROM and started writing my own apps. Since then I have returned to using Instagram for networking purposes (it’s really good when making music). Everythin else remained.

Frappant is an art gallery and off-space of which I am part of since 2019.

In the same year I became a volunteer inspirer at Hacker Schools, an alternative education program.

During the pandemic of 2020 I started playing electric guitar. Which led to pedals. Which led to building pedals. Which led to synthesizers. Which led to building synthesizers. Since then I am playing live improvised techno sets as “Acid At The Mall” and do so on a modular system I partially build and develope the modules for. You can find more of this on my Instagram: /acidatm and also find my music on Soundcloud: /acidatm.



ist ein 3 stimmiger Synthesizer den ich vollständig aus Elektroschrott gebaut habe. Er wurde auf dem Festival für selbstgebaute Musik 2020 in Berlin gespielt.

RØTØM besteht aus einem Eiscrusher, DC Motoren, Abnehmern, einem 3PDT Schalter, einem 1P3T Schalter (gibts in Ventilatoren für die verschiedenen Stufen), Lautsprecherklinken und einem Tiefpassfilter. RØTØMs 3 Stimmen können alle gleichzeitig, einzelnd sowie akkordeonartig im Zweiklang gespielt werden. Die Tonhöhe wird über die Stromstärke eingestellt. Ich verwende dazu ein Labornetzteil.

Auf diesen Aufnahmen vom “Festival für selbstgebaute Musik” 2020 in Berlin ist er zu hören (das was klingt wie ein Düsenjet): Set 2 Set 3

Kind 32

The “Kind 32” is a passive utility breakout board for the Moog semimodular series in 16HP. It features 4 attenuators, 4 A/B switches and 4 switched multiples.

Images from first revision

Images from second revision


The “Schaltzentrale” is a 6 HP solo and mute module with 4 channels, essential for my live techno sets.

Die „Schaltzentrale 4“ verwaltet 4 Ein und Ausgänge mit je einem Solo und einem Mute Schalter. Es können sowohl Triggersignale (Ton kann ausklingen) als auch Audiosignale (Ton schneidet ab) verwaltet werden. Das Modul misst 6HP und ist ohne die LEDs passiv. Der „Hauptausgang 4“ war der Vorläufer dieses Moduls - er war nur in der Lage Audiosignale zu verwalten. Die Adapterfunktion habe ich auf ein zweites Modul ausgelagert.


The “Zeitgeist” is a bpm based, 4 HP, programmable clock module featuring 4 outputs with monitoring LEDs and a 7 segment display. It is based on an Arduino Nano 3.

Der „Zeitgeist“ ist eine Arduino basierte Hauptclock mit 4 Clockausgängen. Aktuell Fulltime 16tel, Halftime 8tel, Downbeat 4tel und Offbeat 4tel. BPM werden auf einem (leider manchmal am Gehäuse kurzschließenden) 7 Segment Display angezeigt. Das gesamte Modul ist mit C++ programmiert. Clockrange und Ausgangsteiler können frei programmiert werden.

Selektor 3X2

3 Eingänge. 1 Ausgang. 1 Drehschalter. Und alles zweimal.

Der „Selektor 3X2“ ermöglicht das Schalten verschiedener Eingänge auf einen Ausgang. In der komplett rechten Stellung wird kein Signal an den Ausgang gegeben. Hilfreich um flüssig zwischen verschiedenen Trigger- oder Modulationsquellen zu wechseln. Das Modul misst 8HP und ist ohne die LEDs passiv.


3 Eingänge sind mit einem Ausgang durch Dioden verbunden.

Die “Signalgruppe 3X2” vereint 3 Eingangssignale auf einem Ausgang. Mit der Signalgruppe lassen z.B. sich mehrere Triggerquellen zu einer summieren oder eine Triggerquelle mit einer langsamen Rechteckwelle (von einem LFO z.B.) gaten, also rhythmisch abschneiden.







The ABC*-Festival is a Hamburg based art festival. Their website serves as an announcement page, program and archive.

Colors change on every page load. The wireframe logo is completely interactive. And there is a Beatle’s song. Cool, huh?


is a moonphase calender for the Nokia 8110 4G.

Luna is developed as a packaged web app that can be loaded with adb sideload on any device with open bridge. I developed it specifically for my Nokia 8110 4G running a custom ROM. Luna uses suncalc by mourner for it’s calculations.

A somewhat working webversion can be found here.

Code can be found on Github: github.com/branko3000/luna.

Kai Lietzke

Kai Lietzke is a Hamburg based Video- and Photographer. His website serves as a platform agnostic résumé.

Videos and photos can be sorted and uploaded with a custom CMS. Videos are hosted on a private cloud server. High resolution images with fullscreen mode, animated previews for all videos.

Design by me. Build with HUGO, hosting and CMS by Jonas Bögle.


is a typographic drumcomputer.

Is it concrete poetry? Is it a drumcomputer?

Tram21 was programmed long before I knew before about sequencers, esolangs and especially ORCA (which is both btw). It currently uses samples and rather bad js timeout functions. But I plan to use actual soft synthesis and eloquent timing in the future.

Tram interpretes different ASCII signs as specific drums (’~’ as a snare for instance). The length of the line the sign was written on determines the notelength. Unknown characters are treated as silence, so is ‘-’. You can choose presets with uppercase letters, set bpm with numbers and add comments with ‘#’.

Most interesting parts are layering insane amounts of duplicate lines, playing beat patterns with ‘ctrl+x’ and ‘ctlr+v’ and writting “beat poems”.

Code can be found on Github: github.com/branko3000/tram21

Online version: branko3000.github.io/tram21


is an arcade game about a pyromaniac rabbit.

The game was written in gdscript using the Godot engine. It is still early in development and currently not a priority. It’s an infinite arcade game that is basically reverse tower defense.

Idea and game design are somewhat based on the game Towerbag by Matheus Cunegato.

You can play an older version in browser on itch.io


is a sandbox for building DnD style RPGs for the developer console.

This is a library to build text (and emoji) based RPGs out of JSON or JS files. Th library has a agnostic interface alowing to output generated responses anywhere, not just the developer console.

Features include: procedural maps, simple pick up/drop inventory, a simple reload,dodge, shoot combat system, XP, levels, character stats and a super verbose text generator with placeholder variables for in game parameters and arrays for different syntax options. You can create custom tiles, items, enemys and task based campaigns with specific locations and encounters.

Code and extensive readme can be found on Github: github.com/branko3000/cmlrpg


Gabriela Gottschalk is a performing artist and has multiple creative agencys. This is her personal website.

ORCA mods

are modifications I did on the esoteric sequencing language ORCA.

ORCA is an esoteric programming language that was developed for usage as a sequencer for various audio applications. It is an elektron.js app developed by hundredrabbits. I primarily use it to sequence my monophonic Mother 32.

I changed various things, adding new operators (like transpose “T”), changing logic and maths to use known operators (“+” for add, “-” for substract and so on) and adding in interactive backgrounds that can be manipulated through the inbuild command line.

Code and documentation can be found on Github: github.com/branko3000/orcamods


Puncheurz is a young alternative cycling team. Their website seeks to capture their mischievous spirit.

Featuring quirky fullscreen backgrounds and an intro video, glitchy headlines and navigation, animated team shots and an image gallery.

Build with HUGO hosted with Netlify, made accessible with Netlify CMS.

Design by me, photos and videos by Kai Lietzke


The XYZ-Projekt is a Hamburg based event series looking to combine education and ave culture.

Anke Lietzke

Anke Lietzke is an interior architect. Her website is minimal and presents her and her work as clean and straightforward.

Popzirkus [WIP]

Popzirkus is a quirky creative agency, lead by Gabriela Gottschalk.

Chixxclique [WIP]

Chixxclique is a creative agency, lead by Gabriela Gottschalk. Their website envokes their understatement, femininity and coolness.


is a small educational app for learning JS and staying hydrated.

This project teaches the basics of JS with an app to track water consumption. It was used in Hackerschool workshops.

An online version can be found here.

Code can be found here on Github.

An editable repl can be found here.

Java/Micro Cesar

two educational programs teaching cryptography and Java/JS

Both programs teach the basics of object oriented programming language and cryptography using the Cesar’s chiffre. I’ve used both for workshops at Hackerschools.

Microcesar is supposed to be ran on a BBC micro:bit and can be used to exchange encrypted messages over the radio module.

Code for Microcesar can be found on Github: github.com/branko3000/microcesar.

Code for Javacesar can be found on Github: github.com/branko3000/javacesar.


OH! is the casual business site of Gabriela Gottschalk

Freaky Drive [WIP]

Freaky Drive is the driving school where I got my license. They needed a new website. This is it.

Lil Wisdoms

is a twitter bot that satirizes the spreading of so called wisdom on social media.

‘Greetings loved ones, the name is is Lil Wisdom and I spread lean knowledge about life on the fast lane. Remain stoked.’

Lil Wisdoms (formerly known as Chinese Street Wisdom) is a (underdeveloped) Twitterbot that posts randomly generated “wisdoms” every once in a while. It aims to satirize the spreading of so called wisdom on social media. The bot runs in node.js on a Heroku server (kept alive by free Dyno hours only…). The system to generate the quotes is insanely stupid. But this sometimes leads to quite deep quotes. Names are generated based on the Wordnik Random Noun API. Here are some highlights:

‘get this: A fly father is like a savage samurai: extra, alright’ -Da Unflinchingly Black

Lil Infantilised once said: To lie afraid you must dab shook first, scur

‘To stand angry you must shoot lit first’ -Lil HYBRIDISING Vert

I worked for

companys like

Evonik, Zellerfeld, Coop and Takeda as part of an agency.

I worked with

agencys like

KNSK, PUK, Publicis Pixelpark, Below1 and 35

I work with

free and open source tools only

like (GIMP, Inkscape, Godot, Typora, Scribus, Atom, LibreOffice suite and KeePassX) on a Linux laptop. All websites and web-based projects are static websites, mostly build with HUGO and hosted either with Netlify or Surge.

I can write HTML, CSS, JavaScript and PHP. I have a good understanding of Python and Java.

I have build projects with Raspberry Pi, Arduino and Micro:bit.

I know how to work with Laravel, Wordpress, Netlify CMS, and Shopify. I have experience working with Git, Shell, Docker, SCSS, jQuery, Node JS and React.


Tanzen ist Posen

a comic about dancing in an empty club.

This comic is based upon a night in the the Yoko club in Hamburg.

They later denied to hang this piece by the toilet door. Their reasoning was: “Es passt aktuell nicht in die Venue”.

I learned about the word “Venue” that day.

Out of protest I hung this comic in 20 different locations in Hamburg.


an idiographic comic about the Curiosity mars rover.

The battery life of the Curiosity marsrover extends it’s planned use time. Inspired by this webcomic.

Sascha Hommer liked this comic a bit.

Es rieselt laut

an alternative christmas card.

My mom did not like this christmas card.

Niemand hatte die Emus vor dem Hasen gewarnt

an alternative easter card.

My mom did not like this card either.

Grafische Relativitätstheorie

a series of linoleum prints about the theory of relativity.

These graphics were part of a presentation for the final round of Jugend Präsentiert 2017.


Das Streichholz

A play about the sense of life in a vacuum.


Auf Clubtoiletten

A collection of haiku

Entry for the Berliner Festspiele 2019.



Angaben gemäß § 5 TMG

Johannes Hassenstein

Freiberuflicher Webgestalter, Entwickler und Texter

Hebbelstraße 11b

22085 Hamburg


E-Mail: johannes.hassenstein@PM.ME

Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV

siehe Angaben gemäß § 5 TMG


Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit: https://ec.europa.eu/consumers/odr. Unsere E-Mail-Adresse finden Sie oben im Impressum. Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen.

Haftung für Inhalte

Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.

Unser Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.


Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.