Bike Navigation (master thesis)

Crowdbased navigation app providing a comfortable route

This navigation app is specially designed for cyclists who want an optimized route based on the road condition. Therefore, roads with a bad condition (potholes, cobblestones, etc.) are avoided. The data off the respective road conditions come from the users themselves. Everyone contributes for the optimization of the navigation. The crowd-sourcing principle ensures a nationwide and good optimization of the navigation.
Get the app now and take part in mapping and discovering the best and easiest ways to get from A to B.

View Project Android App Demo Video
Java, Spring, Python, Flask, MongoDB, Android, SQLite, OSM, Google Maps API, HTML, JS, Graphhopper, NumPy


Android Bluetooth mesh networking SDK

The happening network consists of the following three components. Via Bluetooth, devices in the immediate vicinity can communicate directly. We increase the range with our specially developed protocols based on meshing algorithms. To give other applications access to this network, we provide a network adapter in the form of an SDK.
To illustrate the happening network, we have developed several sample applications. A chat and a game with colors illustrate the functioning of the network and serve as a reference for the SDK. Our real-time simulation tool shows you how the mesh network works on a large scale. In addition, we have provided a Unity plugin, which is used successfully by the ALIVE team.

View Project Source Code Demo Video
Android, Java, Bluetooth EDR & LE, IPC, B.A.T.M.A.N.

Pi LED Panel

Flat share communication and information hub

First, the Raspberry was connected to the LED panel via a suitable interface (HUB75). Furthermore, a power supply was provided and other peripherals connected. Various information sources were included for the presentation (news, departure times, weather, etc.). A separate messaging API is used for communication within the shared apartment. An Android application allows interaction with the LED panel.

Sample Images Documentary
Raspberry, Python, Flask, Android

Warchalking & WiFi based positioning

This project aims to locate mobile devices based on WiFi signals. For this purpose, a sniffing SDK for Android was created, which automatically searches in the background for WiFi signals. A central REST API interface records this data and processes it further. The obtained data can then be used for positioning. A sample application uses this API for positioning.

Source Code Documentary
Python, Flask, MongoDB, Android, SQLite, Google Maps API, HTML, JS

Run Ninja Run

Multiplayer jump n’ run racer

Prototype for the course "Game and Interaction Design". Main aspects:

  • Experience design
  • Game design basics & process
  • Aesthetics & usability
  • Narration and games
  • Technology and its influence on interaction
Unity, C#

Bluetooth network audio distribution (bachelor thesis)

The idea to this thesis was born in the course of a relaxed beach party on the campus. There was a powerful sound system, while a DJ was responsible for the music selection. Due to an incident with public order officers, however, the DJ was forced to give up the sound system and hand it over to the authorities.
After a short moment of fluster, a number of ideas were developed about how to regain the music in order to proceed with the party. One of these ideas sounded quite promising and conceivably viable. The idea in question was based on certain assumptions and prerequisites. Firstly, there are a number of people in immediate geographical vicinity. Further, each guest has a smartphone and, presumably, every smartphone has a built-in loudspeaker. Thus, why not use all these speakers combined as one great sound system? This has been the inception of the research question on whether and how a local Bluetooth network can be used for the simultaneous playback of audio content on a number of devices, which is the focus of this thesis.
The present work investigates the technics of communication between smartphones. Various approaches for networking between the devices are described and implemented, along with applying different variants of networks and their topologies. Based on the network structures, different utilization concepts will be developed, accordingly. The main use case, however, is the streaming of audio content on a number of devices via Bluetooth. Therefore, own protocols for transmission and procedures for synchronization are needed. A later evaluation based on bandwidth tests will validate and proof the viability of streaming audio in a Bluetooth based network.

Get the thesis
Android, Java, Bluetooth EDR, RFCOMM, Audio


An interactive image graph navigation tool based on image similarities

Starting from a collection of 40 million images linked by similarities, we have implemented an interactive visualization for browsing imagery for web browsers. The challenge in the project was that the abstract order of the image collection and the affinities of the images are not directly represented. So the goal was to find a graphic interpretation, which clarifies the affinities as well as allows an intuitive navigation of the images. After first experimenting with different graphical interpretations, we opted for an interactive implementation with Force Directed Layout, allowing us to display hundreds of images and their relationships dynamically, intuitively and in real time.

Demo Video
HTML, TypeScript, CSS, Three.js

Testament visualization

The data describes a list of all of the names that appear together in a given verse of the Old and New Testaments of the King James Version of the Bible. The weight indicates how many times each name pair occurs throughout the Bible.

HTML, JS, CSS, d3.js

Car comparison visualization

Visualization of a huge dataset out of car features.

  • Car
  • Manufacturer
  • MPG
  • Cylinders
  • Displacement
  • Horsepower
  • Weight
  • Acceleration
  • Model Year
  • Origin
HTML, JS, CSS, d3.js

Trainstation Watchface

Creating a nice watchface based on the german clocks at train stations. The clock is highly customizable and can be used as a Android live wallpaper next to wearable devices.

Playstore Video
Android, Java, Wearables, Canvas

24 Hour Slow Watchface

A beautiful slow watch face with just one cycle for a day.
The following settings can be made:

  • Primary color
  • Background color
  • Rotate face by 180′
  • Show/hide numbers
Android, Java, Wearables, Canvas

HEX Color Watchface

A beautiful minimalist watch face that displays the time as a hexadecimal color code. The background changes according to the time of day.
The following settings can also be made:

  • Size of the color code
  • Additional display of the regular time
  • Size of the regular time
  • Behavior in ambient mode
Android, Java, Wearables, Canvas

Decision Watchface

You can not decide again? No problem, just look at your watch and it will tell you how to decide. The decisions are random based. The watch can be further customized. These include:

  • Show time
  • Time in 12 hours or 24 hours format
  • Different display modes for the decisions
    • Yes | No
    • Thumbs up | down
    • Empty
    • Individual decision texts
  • size adjustment
  • animation
Playstore Video
Android, Java, Wearables, Canvas

Content-based image retrieval

A collection of different algorithms of Visual Information Retrieval. The upper left image is the candidate image. All relavant pictures follow this in descending similarity. The essential components of the tool:

  • Different metrics
  • Perceptually Modified Hausdorff Distance
  • Feature extraction
  • K-means Clustering
  • Lloyd Clustering
  • Discrete cosine transform
  • Edge Detection
Demo (JAR)
Java, Swing, Clustering, Edge Detection, DCT

Number recognition

Expert system for handwritten number detection

A neural network was created in Java and trained using the mnist numbers. For the performance increase jblas was used. In the GUI you can paint numbers, which are then recognized by the neural network. The accuracy was about 80% up to 90% (dependent on the learning time).

Java, jblas, Machine Learning, Backpropagation

Shape detector

This tool can transform rasterized graphics into vector graphics. The algorithm of potrace was used for this. Various settings can be made to refine the Bezier curves.

Demo (JAR)
Java, Swing, Vectorization, Bezier

Image region detector

This program can identify image regions using various Flood Filling algorithms.

  • Depth-First
  • Breadth-First
  • Sequential
Demo (JAR)
Java, Swing, Floodfilling

Differential pulse code modulation

Using the differential pulse code modulation for image compression. You can see the reduced entropy, which leads to lower storage space. In addition, lossy compression can be accomplished by quantization

Demo (JAR)
Java, Swing, DPCM, MSE

Non-linear filters

  • Inserting salt & pepper noise
  • Minimum filter
  • Maximum filter
  • Box filter
  • Median filter
  • Different blocks of disorder
  • Variable filter size
  • Processing of color images
Java, Swing