MC.

Softwareentwickler in Graz

01 / Projekte

Projekte

THINK AHEAD!

Eine Website für ein gemeinnütziges Lernbrettspiel aus Graz, das Jugendliche auf das Leben nach der Schule vorbereitet – mit Themen rund um (Aus-)Bildung, Finanzen, Gesundheit und Wohnen.

  • Nuxt
  • Vue
  • TypeScript
  • UnoCSS
  • Nitro
  • Umami
Projektdetails ansehen
Dunkle Retro-Vorschau von THINK AHEAD! mit anthrazitfarbenem Fenster, einfachem Spielbrett und Fragekarten.Illustration von THINK AHEAD! in Creme und Rotorange.

Mein Beitrag

Entwicklung der responsiven Nuxt-/Vue-Website mit TypeScript, wiederverwendbaren UI-Komponenten, typisierten Inhaltsmodellen und UnoCSS-Design-Tokens. Umsetzung eines datengetriebenen Quiz mit Schwierigkeitsstufen, zufälliger Fragenauswahl, Punkteauswertung und Tastatur-Fokusmanagement. Integration einwilligungsabhängiger Umami-Ereigniserfassung über einen serverseitigen Nitro-Endpunkt mit Payload-Validierung und Berücksichtigung von Datenschutzeinstellungen des Browsers. Konfiguration seitenspezifischer SEO-Metadaten, kanonischer URLs, strukturierter Daten und XML-Sitemap-Generierung.

Technisches Ergebnis

Eine komponentenbasierte Website, die Spiel, Quiz und herunterladbare Materialien zusammenführt. Optimierung der Ladegeschwindigkeit durch komprimierte WebP-Bilder und selbst gehostete variable Schriftarten; Verbesserung von Benutzerfreundlichkeit und Barrierefreiheit durch responsive Layouts, semantisches Markup, Tastaturnavigation und Unterstützung reduzierter Bewegung.

Projekt öffnen

ALiVE — Dialogues Across Time

Ein lokal gehosteter Forschungsprototyp für immersives Geschichtslernen, entwickelt im Rahmen meiner Masterarbeit an der TU Graz. Mit ALiVE lassen sich historische Persönlichkeiten auf Basis hochgeladener Dokumente erstellen und über quellenbasierte Antworten, Sprachausgabe und animierte 3D-Avatare erleben.

  • Python
  • Flask
  • LangChain
  • FAISS
  • llama.cpp
  • Next.js
  • React
  • TypeScript
  • drei
  • Coqui TTS
  • Docker
  • RAGAS
Projektdetails ansehen
Dunkle Retro-Illustration von ALiVE mit anthrazitfarbenem Fenster, Einstein-Avatar im Pixelstil, Gespräch und Quelldokumenten.Illustration von ALiVE in Creme und Rotorange.

Mein Beitrag

Entwicklung einer Python-/Flask-REST-API mit 17 Endpunkten und eines TypeScript-Frontends mit Next.js und React. Umsetzung von PDF-/Textimport, konfigurierbarem Chunking und Embeddings sowie persistierten FAISS-Indizes pro Persönlichkeit und Retrieval-Konfiguration. Integration lokaler Mistral-7B-Inferenz über llama.cpp und eines optionalen OpenAI-Backends, ergänzt um kontextbezogene Informationssuche und Persona-Prompts mit LangChain. Verknüpfung der Coqui-TTS-Audiowiedergabe mit Ruhe- und Sprechanimationen für glTF-Avatare mithilfe von drei.

Technisches Ergebnis

Eine mit Docker containerisierte Anwendung, die Dokumentenverarbeitung, LLM-Inferenz, Sprachsynthese und 3D-Darstellung verbindet. Wiederverwendbare Vektorindizes vermeiden wiederholte Dokumentenaufbereitung; einstellbare Retrieval-Parameter und sichtbare Quellenauszüge machen den RAG-Ablauf nachvollziehbar. Evaluation der Retrieval- und Antwortqualität mit einem automatisierten RAGAS-Benchmark.

