Skip to content
English
All posts

Dynaweek 6

 
Dynaweek

 

DynaWeek #6

Hackathon week 2023

Year
2023
 
Project type
Prototyping

 

Basic idea

Every year, we spend a week on internal projects to test our own ideas and explore new technologies. The focus is on having fun and business has to give way to the urge to play. For five days, we simply do what we want. Here is a short compilation from the year 2023.

 

Watts UP

An efficient tool for planning solar roof systems

The whole story

The idea developed from the need for an efficient tool for planning solar roof systems. Existing solutions in this field were often not only expensive, but also lacked the desired functionality. The team members were also motivated to remain true to their commitment to green tech.

The result was an open source tool for planning solar roof systems by analyzing shadow patterns on your own property. This allows suitable positions for solar panels to be identified. In addition, a 3D model of the property is displayed and individual roofs can be marked. This makes it possible to start detailed solar planning for each individual roof in order to install efficient solar systems.

Watts up

Technologies

Google Solar APIChakraUI
Three.js 
Next.js
 

Activities

Software developmentDevOpsUI-design

 

Your Story

An interactive browser game with the power of ChatGPT

The whole story

Curiosity was aroused when the question arose as to how far the creative capabilities of ChatGPT could be utilized in an interactive experience. Developing a story in a browser game, where the player controls the action through choices, presented itself as an intriguing opportunity to explore the limits of ChatGPT while providing an entertaining gaming experience.

In this project, an immersive browser game was created in which players use ChatGPT to shape a unique story. Based on a bullet-point 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 field of ChatGPT and prompt engineering.

 

Your story

 

Technologies

ChatGPTNext.jsJavascript clientPostgresQL database
Open APIVercel
 

Activities

CodingGameDesignPrompt Engineering

 

Chek Ur Defense

A tower defense game with Godot

The whole story

The passion for game design & development laid the foundation for the project 'ChEK UR DEFENSE'. In this project, a small tower defense game was developed, based on the well-known game 'Plants vs. Zombies'. The player's aim is to prevent the approaching hordes of enemies from reaching the 'target zone' by cleverly placing towers. The well thought-out generation and spending of gold as a central resource is a core element of the game and determines victory or defeat. Within several levels, the player can place towers that either cause direct damage to enemies, slow down the enemy or generate gold directly but do not cause any damage.

The development of 'ChEK UR DEFENSE' allowed those involved to gain diverse and in-depth insights into the various areas of game development, from the design of appealing scalable vector graphics and animations to the development of advanced collision detection methods. The exciting challenge of dealing with an unfamiliar programming language and learning new technologies made the game a welcome challenge.

 

Check ur defense

 

Technologies

GODOTC#

Jason

Activities

Source code managementcodingGamedesign
Animation
 

 

pixel poet

Product search with images for online stores

The whole story

We have investigated the following questions

  • Is it possible to use a Large Language Model (LLM) to realize an online store image search that reliably delivers good product results?
  • Can LLM be used to enrich product descriptions with product images?
  • Is the search performant enough?
  • What costs should you expect?

We examined 4 different models. We came to the following conclusions:

OpenCLIP image-to-text

  • Length of the image description is not sufficient to achieve accurate results
  • Image description contains too few details
  • Good for image-captions or alt-texts
  • Not suitable for image-based searches

OpenCLIP image-to-image

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

OpenAI Vision

  • Very slow (> 10s)
  • Quality surprisingly good and consistent
  • Also delivers good JSON output
  • Cannot use bounding boxes =/

Qwen-VL (Alibaba)

  • Response times slow: ~ 3-8 seconds
  • Descriptions vary a lot
  • Partly detailed - sometimes 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 can be used for a high-quality image search. However, this is actually very slow. Clip-ViT-B-32 for the search and Qwen for bounding boxes are also very slow. So you have to pay a lot or wait until something appears on hugging face.

 

 

pixel poet

 

Technologies

Qwn-vlJupyter Notebook OpenclipNest.js
Open API VisionJSON
 
Activities
Research RepositoryMachine learningLean Cycle

 

Linux drivers in Rust

An Xbox One controller Linux driver in Rust

The whole story

Development of an Xbox One controller driver in Rust for the Linux kernel

We wanted to develop a Linux kernel driver in Rust. In order to have an actionable goal, we wanted to develop a driver that would make an Xbox One controller run on Linux. To do this, we looked at the current status of Rust in the Linux kernel. Which bindings exist and how can we compile and load our own, so-called out-of-tree modules for Linux.
 

Why develop an Xbox One controller driver in Rust for the Linux kernel?

On the one hand, there is an interest in driver development under Linux. How exactly does it work? What do you need for it? On the other hand, there is an interest in Rust as a modern and secure alternative to C. Since Rust is currently being used more and more in the Linux kernel, two interests could be pursued at once.

 

How did we proceed?

We set up a VM with a Linux distribution that relies on a current Linux kernel (Linux 6.6 at the time of development). We compiled a Linux kernel and started it in order to load our own modules.
 

Findings and challenges

Although Rust has been officially supported in the kernel since Linux 6.1, support is currently limited to enabling in-tree kernel modules. In concrete terms, this means that components of the kernel itself should be enabled in Rust. Out-of-tree modules are possible, but there are currently not so many bindings that you can usefully start here if you cannot or do not want to build your own bindings for C functions. In addition, the distributions are not yet prepared for Rust kernel modules to be built subsequently, as the "linux-header" packages, which serve as a kind of SDK for the kernel, do not yet provide any Rust configurations that are required to compile Rust kernel modules for the Linux kernel. This makes it necessary to compile the kernel itself in order to have the necessary configurations, as these are generated when the kernel is compiled.
linux-driver-rust

 

Technologies

RustLinuxDriver
 

Activities

CodeKernel