picture showcasing the project

DynaWeek #6
Hackathon Week 2023

Year
2023
Projecttype
Prototyping

The DynaWeek

Every year, we spend a week working on internal projects to test our own ideas and explore new technologies. Fun takes precedence, and economic considerations give way to the spirit of play. For five days, we simply do what we want. Here's a brief compilation from the year 2023.

Watts UP

An efficient tool for planning solar roof installations

The whole story

The idea emerged from the need for an efficient tool for planning solar roof installations. Existing solutions in this field were often not only expensive but also lacked the desired functionality. The team members were motivated to stay true to their commitment to Green Tech.


An open-source tool for planning solar roof installations was created by analyzing shadow patterns on one's own property. This allows the identification of suitable positions for solar panels. Additionally, a 3D model of the property is displayed, and individual roofs can be marked. This enables detailed solar planning for each roof, facilitating the installation of efficient solar systems.

Technologien

GOOGLE SOLAR API
NEXT.JS
CHAKRA UI
THREE.JS

Tätigkeiten

CODING
DEVOPS
UI DESIGN

Your Story

An interactive browser game powered by ChatGPT

The whole story

Curiosity was sparked by the question of how far the creative capabilities of ChatGPT could be utilized in an interactive experience. Developing a story in a browser game where players control the narrative through decisions seemed like a fascinating way to explore the limits of ChatGPT and provide an entertaining gaming experience.


In this project, an engaging browser game was created where players shape a unique story with the help of ChatGPT. Based on a bulleted character description, players make decisions after each chapter that influence the course of the story. The system not only generates the progression of the plot but also an avatar image of the character, as well as scenic background and plot images. The result is an interactive experience that utilizes research in the ChatGPT and Prompt Engineering fields.

Technologien

CHATGPT
OPENAI
NEXT.JS
JAVASCRIPT CLIENT
POSTGRESQL DATABASE
VERCEL

Tätigkeiten

PROMPT ENGINEERING
GAME DESIGN
CODING

Explore 'Your Story'

ChEK UR DEFENSE

A Tower Defense Game with Godot

The whole story

Passion for game design and development laid the foundation for the 'ChEK UR DEFENSE' project. In this project, a small Tower Defense game was developed, inspired by the popular game 'Plants vs. Zombies'. The player's goal is to cleverly place towers to prevent approaching enemy hordes from reaching the 'goal zone'. Well-thought-out generation and expenditure of gold as a central resource are core elements of the game and determine victory or defeat. Across multiple levels, players can place towers that either directly damage enemies, slow down enemies, or generate gold directly but do not cause damage.


The development of 'ChEK UR DEFENSE' allowed participants to gain diverse and profound insights into various aspects of game development, from designing appealing scalable vector graphics and animations to developing advanced collision detection methods. The exciting challenge of dealing with an unfamiliar programming language and learning new technologies made the game a welcome challenge.

Technologien

C#
GODOT
JSON

Tätigkeiten

SOURCE CODE MANAGEMENT
ANIMATIONS
CODING
GAME DESIGN

Pixel Poet

Product search with images for online shops

The whole story

We examined the following questions:
  • Can an online shop image search be realized reliably using a Large Language Model (LLM) that delivers good product results?
  • Can LLM enrich product descriptions based on product images?
  • Is the search performant enough?
  • What costs can be expected?

We have examined 4 different models. Here are the results:

OpenCLIP image-to-text

  • Length of the image description is not sufficient to achieve precise results.
  • Image description lacks detail.
  • Good for image captions or alt-texts.
  • Not suitable for image-based search.

OpenCLIP image-to-image

  • Very fast (milliseconds?).
  • Not suitable for image-based search.

OpenAI Vision

  • Very slow (> 10s).
  • Surprisingly good and consistent quality.
  • Provides good JSON output.
  • Cannot handle bounding boxes =/

Qwen-VL (Alibaba)

  • Response times slow: ~ 3-8 seconds.
  • Descriptions vary greatly.
  • Sometimes detailed - occasionally Chinese characters in the description.
  • Sometimes very short and unusable.
  • E.g., “black boots on white background”.
  • Good results for bounding boxes.
  • JSON output possible but not consistent (enough?).

clip-ViT-B-32

  • Best image-to-image search outside of OpenAI Vision.
  • Few tokens for text-to-image search.
  • Good performance.

Conclusion

Of the models tested here, only OpenAI Vision is usable for high-quality image search. However, it is indeed very slow. With some compromises, clip-ViT-B-32 is suitable for searching and Qwen for bounding boxes. So, you either have to pay a good amount or wait until something appears on Hugging Face.

Technologien

QWEN-VL
OPENAI VISION
NESTJS
JUPYTER NOTEBOOK
JSON
OPENCLIP

Tätigkeiten

RESEARCH REPOSITORY
LEAN CYCLE
MASHINE LEARNING

Linux Driver in Rust

An Xbox One Controller Linux Driver in Rust

Development of an Xbox One Controller Driver in Rust for the Linux Kernel

We wanted to develop a Linux kernel driver in Rust. To have a tangible goal, we aimed to develop a driver that makes an Xbox One controller functional under Linux. For this, we examined the current state of Rust in the Linux kernel, including existing bindings and how to compile and load our own out-of-tree modules for Linux.

Why develop an Xbox One Controller Driver in Rust for the Linux Kernel?

On one hand, there's an interest in driver development under Linux—how does it work? What do you need for it? On the other hand, there's an interest in Rust as a modern and secure alternative to C. Since Rust is increasingly making its way into the Linux kernel, this allowed us to pursue two interests at once.

How did we proceed?

We set up a virtual machine with a Linux distribution that relies on a current Linux kernel (Linux 6.6 at the time of development). Within it, we compiled a Linux kernel and started it to load our own modules.

Insights and Challenges

Although Rust has been officially supported in the Linux kernel since Linux 6.1, the support currently heavily focuses on enabling in-tree kernel modules. Specifically, this means parts of the kernel itself should be enabled for Rust. Out-of-tree modules are possible, but there are currently not many bindings, making it challenging to approach if you cannot or do not want to build your own bindings for C functions. Additionally, distributions are not yet prepared for building Rust kernel modules afterward, as the 'linux-header' packages, which serve as the SDK for the kernel, do not yet provide Rust configurations needed to compile Rust kernel modules for the Linux kernel. This necessitates compiling the kernel itself to have the necessary configurations, as they are generated during kernel compilation.

Technologien

RUST
LINUX
DRIVER

Tätigkeiten

CODING
KERNEL

TALK TO US
ABOUT YOUR IDEA

Let's talk about how we can help
Norman Wenk
Managing Director
By submitting this form, I consent to the processing of the personal data provided by me personal data provided by dynabase GmbH in accordance with the Privacy Statement.

TALK TO US
ABOUT YOUR IDEA