Masterarbeit lesen

Molekülstruktur-Klassifikation

Ein universitäres Teamprojekt mit drei Mitwirkenden zum Einsatz von Machine Learning für die Klassifikation von Molekülstrukturen. Wir trainierten Modelle auf unterschiedlichen Molekülrepräsentationen: gerenderten Strukturbildern, Morgan-Fingerprints und numerischen 2D-/3D-Deskriptoren aus SMILES-Zeichenketten. Das Projekt vergleicht bild- und merkmalsbasierte Ansätze, einschließlich Dimensionsreduktion mit PCA.

  • Python
  • RDKit
  • Mordred
  • TensorFlow
  • Keras
  • scikit-learn
  • pandas
  • NumPy
Projektdetails ansehen
Dunkle Retro-Illustration der Molekülstruktur-Klassifikation mit einem Molekül, einem neuronalen Netz und Balken für Klassenvorhersagen in einem anthrazitfarbenen Fenster.Illustration von Molekülstruktur-Klassifikation in Creme und Rotorange.

Mein Beitrag

Implementierung der SMILES-Vorverarbeitung, Molekülbildgenerierung und 2D-/3D-Deskriptorberechnung mit RDKit und Mordred, einschließlich Filterung ungültiger Strukturen und Deskriptorfehler. Entwicklung und Training von TensorFlow-/Keras-Klassifikatoren: ein Bild-CNN und vollvernetzte Netze mit 512-Bit-Morgan-Fingerprints, optionalen Moleküldeskriptoren und einer PCA-Variante mit 64 Komponenten. Integration von Dropout und L2-Regularisierung, Modellspeicherung, Trainings-/Vorhersagebefehlen, CSV-Exporten für Batch-Vorhersagen sowie Shell-Skripten zur Automatisierung von Vorverarbeitung und Modelltraining.

Technisches Ergebnis

Sieben Trainingskonfigurationen umfassen ein Bild-CNN sowie Fingerprint-Netze mit optionalen 2D-/3D-Deskriptoren und PCA. Gespeicherte Modelle, Trainingskurven, Metriken pro Durchlauf und CSV-Vorhersageexporte machen die Experimente nachvollziehbar und wiederverwendbar. Der Ablauf verbindet molekulare Rohdaten mit Merkmalsberechnung, Training und Inferenz für neue Strukturen.

FindMyGenre

Eine Musik-App mit Machine Learning, entwickelt von unserem dreiköpfigen Universitätsteam. Wir trainierten und verglichen drei neuronale Netzansätze auf Basis von Audiomerkmalen des Free Music Archive, um Aufnahmen einem von 16 Genres zuzuordnen. Über die React-Native-App lassen sich Musik aufnehmen, Modellvorhersagen vergleichen und ähnliche Titel entdecken.

  • React Native
  • Expo
  • JavaScript
  • Python
  • Flask
  • pandas
  • PyTorch
  • TensorFlow
  • librosa
Projektdetails ansehen
Dunkle Retro-Illustration von FindMyGenre mit einem Smartphone bei der Audioaufnahme, einer Jazz-Genrevorhersage und vorgeschlagenen Titeln.Illustration von FindMyGenre in Creme und Rotorange.

Mein Beitrag

Entwicklung des React-Native-/Expo-Frontends für die ML-Pipeline des Teams mit wiederverwendbaren Screens und Komponenten, Navigation, Mikrofonberechtigungen, Audioaufnahme und -wiedergabe sowie Verwaltung des Aufnahmezustands. Anbindung der Audioaufnahmen an die Flask-Inferenz-API und Umsetzung der Oberfläche zum Vergleich von drei Klassifikatoren. Implementierung des Genre-Such-Endpunkts auf Basis von FMA-Metadaten sowie Integration ähnlicher Titel, von Ladezuständen und externen Songlinks.

Technisches Ergebnis

