Green Wave Assistant

A few months back I made a prototype application for Swarco Technology the Bike Timer application. This prototype proved to be interesting to Swarco Techonlogy and they wanted to build a fully functional application. As I was at the last two semesters of my master in Software Engineering I had to start working on my master thesis. This project seemed like a great opportunity! So a collaboration was estasblished between Swarco Techonlogy, a fellow student, Thomas Lemqvist, and I. 

A full documentation of this collaboration can be see in our master thesis report. A demonstration video of the application is shown below and exaplained in Danish (Sorry about that, non Danish-speaker).

The above image shows the Android application that was built throughout the project. Imagine yourself driving in a car towards an intersection unbeknownst of when the traffic signal will turn green. All you see is a red signal which you are eagerly expecting to turn green so you can pass the intersection.

But what if you knew exactly when the signal would turn green? Then you would be able to perfectly time your speed according to the expected signal turn and avoid stopping at the intersection because you drove too fast!

This is what the projection in the application tries to represent. The white line in front of the car being the intersection and the car being yourself. The red area then represents the time in which the signal is red. The goal is then to try and keep your car within the green area. Now imagine everything moving in real-time…. Okay… I think that may be hard to imagine – watch the video below to get an even better picture of what the application is!

The above video shows both a simulation and a real drive in Odense, Denmark using the product of the master thesis project. It is seen how an application is able to stream real-time data between an Android device and intersections out on the street. This allows our application to present an optimized speed recommendation (GLOSA) for drivers, which helps drivers avoid unneccessary stops.

The visualization seen in the Android application was made possible using the Unity game engine. A Unity player was embedded inside an Android application which allowed us to build an application which fully looked and felt like a regular native Android application – all meanwhile a 3d game engine was running inside an Android fragment. 

Continue reading

Steam Mate

Introduction

This blog post documents the development of the iOS application Steam Mate developed by Simon H. Larsen and Anders Bundgaard for the Autumn 2018 class in iOS programming at SDU. The purpose of the application is to connect players of games on the Steam platform with each other based on distance and preferences. Steam Mate aims to aid players in finding new people to play their favourite games with and enable more cooperative play. The application draws inspiration from Tinder, a very popular dating app for Android and iOS, in which opportunities to communicate are granted based on mutual interest.

Continue reading

Bike timer

The solution for avoiding red lights. With the Bike Timer app you will be able to see when the light signal turn red and green. The app will calculate the speed you need to keep in order to pass the signal without stopping for a red light. The application was developed using Angular 4 in Typescript. It connects to an ITC traffic controller by Swarco Technology using a websocket.
The gif underneath shows the app in action.

The speedometer shows the current speed the cyclist is going. The green bar on top of the speedometer is the speed recommendation. The right-hand side of the speed recommendation is the maximum speed you can go to pass the signal and the left-hand side is the minimum speed you must go to pass the signal. When the signal is green, then the maximum speed recommendation is rather unimportant, however, the minimum speed is very important. This is because no matter what you will pass the signal if you’re simply going very fast, but you will not pass the signal if you’re moving too slow. This is where the speed recommendation gets handy. By following the speed recommendation somewhere around minimum, you will pass the green light without worrying about a red light when you get to the crossroads.


 
The bike timer was demoed at Intertraffic Amsterdam. The setup included a bike, an Android phone and a phone holder. The application was integrating with an actual traffic controller – Swarco Technology’s ITC mini – which enabled the application to give speed recommendation based on an actual traffic signal.

Hololens Anatomy

Hololens Anatomy is a 3d app made with Unity to support the learning of anatomy for students. The app lets the user step into an augmented reality that allows the user to see the real environment while watching and interacting with holograms. A hologram of a male body is presented to the user. The male body is modelled by Plasticboy and is modelled to be as realistic as possible. The model includes everything from the skin of a human, to his bones and internal organs. All of which helps the student explore and identify the body parts of a human. The students skills are put to the test by a quiz inside the app. The quiz includes CT-images of a certain point on a human and the student then has to identify the correct part inside the male.

The project was made in collaboration with a small team of developers and a set of stakeholders – some with professional input in the medical/anatomical world and some with professional input on project management and idea generation area. The project was developed for SDU and released for internal usage by students at SDU.

While You Wait

logo-1024x512

While You Wait is a cross-platform application developed in Xamarin Studio. It’s been released for Android and iOS.

The main focus was to make a “wait in line” or “queue”  application aimed at restaurants, hairdressersor or similar. The main use-case would be as following; The waiter at the restaurant doesn’t have any free tables, so the waiter would enter a customers mobile number and name. This would place the customer in a queue and also notify the customer by SMS. Whenever a table would become available the waiter would send a notification by SMS to the customer.

The application is constructed using different APIs. It’s using an online database, Parse, which integrates seamlessly into Xamarin through the component store. And Twilio which is used for the SMS part of the application. Twilio offers a REST API that accepts the applications queries to send SMS to the customers.

The application is taking advantage of Xamarin’s new tool; Xamarin.forms. These tools makes it way easier to develop a cross-platform applications. Xamarin uses the Mono runtime and already let’s you share business logic on many platforms through a PCL or Shared project. However, what Xamarin.forms allows you to do is to share your UI code cross-platform as well. Forms is only compatible on Android, iOS, and Windows phone (as of August 2015) which is perfect if you’re a mobile developer 🙂

Quickit

showcase

Quickit is a croos-platform app being developed in Xamarin Studio. Unfortunately I had to part ways with the development team before finishing the product as I had to start my bachelors degree at school. However, I would like to show off what I had made before leaving.

The essentials of the application is to ask your buddies a question and have them choose between a defined set of answers. Say I asked them “Want  to grab a beer tonight?” they’d then have the option to answer yes or no. You could also ask them about something more specific like “Beer at 7 pm or 9 pm?” you’d then have the option to define your own answers to that question.

The app lets you choose from all the contacts in your phonebook, however, it’d also check if your contacts are registered users in the database – using Parse for Mono. By doing so it’d either send the question to the app installed on their mobile device or send a text message with a link to a website where you can answer the question.

The database back-end is provided by Parse in a noSQL cross-platform plugin, which meant that any platform would be support – as long as the Mono runtime would support the platform. Parse then allowed to view some statistics and trends based on your data and user activity, however, not as “in-depth” as plugins like Google Analytics. So GA was also integrated to get a better idea of the flow and user interaction.

Unfortunately a demo .apk is not available right now, but hopefully these screenshots will give you an idea about how it works.

Quick Uninstaller

Feature Graphic

While learning my way around Xamarin Studio and the Mono runtime I created a simple uninstaller application for Android. My goal was to make something that looked simple and didn’t need to provide tons of features. So I did just that, clean and plain colors while programming the app to do nothing more than just uninstall chosen applications.

You can find the application listed on the Play Store and on Amazon App Store.

The application takes advantage of the Android API which pretty much provides any necessary data and handles the uninstall requests sent from the app. Which is also the reason behind the dialog box appearing when trying to uninstall an application. – if you wanted to get around that dialog you’d have to root the mobile device.

Amongst a few plugins integrated into the application was Google Analytics. Thus allowing to trace user engagement and user behavior. Which in turn helped eliminate certain unpopular functionalities and focus on popular functionalities.