These are some projects from my professional and private work. A few are part of my work at the University of Applied Sciences Potsdam (Germany) but not related to any seminar.
Contents
- OParl Explorer
- parla.berlin
- >ki.portrait
- Berliner Haushaltsdaten
- hilf-mir.berlin
- Stadtpuls
- Quantified Trees (QTrees)
- Giess den Kiez
- Open Traffic Count
- Algorithmic Visions of the City
- Flusshygiene
- To Markdown CLI (html2md)
- P5 Code Sandbox
- Notes
- TIL (Today I Learned)
- Script Plugins
- Basil.js
- ExtendScript Wiki
- Extendscriptr
- Extendscript-bundlr
- Is The Lab Open?
- Bonanza
OParl Explorer
Small research/proof of concept project together with CityLAB Berlin. A force directed graph view to gradually explore oparl data. (Not public yet)
- Years: 2025
- Context: Technologiestiftung Berlin, CityLAB Berlin, Freelance
parla.berlin
The city of Berlin provides an publicly available dataset of parliamentary proceedings. To make these documents more accessible, CityLAB Berlin created parla.berlin. It uses Retrieval Augmented Generation (RAG) to demonstrate the potential of large language models combined with machine-readable data. The source code is available on GitHub.
- Years: 2023
- Context: Technologiestiftung Berlin, CityLAB Berlin
>ki.portrait
For the CityLAB summer conference, we created an interactive exhibit that generates AI portraits of visitors. It uses facial analysis to detect attributes like emotion, age, gender, and gaze direction, along with dominant colors from the camera, to generate prompts for DALL-E 2. A gallery of the generated images is available at ki-portrait.citylab-berlin.org and the processing pipeline’s source code is on GitHub.
- Years: 2022–2023
- Context: Technologiestiftung Berlin, CityLAB Berlin
Berliner Haushaltsdaten
Interactive visualization of Berlin’s public spending and revenue. Visit the live site or see the source code on GitHub
- Years: 2023–present
- Context: Technologiestiftung Berlin, CityLAB Berlin
hilf-mir.berlin
Digital guide for psychosocial support services in Berlin. Visit the live site or see the source code on GitHub
- Years: 2022–present
- Context: Technologiestiftung Berlin, CityLAB Berlin
Stadtpuls
IoT data platform connecting Berlin’s sensors with makers and civic actors. We discontinued the project in 2023. Visit the live site or see the source code on GitHub
- Years: 2021–2023
- Context: Technologiestiftung Berlin, CityLAB Berlin
Quantified Trees (QTrees)
AI-based drought forecast for urban trees; includes Baumblick web app. This project was in collaboration with the Birds on Mars. Visit the documentation site and the web application Baumblick.
- Years: 2021–2023
- Context: Technologiestiftung Berlin, CityLAB Berlin
Giess den Kiez
Berlin trees are suffering due to ongoing drought, a consequence of climate change. Gieß den Kiez is designed to coordinate citizen participation in watering urban trees. Since the CityLAB’s inception in 2019, we have nurtured this application through various development stages, deploying it across different platforms and implementing several rewrites and redesigns. The source code is available on GitHub.
- Years: 2019–present
- Context: Technologiestiftung Berlin, CityLAB Berlin
Open Traffic Count
Low-cost, privacy-respecting real-time traffic counting using open-source AI. This project used the OpenDataCam as the basis. We did some more on device analysis. See the GitHub Topic
- Years: 2020–2021
- Context: Technologiestiftung Berlin, CityLAB Berlin
Algorithmic Visions of the City
Speculative urban design using machine learning and GANs, visualized with X/Y plotters.
- Years: 2019
- Context: Technologiestiftung Berlin, CityLAB Berlin
- Note: No public link available
Flusshygiene
Forecast tool for Berlin’s river water quality. This was my first project at the Technologiestiftung Berlin. So many things I did wrong. It was also the first time developing a full-stack application using React and Express with Node.js, Typescript, Postgres, Redis, OpenCPU, S3, AWS Lambda via serverless, and Docker. Deployed on AWS using Elastic Beanstalk. Find it on GitHub
- Years: 2019–2024
- Context: Technologiestiftung Berlin, CityLAB Berlin, Kompetenzzentrum Wasser Berlin (KWB), Landesamt für Gesundheit und Soziales (LaGeSo) Berlin
To Markdown CLI (html2md)
A Node.js CLI tool to convert HTML to Markdown. It uses Turndown as parser. You can find the repo on GitHub.
- Years: 2019–present
- Context: Private work
P5 Code Sandbox
To iterate quickly on p5.js snippets I built a live coding environment based on the Monaco Editor and the p5.js library. It is a simple way to write and run p5.js code in the browser with direct feedback. !Warning there is no infinite loop protection! You can find it here or see the source code on GitHub
- Years: 2023–present
- Context: Private work
Notes
To quickly write down some notes I built this small app. It uses content editable divs and saves the content to local storage. You can find it here. Try it
- Years: 2023–present
- Context: Private work
TIL (Today I Learned)
A small CLI written in Go to collect TILs. This started out as a finger exercise to learn Go using ChatGPT as pair programmer. It did not get further. Coming back after a few months makes jumping back onto a language I don’t use daily pretty hard. Still I learned some things. Mostly how to setup a CI/CD pipeline for Go and how to publish using Homebrew. You can find the repo here.
- Years: 2023
- Context: Private work
Script Plugins
Since around 2009 I’ve been writing scripts to automate my design workflows. Some made it to become a integral part of my work like the scripts for the mediaplanungonline.de which can be found here. Others became products that I sell on aescripts.com. Below you can see some of the demo videos for the later ones.
Basil.js
From 2014 to around 2020 I worked on Basil.js together with Benedikt Groß, Ted Davis and Timo Rychert. It is a creative coding framework that ports the spirit of the Processing visualization language to Adobe InDesign. We have been working on fixing bugs and implement some additional features to make it more Processing like. Find the source code on GitHub.com/basiljs/basil.js. Unfortunately the development stalled and the project. Visit the live site or see the source code on GitHub
- Years: 2014–2020
- Context: Private work
ExtendScript Wiki
Since October 2012 I’m assembling a wiki about ExtendScript. It was with around 100 articles one of the largest resources you can find about writing scripts for Adobe applications. Take a look into the ExtendScript Wiki GitHub
- Years: 2012–present
- Context: Private work
Extendscriptr
Extendscriptr is NPM CLI module that allows you to benefit of many modern javascript features of es5 and es6 in a es3 ExtendScript environment developed by Lucas Vogel and me.
GitHub.com/ExtendScript/extendscriptr GitHub
- Years: 2016–2023
- Context: Private work
Extendscript-bundlr
A tool for bundling Adobe ExtendScripts that use the //@include 'path/to/file' or #include 'path/to/file' statement.
GitHub.com/fabianmoronzirfas/extendscript-bundlr GitHub
- Years: 2016–2018
- Context: Private work
Is The Lab Open?
interface.fh-potsdam.de/is-the-lab-open/
what This site is an experiment on location based triggers. Whenever a student needs to know if the Interface Lab is open for consultation he just can load the site. It tells you if the lab is open.
why Short version: “Because we can.” Long version: “It often occurs that students ask per email if the lab is open. This is a simple way to find out. Also it is a test if location based triggers work accurate.
how On the mobile device of the lab supervisor is a location based trigger installed with ifttt.com. If he enters the area IFTTT calls the API of the application.The sent value is cached for faster response times. According to the result of the cached data the application presents the information when the user loads the site. For further and deeper insight check out the open source code at GitHub.com Visit the live site or see the source code on GitHub
- Years: 2015–2017
- Context: University of Applied Sciences Potsdam
Bonanza
Bonanza is a material management system developed for the Interface Lab at the University of Applied Sciences Potsdam (Germany). Programming is done by Phillip Geuder and Stefan Hintz. Design by Sebastian Kaim. Project management by Colette Hampel and me. Currently there is no public source available.
- Years: 2013–2017
- Note: No public code available
- Context: University of Applied Sciences Potsdam