Projects

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

Small research/proof of concept project together with CityLAB Berlin. A force directed graph view to gradually explore oparl data. (Not public yet)

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.

>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.

Berliner Haushaltsdaten

Interactive visualization of Berlin’s public spending and revenue. Visit the live site or see the source code on GitHub

hilf-mir.berlin

Digital guide for psychosocial support services in Berlin. Visit the live site or see the source code on GitHub

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

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.

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.

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

Algorithmic Visions of the City

Speculative urban design using machine learning and GANs, visualized with X/Y plotters.

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

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.

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

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

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.

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

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

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

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

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

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.