Dynaweek 7
By
Norman Wenk
·
5 minute read

DynaWeek #7
Hackathon week 2024
⎯
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 2024.
SPOTIMIZER
The playful solution for effortless Spotify playlist management
The whole story
Spotimizer is an application that makes sorting and organizing Spotify playlists a breeze. It is ready to use and offers seamless integration into the Spotify web interface.
Despite its simplicity and good documentation, the Spotify API has some limitations, such as the synchronization of the Spotify interface with the API data. This results in many requests for the smallest changes to the Spotify API. Technical problems with WSL and unexpected interruptions also made the work more difficult.
Spotimizer offers functions such as the dynamic adjustment of rankings by selecting random songs for playlist sorting.
Future goals are to improve the playback functionality and to add more tools.
.png?width=1026&height=665&name=spotimizer%20(1).png)
Technologies
Activities
NODARIUM STORE
Online repository for visual nodes
The whole story
Nodarium is a WebApp with a node-based interface reminiscent of Blender or Houdini. Each node is an independent WebAssembly file, which makes the system extremely flexible. Currently, Nodarium is mainly used to create procedural 3D models of plants. What the project lacked until now was an online repository to which users could upload their own nodes.
As part of Dynaweek, I developed an API that can be used to save, load and version nodes. Users can upload their WASM files via the API, which executes them in an isolated environment. The structure, inputs and outputs of the nodes are recorded and saved. Each node is versioned based on its SHA256 hash, which enables clear tracking of changes.
For the implementation in just five days, I relied on technologies that enable fast work. I chose Deno as the basis because it offers very good support for WebAssembly and Worker. For the web framework, I chose Hono because of its integration with OpenAPI and Zod. I implemented the database access with Drizzle ORM and chose Postgres as the database because it is robust and performant.
Looking back, it was a very good idea to define my requirements at the beginning. This allowed me to make faster and more targeted technology decisions and prioritize features.
Technologies
Activities
KANA
App-based card game to convey the world of Japanese myths and culture
The whole story
Kana is a card game in app form that combines elements from the puzzle game, card battler and collectible card game (CCG) genres.
The playing cards themselves are designed in the style of traditional Japanese woodblock art. Each card is linked to an audio file that reproduces the correct pronunciation in the Japanese language. This feature supports players both during battles and when consulting the card compendium, where all unlocked cards are stored.

Technologies
Activities
2DRacer
2D top-down racing game and track editor
The whole story
The project explores the development of a dynamic racing game using Flutter and the Flame engine, combining basic gameplay mechanics with artificial intelligence concepts. The game allows users to design race tracks by clicking on the screen to set barriers that define the course of the track. As soon as a track is complete, a vehicle controlled by the player, which is displayed as a circle, can drive on the track.
The collision detection between the vehicle and the track barriers enables consequences in the event of driving errors that bring the vehicle to a standstill. The vehicle is also equipped with sensors that measure the distance to the nearest obstacles at various angles. This enables the use of a "ghost mode" in which the vehicle drives the route independently and attempts to maintain a central position based on the sensor data.
A central goal of the project is to use machine learning and neural networks to improve the car's driving capabilities. Through iterative training of AI models, the system aims to optimize the vehicle's performance and achieve faster lap times with each generation. This approach is inspired by motorsport and focuses on how AI can refine racing lines and improve decision-making in high-speed scenarios.
The project has several purposes. It serves as a hands-on exploration of new technologies and programming languages in the context of game development. It also reflects a fascination with racing games and the complexity of AI-driven gameplay. Furthermore, the project ties in with a general interest in motorsport, with the aim of understanding how AI models can influence racing strategies and competitive performance.

Technologies
Activities
Mythological deckbuilding brawler
A tactical card game with AI-friendly effect description language
The whole story
A formal language allows AIs to describe card effects for a tactical card game. The task 'Create a Zeus card' leads to expressions like '@Awake[Enemy]{AreaEffect}(1)[area:All]' - a suitable thunder effect in machine-readable form.
A parser translates these expressions into playable mechanics. In addition to the effects, the AI pipeline also generates suitable illustrations. In this way, complete cards are created from thematic specifications alone.
The gameplay combines deck building with tactical positioning. The generated cards fit seamlessly into the gameplay - from the destructive lightning of Zeus to the transformation skills of Proteus.

Technologies
Activities
ChekUrDefence: Multiplayer
Multiplayer update for ChekUrDefence
The whole story
The goal was to migrate the tower defense game "ChekUrDefence" developed in DynaWeek 2023 to the latest version of Godot and .NET and add a multiplayer function.
Various options were evaluated for P2P communication between 2 players and the decision was finally made in favor of "NAT Hole-Punching". This means that UPNP does not have to be active on the game host, nor does a port have to be manually activated on the router and forwarded to the player's computer.
NAT traversal with hole-punching is based on the fact that connections from a network behind a NAT router are usually assigned a dynamic, temporary port for incoming communication.
To make use of this for direct P2P communication between two players, a signaling server was developed in C# that is publicly accessible on the Internet and where the game registers with a random "join code" after starting so that the signaling server can save the external IP and the return channel port to the code.
The code is displayed to the player on the start screen and can therefore be easily passed on. A second player can also use this code to establish a connection to the signaling server via the "Join" menu, so that the server knows the IPs and dynamic ports of both players with the same code and can communicate to both running games. Both games can then communicate with each other directly via IP and port.
Unfortunately, there was not enough time in the end to implement the actual multiplayer functionality in the game.

Technologies
Activities
Android notes app with integrated editor
A user-friendly app for combining text and checklists
The whole story
Our goal was to develop an Android notes app that places special emphasis on usability. The app makes it possible to combine text and checklists within the same note with an intuitive WYSIWYG editor. Notes are saved in the background as Markdown, which allows easy synchronization and editing on different devices.
Many existing note-taking apps do not offer the option to flexibly combine text and checklists in one note. Users often have to choose between text-only notes and checklists. Our app closes precisely this gap.
We used Kotlin and Jetpack Compose to develop a specialized, high-performance Android app. It turned out that combining several widgets within a scrollable activity is challenging. We also found that the text cursor cannot currently be moved smoothly between different elements.

Technologies
Activities
RESUME
DynaWeek 2024 once again demonstrated the strength of creativity, technological enthusiasm, and team spirit at dynabase. For one week, our teams freely developed new ideas, explored innovative technologies, and created prototypes — from AI-powered game mechanics to web apps, APIs, and tools for complex workflows.
Whether it was playlist optimization for Spotify, an online node repository, an AI-supported deckbuilding game, racing AI in Flutter, multiplayer features, or an intuitive Android notes app: These projects clearly show what DynaWeek stands for: curiosity, a spirit of experimentation, and strong technical focus.