Training eines vollvernetzten Netzes und eines 2D-CNN von Grund auf mit PyTorch sowie Fine-Tuning eines auf ImageNet vortrainierten DenseNet201 mit TensorFlow/Keras auf MFCC-Audiomerkmalen. Die Trainingspipeline nutzt stratifizierte Trainings-/Testaufteilungen und Resampling zur Klassenbalancierung; die Evaluation erfolgt über Genauigkeits- und Verlustkurven sowie Konfusionsmatrizen. Integration der vom Team trainierten Modelle in den Ablauf von der Aufnahme bis zur Vorhersage, ergänzt um die Suche nach ähnlichen Titeln über Kosinusähnlichkeit.

Beyond Catastrophe

Ein Top-down-Survival-Spiel im Pixel-Art-Stil, entwickelt von unserem fünfköpfigen Universitätsteam mit Unity. In einer von Klimakatastrophen und Ressourcenkonflikten geprägten Welt verbindet der Prototyp Erkundung, Gegenstandsverwaltung und Überlebensmechaniken, die von Tag-Nacht-Zyklen, Jahreszeiten und Temperatur beeinflusst werden.

  • Unity
  • C#
  • 2D Physics
  • Tilemaps
  • Unity UI
  • WebGL
Projektdetails ansehen
Dunkle Retro-Illustration von Beyond Catastrophe mit einer Spielfigur aus der Vogelperspektive, einem Unterschlupf, winterlicher Landschaft und Überlebensstatusanzeigen.Illustration von Beyond Catastrophe in Creme und Rotorange.

Mein Beitrag

Gemeinsame Projektleitung und Entwicklung der C#-/Unity-Spielsysteme. Mitarbeit an Spielerbewegung und richtungsabhängigen Sprites, Kameraführung, Gegenstands- und Inventarinteraktionen sowie Statusmechaniken. Verknüpfung von Szenenübergängen, szenenübergreifender Zustandserhaltung und Umgebungssystemen zum Spielablauf sowie Abstimmung von Aufgaben und Entwicklungsmeilensteinen im Team.

Technisches Ergebnis

Ein Unity-Prototyp, der Erkundung mit Inventar, Verbrauchsgegenständen, Ausrüstung, Schlafen und temperaturabhängigem Überleben verbindet. Additives Laden von Szenen ermöglicht Übergänge zwischen Gebieten; Tag-Nacht- und Jahreszeitensysteme beeinflussen Beleuchtung und Umgebungstemperatur. Das Team erstellte außerdem ein Game Design Document mit Mechaniken, Handlung, Barrierefreiheitszielen und Entwicklungsplanung.

CHC Verification Tool

Ein Kommandozeilenwerkzeug zur formalen Programmverifikation, entwickelt im Rahmen meiner Bachelorarbeit an der TU Graz. Es übersetzt Programme in einer Boogie-ähnlichen Sprache in Constrained Horn Clauses und prüft mit Z3, ob ihre Zusicherungen unter den gegebenen Annahmen gelten.

  • Scala
  • Parser combinators
  • Python
  • Z3
  • CHCs
Projektdetails ansehen
Dunkle Retro-Illustration des CHC Verification Tools mit einer Pipeline vom Programmcode über Klauseln zu Z3 und einem Terminal mit erfüllbarem Ergebnis.Illustration von CHC Verification Tool in Creme und Rotorange.

Mein Beitrag

Implementierung des Scala-Parsers mit Parser-Kombinatoren und Case Classes zur Darstellung des abstrakten Syntaxbaums. Umsetzung der rekursiven Transformation auf Basis schwächster liberaler Vorbedingungen für Zuweisungen, Verzweigungen, Schleifen und Prozeduraufrufe. Implementierung von Klauselvereinfachung und Variablenumbenennung unter Berücksichtigung der Gültigkeitsbereiche zur Normalisierung der erzeugten Formeln. Generierung und Ausführung von Python-Code mit der Z3-API, einschließlich Deklarationen für Prädikate und Schleifeninvarianten sowie Unterstützung für Ganzzahl- und konfigurierbare Bitvektor-Arithmetik.

