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.

Realtime Collaborative Editor

Multiple clients test
The UniTeX editor is a LaTeX editor featuring LaTeX compilation, highlighting and auto-completion. Alongside the text editor, UniTeX also features project and team management, with multiple documents. The documents can be edited collaboratively by multiple users, on a distributed network. Every document is contained in a project and is sharable with a team of other users. When finishing up a document it is possible to compile and export the LaTeX document as a pdf file.

The editor was made as a semester project in collaboration with a very great team of fellow students. The client and server was developed in Mono leveraging many features from C#. Thus allowing for cross-platform compatibility.

Sealife Scramble

10003694_1425899414334698_2839525281854166894_o

Sealife Scramble is a 2d sidescroller made in Unity3d for iOS and Android. Same as my previous project Stix this game was made alongside a small indie team called Big Red Planet. I was the game designer and programmer for this title.

In Sealife Scramble you take the role as a Seahorse swimming for his life as he’s chased by a big, evil, mechanical creature. If the creature catches you, then it’s game over. Along the swimming route is different obstacles, like mines, torpodoes, and squids. If you collide with an obstacle you’ll be placed in a panic mode which slows you down, and makes the creature slowly catch up to you. The goal is to beat your Facebook friends highscore by swimming the furthest.

Facebook has been integrated using the Unity Facebook SDK. Thus allowing users to log into their Facebook account and compete against their friends. And if the user doesn’t currently have any friends playing the game, then there’s the option of sending an app request to chosen friends.

When developing Sealife Scramble we found it necessary to implement our own database solution. In doing so we used the Parse for Unity SDK, which easily integrated into both Android and iOS. When logging into Facebook, users would automatically be logged into Parse using their Facebook autherization. This would make sure that a user’s Parse account would be correctly associated to their Facebook account. Which was important when querying for highscores which only included a certain user’s Facebook friends.

At the end of the first development iteration we wanted to experiment with rewarded video ads. So we downloaded Unity ads and integrated it into the project. Whenever a user was caught by the creature, the user would be presented with the option to view a video ad to escape the creature and keep on playing. Thus allowing a user to get a higher score by viewing an ad.

Android app on Google Play

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.

Big Red Planet, LLC website

monitorframe big red

This website takes advantage of the same template as my previously posted Glazier website. So it includes all the awesome design by Think Up Themes Ltd and includes mostly the same plugins as mentioned in my Glazier website post.

The website was made for Big Red Planet as a way to showcase their games. And because I’m a co-founder of Big Red Planet, this was a pleasure to make. You can read more about Big Red Planet on the following link.

The website can be viewed at simonhl.dk/big-red-planet

Glazier website

monitorframe2

This website was made for a glazier company located in Denmark. It serves responsive design and anything else you’d expect from a high quality design – made easy by using a high quality template from Think Up Themes Ltd, big thanks to them.

Apart from a great design several other plugins were integrated. Plugins like a contact form, anti-spam filters, backups, performance optimization using cache and Piwik analytics. All very well polished plugins which integrated incredibly smoothly into the website.

The website can be viewed at glarmesterholst.dk.

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.