picture showcasing the project

DynaWeek #6
Hackathon-Woche 2023

Jahr
2023
Projektart
Prototyping

Die DynaWeek

Jedes Jahr machen wir eine Woche lang interne Projekte zum Testen eigener Ideen und Erforschen neuer Technologien. Dabei steht der Spaß im Vordergrund und das wirtschaftliche muss dem Spieltrieb weichen. Fünf Tage lang machen wir einfach nur das was wir wollen. Hier ist eine kurze Zusammenstellung aus dem Jahr 2023.

Watts UP

Ein effizientes Werkzeug zur Planung von Solardachanlagen

Die ganze Story

Die Idee entwickelte sich aus dem Bedarf nach einem effizienten Werkzeug zur Planung von Solardachanlagen. Bestehende Lösungen in diesem Feld waren oft nicht nur teuer, sondern verfügten auch nicht über die gewünschte Funktionalität. Motivation der Team-Mitgliedern war es zudem, dem Engagement für Green Tech treu zu bleiben.


Es entstand ein Open Source Werkzeug zur Planung von Solardachanlagen durch die Analyse von Schattenverläufen auf dem eigenen Grundstück. Dadurch können geeignete Positionen für Solarpaneele identifiziert werden. Zusätzlich wird ein 3D-Modell des Grundstücks angezeigt und einzelne Dächer können markiert werden. Dies ermöglicht es, eine detaillierte Solarplanung für jedes einzelne Dach zu starten, um effiziente Solaranlagen installieren zu können.

Technologien

GOGLE SOLAR API
NEXT.JS
CHAKRA UI
THREE.JS

Tätigkeiten

CODEN
DEVOPS
UI-DESIGN

Your Story

Ein interaktives Browser Game mit der Kraft von ChatGPT

Die ganze Story

Neugierde wurde geweckt, als die Frage aufkam, wie weit die kreativen Fähigkeiten von ChatGPT in einem interaktiven Erlebnis genutzt werden könnten. Die Entwicklung einer Geschichte in einem Browser-Game, in dem der Spieler durch Entscheidungen die Handlung steuert, bot sich als faszinierende Möglichkeit an, die Grenzen von ChatGPT zu erkunden und gleichzeitig ein unterhaltsames Spielerlebnis zu bieten.


In diesem Projekt wurde ein packendes Browser-Game erschaffen, in dem die Spieler mit Hilfe von ChatGPT eine einzigartige Geschichte formen. Auf der Grundlage einer stichpunktartigen Charakterbeschreibung treffen die Spieler nach jedem Kapitel Entscheidungen, die den Verlauf beeinflussen. Das System generiert dabei nicht nur den Fortgang der Handlung, sondern auch ein Avatarbild des Charakters sowie szenische Hintergrund- und Handlungsbilder. Das Ergebnis ist ein interaktives Erlebnis, das Forschungen im Bereich ChatGPT und Prompt Engineering nutzt.

Technologien

CHATGPT
OPENAI
NEXT.JS
JAVASCRIPT-CLIENT
POSTGRESQL-DATENBANK
VERCEL

Tätigkeiten

PROMPT ENGINEERING
GAME DESIGN
CODEN

Entdecke "Your Story"

ChEK UR DEFENSE

Ein Tower Defense Game mit Godot

Die ganze Story

Die Leidenschaft für Gamedesign & Entwicklung legt den Grundstein für das Projekt 'ChEK UR DEFENSE'. In diesem Projekt wurde ein kleines Tower Defense Spiel entwickelt, angelehnt an das bekannte Spiel 'Plants vs. Zombies'. Das Ziel des Spielers ist es, durch kluge Platzierung von Türmen die nahenden Gegnerhorden vor dem Erreichen der 'Zielzone' zu hindern. Das durchdachte Generieren und Ausgeben von Gold als zentrale Ressource ist dabei ein Kernelement des Spiels und entscheidet über Sieg oder Niederlage. Innerhalb mehrerer Level kann der Spieler Türme platzieren, die entweder direkten Schaden an Gegnern verursachen, den Gegner verlangsamen oder direkt Gold generieren, aber dafür keinen Schaden verursachen.


Die Entwicklung von 'ChEK UR DEFENSE' ermöglichte es den Beteiligten, vielfältige und tiefgreifende Einblicke in die verschiedenen Bereiche der Spielentwicklung zu erlangen, von der Gestaltung ansprechender skalierbarer Vektorgrafiken und Animationen bis hin zur Entwicklung fortschrittlicher Kollisionserkennungsmethoden. Die spannende Herausforderung, sich mit einer ungewohnten Programmiersprache auseinanderzusetzen und neue Technologien zu erlernen machten das Spiel zur einer willkommenen Herausforderung.

Technologien

C#
GODOT
JSON

Tätigkeiten

SOURCECODEVERWALTUNG
ANIMATIONEN
CODEN
GAME-DESIGN

pixel poet

Produktsuche mit Bildern für Online-Shops

Die ganze Story

Wir haben folgende Fragestellungen untersucht
  • Kann man mittels Large Language Model (LLM) eine Online-Shop Bildsuche realisieren, die zuverlässig gute Produktergebnisse liefert?
  • Kann man mittels LLM die Artikelbeschreibungen anhand von Produktbilder anreichern?
  • Ist die Suche performant genug?
  • Mit welchen Kosten muss man rechnen?