Technisches Ergebnis

Eine automatisierte Pipeline vom Quelltext bis zum Solver-Ergebnis mit einsehbaren Zwischenschritten. Das Werkzeug meldet sat, unsat oder unknown und gibt verfügbare Modelle und abgeleitete Schleifeninvarianten aus. Überprüfung anhand gültiger und fehlerhafter Beispielprogramme sowie Untersuchung der Laufzeitgrenzen des Solvers.

Dunkle Portfolio-Illustration mit Desktop-Fenster, Porträt, Seitennavigation, Karrierebereichen und Kommandozeile.Portfolio-Illustration in Creme und Rotorange mit Desktop-Fenster, Porträt, Seitennavigation, Karrierebereichen und Kommandozeile.

Portfolio — Retro Edition

Ein zweisprachiges Portfolio mit einer minimalistischen Startseite und einer Retro-Oberfläche im Stil klassischer Desktop-Anwendungen. Mit animierten SVG-Vorschauen, Kommandozeile und CRT-Übergängen sowie automatisierten Browser- und Integrationstests.

  • Nuxt
  • Vue
  • TypeScript
  • UnoCSS
  • i18n
  • SVG
  • View Transitions
  • Playwright
  • node:test
Projektdetails ansehen

Mein Beitrag

Umsetzung beider Oberflächen mit Nuxt, Vue, TypeScript und UnoCSS auf Basis gemeinsamer Inhaltsmodelle, deutscher und englischer Übersetzungen sowie wiederverwendbarer Vorschau-Komponenten. Entwicklung animierter SVG-Illustrationen, umdrehbarer Vorschaukarten mit Website-Screenshots, des Design-Inspektors und der View-Transition-Effekte. Ergänzung von Playwright-Tests für Chromium und WebKit sowie Node.js-Unit- und HTTP-Integrationstests für Routing, SEO, Einstellungen und Zwischenablage-Funktionen.

Technisches Ergebnis

Inhalte werden einmal gepflegt und in zwei responsiven Oberflächen dargestellt. Automatisierte Prüfungen decken Navigation, Dialoge, Tastaturfokus, Touch-Bedienung, gespeicherte Sprach- und Designeinstellungen, reduzierte Bewegung und die Wiedergabe der Vorschauanimationen ab. Gemeinsame Komponenten sorgen für einheitliche Interaktionen; serverseitig gerenderte Metadaten und lokalisierte Routen machen jede Seite direkt erreichbar.

02 / Publikationen

Publikationen

Immersive learning in history education: Exploring the capabilities of virtual avatars and large language models

Steinmaurer, A., Dengel, A., Comanici, M., Buchner, J., Memminger, J., & Gütl, C.

Gewinner des Best Short Paper Award

Publikationsdetails ansehen
Dunkle Retro-Pixelgrafik mit Forschungsarbeit, neuronalem Netz und goldenem Pokal mit der Aufschrift: Winner of Best Short Paper Award (Gewinner des Best Short Paper Award).Forschungsillustration in Creme und Rotorange mit einer Publikation, neuronalem Netz und Pokal für den Best Short Paper Award.

Steinmaurer, A., Dengel, A., Comanici, M., Buchner, J., Memminger, J., & Gütl, C. (2025). Immersive learning in history education: Exploring the capabilities of virtual avatars and large language models. In J. M. Krüger, D. Pedrosa, D. Beck, M.-L. Bourguet, A. Dengel, R. Ghannam, A. Miller, A. Peña-Rios, & J. Richter (Eds.), Immersive Learning Research Network – 10th International Conference on Immersive Learning, iLRN 2024, Revised Selected Papers (pp. 363–374). Communications in Computer and Information Science (Vol. 2271). Springer Science and Business Media Deutschland GmbH.

DOI öffnen

03 / Kontakt

Lass uns sprechen.

Offen für Projekte Lebenslauf herunterladen