Auto-Git is a cross-platform Electron app that automatically monitors and manages Git repos and writes commit messages and documentation / READMEs using LLMs.
Monitoring & Automatic Commit
– Add any folders as Git repositories: Auto-Git takes care of the initial Git setup if needed.
– Real-time file watching (Chokidar): As soon as files change, changes are detected in a debounce interval and automatically committed to Git.
– Intelligent commit messages: Once a defined line or time threshold is reached, Auto-Git collects all new commits, creates a prompt-optimized input for an Ollama-LLM (qwen2.5-Coder) from their diffs, and replaces the standard commit messages with semantically concise summaries.
README Generation & Repository Description
– At the push of a button or upon initial addition: Auto-Git extracts relevant code files (by size, relevance score, .gitignore rules) and feeds them into an LLM prompt to automatically create or update a complete, well-structured README.md.
– LLM-assisted short description (≤ 255 characters): For each folder, Auto-Git can generate a one-liner project description text in fractions of a second using the same Ollama backend.
Robust Folder Management
– Missing or moved folders are automatically detected (“Needs Relocation”), and by clicking on the sidebar icon, you can assign the new path and restore the original Git state (checked via commit hash).
– Simple drag-and-drop support: Drag folders directly into the app, instantly initialize a Git repo, and set it to monitoring.
– .gitignore management: Typical temporary/IDE/build files are automatically detected (Micromatch + predefined patterns) and added to .gitignore if needed.
Gitea Integration & Push Workflow
– In the settings, a personal Gitea API token can be stored.
– When clicking “Push to Gitea”, Auto-Git checks if the remote repo already exists:
Not available → Create repository (with LLM-generated short description).
Available → Update current description via PATCH.
– Afterwards, the local remote origin is reconfigured, and the current branch including tags is automatically pushed.
Desktop UI & Usability
– Electron & TailwindCSS: Responsive interface with sidebar (filtered list of all monitored folders), central content area (displays all commits paginated, including diff view, snapshot export, and “Jump Here” checkout).
– Sky Mode: Automatic time-dependent background (soft blue during the day, dark blue at night).
– Tray Menu & Tray Icon: App minimized to tray, right-clicking on the tray icon allows quick starting/stopping of monitoring per folder, adding/removing folders, “Quit”.
– Settings Dialog:
> Sky theme on/off
> “Close to Tray”: Hides window when closing, instead of actually quitting the app
> Automatic startup behavior
> Intelligent commit thresholds (lines and minutes)
> Selection of used Ollama models (commit vs. README)
> Store Gitea API token
– Gamification & Live Statistics: Daily counter for commits, color-increasing visualization (“Commits today”), live countdown until the next automatic LLM commit.
Technology Stack
– Frontend: Electron + HTML/CSS + TailwindCSS + a custom minimal-animated “Anime Cat” (client-side cat streaming for LLM responses).
– Backend/Node:
> chokidar for file watching
> simple-git for all Git operations (Init, Status, Commit, Diff, Rebase, Push, Remote Config)
> micromatch & ignore for filtering files/folders
> electron-store for persistence of all settings (including Gitea token, sky mode, thresholds, model selection)
> Tray/Menu integration with native Electron menus and context menus in sidebar/treeview.
All features – from continuous, automatic commit creation to fully automated push-and-repo setup on Gitea – are designed to make developers’ everyday lives easier: You can continue to focus on code while Auto-Git ensures that commit history, documentation, and remote repositories are always up to date.
Smart Furigana
The character 一日 can be read as “いちにち” (“the whole day”), or as ついたち (“the first day of the month”). Depending on the context, the readings of some Kanji differ.
Furigana are a Japanese reading aid. They are Hiragana characters that are written next to or above a Kanji in Japanese writing to indicate its pronunciation.
Conventional Furigana software does not recognize the holistic meaning or context of a text, and is therefore sometimes unable to provide the Furigana in the way a Japanese reader would actually read the text.
However, with AI, this is now possible, which is why I programmed this software. “Smart-Furi” analyzes the text for context, tone, etc., to add the appropriate readings as Furigana to the text – so that one does not learn the readings of the characters incorrectly, but as if a Japanese person were reading the text aloud.
Interface for UNESCOs Lists of "Intangible Cultural Heritage"
The UNESCO project “Intangible Cultural Heritage” (ICH) offers an impressive collection of intangible cultural heritage as well as a register of best protection measures. These can be found on the UNESCO website in English, French, and Spanish, beautifully describing the individual cultural peculiarities of the nations of the world.
As a friend of online ethnology, I have set up a new interface in the form of an interactive world map (JavaScript, OpenStreetMap & GeoJSON). By clicking on a country, you gain insight into the culture of that country as registered by UNESCO (UNESCO Open Access Database). Using the ChatGPT API and Python, I translated the entire database into the 10 most spoken languages in the world. Additionally, I improved/enlarged all images from the database with Topaz AI.
By clicking on the cube, a random entry is displayed. Discover the world!
Note: Not suitable for mobile view
Sources:
UNESCO Open Access Database: Metadata, descriptions, and images from the UNESCO ICH database were used for this project.
OpenStreetMap: The map representation is based on tiles from OpenStreetMap.
GeoJSON World Map: The vector data for the country outlines comes from the open-source GeoJSON project.
IPAPI (ipapi.co): Automatic location determination is done via the API service ipapi.co.
Topaz AI: The images from the UNESCO database were upscaled using Topaz AI.
ChatGPT (OpenAI): The translations of the UNESCO data into 10 languages were created using ChatGPT.
This project is an experimental, non-commercial portfolio project and is for demonstration purposes only. All content (images, texts, titles) is the property of UNESCO. The translations were created using AI (ChatGPT). The map tiles come from OpenStreetMap. There is no connection to UNESCO, OpenStreetMap, or other organizations. The complete UNESCO metadata is available for download in English.
AI-Translate
WordPress plugin to automatically translate pages, posts, and custom type posts as well as their titles and custom fields. The translations are stored in the metadata of the posts. Depending on the selected language, the frontend displays the language under the same URL / post ID. In the Gutenberg editor, there is a small dropdown menu that allows you to switch between languages to make individual changes, and in the backend, unlike with Polylang, there is no confusing duplication of content. The translation is done via ChatGPT, which allows for context-specific translation – by specifying what the tone should be, e.g., polite or informal, and what the focus should be, such as project presentation, marketing, etc., better translations can be obtained.
The code for selecting and processing content is available in a git repository.
Jōyō-Kanji
The 2136 Kanji that are learned in elementary and middle school in Japan, which enable one to read most Japanese texts, along with their translations in German.
The meaning of a word often varies depending on the context. Many terms only arise when multiple Kanji are combined – that’s why the term “you” is not found here, for example. It is composed of 貴 (valuable, noble, precious) and 方 (person).
The question of how to comprehensively categorize a language has proven to be very interesting. The categorization by “school year” is a time-honored Japanese method – but the desire for finer granularity was present to make learning easier.
The Kanji list as a JSON file, the Python codes to create them, as well as the chosen categories can be found below in the git repository.
Painted World - Engine for 3D Figures on Pre-rendered Background Images
Inspired by games where 3D characters walk around in 2D images (games with “Pre-rendered background”) such as Final Fantasy VIII, an engine based on JavaScript to develop such games for the web browser.
Studium zum Thema Künstliche Intelligenz
Von 2015 bis 2019 beschäftigte ich mich während meines Studiums an der Hochschule der Bildenden Künste Saar in Saarbrücken intensiv mit Künstlicher Intelligenz, virtuellen Humanoiden, Mensch-Maschine-Interaktionen sowie den daraus resultierenden philosophischen und kulturellen Fragestellungen. Dabei setzte ich mich sowohl theoretisch als auch praktisch-künstlerisch mit den Grenzen und Missverständnissen im Umgang mit KI-Technologien auseinander.
In meiner Bachelorarbeit „Vergleich zwischen künstlicher und realer Intelligenz“ (2017, Abschlussnote 1.0) erforschte ich, wie digitale Avatare mittels genetischer Algorithmen Lernprozesse simulieren und verglich diese mit den realen Lern- und Schmerz-Erfahrungen eines menschlichen Performers. Die Performance „Learning“ nutzte dafür den optischen Pepper’s-Ghost-Effekt zur räumlichen Darstellung eines digitalen Charakters. Die Ergebnisse zeigten deutlich die emotionale Kluft zwischen technischer Simulation und menschlichem Erleben auf.
In meiner Masterarbeit erweiterte ich diesen Ansatz und beschäftigte mich vertieft mit der Wahrnehmung und Inszenierung von virtuellen Charakteren sowie deren Interaktionen mit Menschen. Unter anderem entstanden folgende Projekte:
Gerkzeuk (2016): Ein computergesteuertes Objekt, das autonom Bilder aus dem Internet herunterlädt, verändert und verkauft. Dieses Objekt stellte grundlegende Fragen nach Autorenschaft, Maschinenethik und der Rolle des Künstlers. Durch eine holografische Darstellung („Iris“) erhielt der maschinelle Künstler zusätzlich eine menschenähnliche Persona. Link zur Projektseite
Pepper’s Ghost Kristalle (seit 2016): Interaktive Vitrinen, die virtuelle Humanoide holografisch abbilden und mit Gesichtserkennungs-, Emotionsanalyse- sowie Spracherkennungssoftware ausgestattet sind. Diese Arbeit forschte intensiv daran, künstliche und menschliche Interaktion greifbar zu machen. Link zur Projektseite
Vergleich zwischen künstlicher und realer Intelligenz (2017): Eine Performance, in der ein digitaler Charakter mittels genetischer Algorithmen parallel zu einem menschlichen Performer versucht, grundlegende motorische Fähigkeiten zu erlernen. Die Arbeit offenbart deutlich die Unterschiede und emotionalen Dimensionen zwischen digitaler Simulation und menschlichem Erleben. Link zur Projektseite
Anti-Art (2019): Eine bewusst simple Apparatur mit einer Marionette, gesteuert durch unvorhersehbare Impulse, die humorvoll und kritisch den Hype um KI-Technologien und deren häufige Überschätzung reflektiert. Link zur Projektseite
Rauminstallation zur Master-Ausstellung (2019): In einer szenografischen Situation setzte ich Besucher einer reflektierenden Interaktion aus, indem sie automatisch fotografiert und ihre Gesichter projiziert wurden, wodurch Themen wie Selbstwahrnehmung, Datenschutz und Echokammern greifbar wurden. Link zur Projektseite
Diese Projekte wurden begleitet von theoretischen Reflexionen zu Transparenz im Design, Black Box-Problematik, zufälligen und deterministischen Systemen sowie ethischen und philosophischen Dimensionen von KI. Inspiriert von Referenzen wie Frieder Nake, Andrew Glassner und Richard David Precht, setzte ich mich kritisch mit Begriffen und Missverständnissen rund um künstliche Intelligenz, künstliches Leben und Bewusstsein auseinander.
Aus meiner künstlerischen Forschung ergaben sich folgende zentrale Erkenntnisse:
KI-Technologien können menschliches Verhalten zwar nachahmen, erzeugen dabei jedoch keine echte emotionale Tiefe oder authentische Empathie. Die von Maschinen erzeugte Illusion menschlicher Interaktion bleibt in ihrer Wirkung stets auf einer oberflächlichen Ebene.
Der Missbrauch metaphorischer Begriffe aus Biologie und Neurowissenschaften in der Technologie (wie “Neuronales Netz” oder “Intelligenz”) trägt maßgeblich zu Missverständnissen und einer mythischen Überhöhung technischer Möglichkeiten bei.
Der Einsatz von Transparenzdesign und die Offenlegung technischer Prozesse sind essenziell, um Ängste abzubauen und kritisches Denken gegenüber modernen Technologien zu fördern.
Zufälligkeit und Unvorhersehbarkeit in technischen Systemen erzeugen oftmals eine Wahrnehmung von Magie oder Autonomie, die zur Überinterpretation technischer Fähigkeiten führen kann.
Die kulturelle und gesellschaftliche Rezeption von KI-Technologien und virtuellen Charakteren ist stark beeinflusst von Projektionen und Fantasien, die tief verwurzelt sind in unserer psychologischen Tendenz, menschenähnliche Eigenschaften in technischen Artefakten wahrzunehmen.
Trotz der scheinbaren Eigenständigkeit von Software und Maschinen liegt die Verantwortung stets beim Menschen, der diese Systeme entwirft, programmiert und bedient. Maschinen und Software bleiben immer Werkzeuge und werden niemals selbst zu eigenständigen Subjekten.
Die Frage nach der Bedeutung von “Leben” gewinnt durch die Beschäftigung mit autonomen und selbstreproduzierenden Programmen wie der „Forkbomb“ an neuer Tiefe und fordert die klassischen biologischen Definitionen heraus.
In psychologischer Hinsicht zeigt sich in der Arbeit von Wissenschaftlern, IT-Technikern und Künstlern oft eine unbewusste Motivation, künstliche Wesen zu erschaffen, vergleichbar mit dem in der Psychologie diskutierten “Gebärmutterneid”. Hier spiegelt sich das tiefe Bedürfnis wider, selbst schöpferisch Leben oder lebendige Systeme hervorzubringen.
Objektorientiertes Programmieren eröffnet die Möglichkeit, virtuelle Welten nachzubauen, und lädt zur Reflektion über die Grenzen zwischen Realität und Simulation ein.
Meine Arbeit zwischen 2015 und 2019 stellt somit eine vielseitige, kritische und innovative Auseinandersetzung mit Menschlichkeit, Technologie und ihren komplexen Beziehungen dar und möchte dazu beitragen, den öffentlichen Diskurs zu diesen Themen fundiert und reflektiert zu gestalten.
Cubemap Creator
Python script to generate skybox image maps in rectangular format from equirectangular images, as well as a setup for Blender to render equirectangular image maps.
With the Blender setup, an equirectangular HDRI can be rendered from a 3D environment, like the following:
.. to then convert this into a cubemap with the Python script…
… so that this can be used in game engines like Verge3D or Goldsource.
ba.pbr.vmt.qc.mdl.exe
This is a tool designed to make it easier to implement 3D models into Valve Software’s Source game engine, better to say, KAFF Softwares port of that engine with support for physically based rendering. It offers a pipeline to compile .smd 3D mesh data and .png or .tga pixel textures to .mdl with PBR materials by simply dragging and dropping a 3D model and its set of textures onto the program for it to compile it for the Source Engine. Here’s what it does: – Create a PBR texture map from a metallic, a roughness, and an ambient occlusion map – Wrap VTFCmd.exe to generate Source engine compatible .vtf texture files from images and a .vmt material descriptor file – Generate model and texture mapping descriptor .qc file, necessary for compilation of 3D model with textures – Wrap studiomdl.exe to compile Source engine compatible binary .mdl and .phy files from .smd and .qc files among others – the file formats which are expected by the engine
Drag & drop texture images on the tool to generate specific PBR-materials that can be used in the production of the game Boreal Alyph. The first three added textures will be merged into a single texture map, one texture per color channel (metallic, roughness, ambient occlusion). For each of these, the tool offers the option for color inversion before merging them. The tool then asks for an albedo-, normal- and height-texture map, converts everything to .vtf and writes a corresponding .vmt with the use of vtfcmd.exe. As last step, the tool asks for .smd 3D model files. It then generates a .qc corresponding to the models and textures and then compiles the model .mdl and .phy files (among others) by controlling studiomdl.exe.
Example model used:
A mesh of a wooden pallet with textures for real time physically based rendering and a collision hull mesh. Blender can export mesh data in .smd format. So this is what we got as input:
And this is what the tool makes out of it, which is (Boreal Alyph) Source Engine compatible:
Simple Ontology
Define truth! Create your own node-network graphs, also known as ontologies.
Tool for creating ontological network topologies, written in Java. Has the functionality to save and load and export images. Smallest alternative to Protégé, ONTOLIS, or OntoStudio.
Privacy Policy
A cookie has been stored. Its name is "lang", it is 6 bytes in size, lasts three days, and is technically necessary because it can remember which language you prefer. Do not harm it!