Wir haben 4 verschiedene Models untersucht. Dabei kamen wir zu folgenden Ergebnissen:

OpenCLIP image-to-text

  • Länge der Bild-Beschreibung reicht nicht aus, um zielgenaue Ergebnisse zu erzielen
  • Bild-Beschreibung enthält zu wenige Details
  • Gut für image-captions oder alt-Texte
  • Nicht geeignet für bildbasierte Suche

OpenCLIP image-to-image

  • Sehr schnell (millisekunden?)
  • Nicht geeignet für bildbasierte Suche

OpenAI Vision

  • Sehr langsam (> 10s)
  • Qualität erstaunlich gut und konsistent
  • Liefert auch guten JSON-Output
  • Kann keine bounding-boxen =/

Qwen-VL (Alibaba)

  • Response-Zeiten langsam: ~ 3-8 Sekunden
  • Beschreibungen variieren sehr
  • Teilweise detailreich - ab und zu chinesische Zeichen in der Beschreibung
  • Teilweise sehr kurz und unbrauchbar.
  • Bspw: “black boots on white background”
  • Gute Ergebnisse für bounding-boxen
  • JSON output möglich, aber nicht konsistent (genug?)

clip-ViT-B-32

  • Beste Bild zu Bild Suche außerhalb von OpenAi Vision
  • Wenig Tokens für Text zu Bild Suche
  • Gute Performance

Fazit

Von den hier getesteten Models ist nur OpenAI Vision für eine hochwertige Bild-Suche nutzbar. Diese ist dann aber tatsächlich sehr langsam. Mit Abstrichen noch clip-ViT-B-32 fürt Suche und Qwen für Bounding Boxes. Man muss also ordentlich zahlen oder warten bis was auf hugging face erscheint.

Technologien

QWEN-VL
OPENAI VISION
NESTJS
JUPYTER NOTEBOOK
JSON
OPENCLIP

Tätigkeiten

RESEARCH REPOSITORY
LEAN CYCLE
MASCHINELLES LERNEN

Linux-Treiber in Rust

Ein Xbox One Controller Linux-Treiber in Rust

Entwicklung eines Xbox One Controller-Treibers in Rust für den Linux-Kernel

Wir wollten einen Linux-Kernel-Treiber in Rust entwickeln. Um ein verfolgbares Ziel zu haben, wollten wir einen Treiber entwickeln, welcher einen Xbox One Controller unter Linux lauffähig macht. Dazu haben wir uns den aktuellen Stand von Rust im Linux-Kernel angeschaut. Welche Bindings existieren und wie können wir eigene, sogenannte Out-of-tree-Module für Linux kompilieren und laden.

Warum die Entwicklung eines Xbox One Controller-Treibers in Rust für den Linux-Kernel?

Auf der einen Seite steht das Interesse für Treiber-Entwicklung unter Linux. Wie genau funktioniert das? Was braucht man dafür? Auf der anderen Seite ein Interesse an Rust als moderne und sichere Alternative zu C. Da Rust aktuell immer mehr Einzug in den Linux-Kernel erhält, konnten so gleich zwei Interessen auf einmal verfolgt werden.

Wie sind wir vorgegangen?

Wir haben eine VM mit einer Linux-Distribution aufgesetzt, die auf einen aktuellen Linux-Kernel setzt (Linux 6.6 zum Zeitpunkt der Entwicklung). Darin haben wir einen Linux-Kernel kompiliert und diesen gestartet, um eigene Module zu laden.

Erkenntnisse und Herausforderungen

Obwohl Rust seit Linux 6.1 offiziell im Kernel unterstützt wird, beschränkt sich die Unterstützung aktuell stark darauf, dass In-Tree-Kernel-Module ermöglicht werden sollen. Konkret heißt das, es Bestandteile des Kernels selbst sollen in Rust ermöglicht werden. Out-of-tree-Module sind möglich, jedoch gibt es aktuell noch gar nicht so viele Bindings, dass man hier sinnvoll ansetzen kann, wenn man sich keine eigenen Bindings für C-Funktionen bauen kann oder will. Außerdem sind die Distributionen noch nicht darauf vorbereitet, dass man Rust-Kernel-Module nachträglich baut, da die „linux-header“ Pakete, welche quasi als SDK für den Kernel dienen, noch keine Rust-Konfigurationen bereitstellen, welche benötigt werden um Rust-Kernel-Module für den Linux-Kernel zu kompilieren. Das macht es erforderlich, dass man den Kernel selbst kompilieren muss, um die nötigen Konfigurationen zu haben, da diese beim kompilieren des Kernels erzeugt werden.

Technologien

RUST
LINUX
TREIBER

Tätigkeiten

CODEN
KERNEL

SPRICH MIT UNS
ÜBER DEINE IDEE

Lass uns reden, wie wir helfen können
Norman Wenk
Geschäftsführer
Durch das Absenden dieses Formulars stimme ich der Verarbeitung der von mir bereitgestellten personenbezogenen Daten durch die dynabase GmbH gemäß der Datenschutzerklärung zu.

SPRICH MIT UNS
ÜBER DEINE IDEE