Development

Game & Tool Development

LightWall

Self-Adaptive Recommender in IoT

MT Defender

FlexiSketch

Study Projects

The Early Years: 3D Gamestudio Prototypes

Just for fun:
Open Doors with Dr.Who Sonic Screw Driver

LightWall

Technology: Lua, Gideros Mobile (2D Game Framework), Cross-platform (Android, iOS, Windows, Mac OS X, HTML5), Electronic Whiteboards (89-inch)
Project stats: 1 person, free-time, 2-3 months
Solved challenges: performance/scalability, picture-music synchronization

I am the sole developer of LightWall, a game meant to be played on big electronic whiteboards. It combines fitness and fun with the help of information technology, and can be used in various areas such as entertainment, sports, rehabilitation and therapies. It is similar to the existing physical reaction wall, the twall (www.twall.de), but much more flexible because it uses virtual buttons (allowing for many different play modes and field sizes).
The game is close to v1.0, but still contains placeholder graphics for all menu and GUI-related parts. It contains a re-sizeable play field (3-625 buttons, customizable field margins) and various play modes, such as 1-4 players classic, music mode, and a hidden shooting range. The general public was able to play the game at the ´Informatiktage´ 2016 and 2017.

LightWall Teaser Video

Self-Adaptive Recommender in IoT

Technology: Java, Android Studio, Eclipse JEE, RESTful Web Services, Postman, Docker, jQuery, Tomcat
Project stats: 8 developers, research project, approx. 1 year with a 60% workload
Solved challenges: combining user feedback and system monitoring to gain insights for system evolution, data privacy, system architecture

As part of the Horizon2020 and EU-Korea collaboration project Wise-IoT (http://wise-iot.eu/en/home/), the system was built by 8 programmers including partners from Spain, France, and England. The Self-Adaptive Recommender is a system running in the back-end and generating recommendations for end-users. In a Smart City use case, it recommends free parking spots and fast routes to the spots. In a Smart Skiing use case, it recommends slopes and routes from A to B while considering the user’s skiing skills. The system monitors the users‘ adherence to the recommendations and issues situation-dependent feedback forms. The feedback combined with the system monitoring data reveals potential weak points in the IoT system and is used for self-adaptation.

I was the lead programmer of the Self-Adaptive Recommender system. It consists of five RESTful Web Services, three of which have been developed by EU partners, one by me, and one by a supporting student. I also built an Android front-end library for the communication with the back-end. Further, I was responsible for the overall system architecture, including the sequence of RESTful calls.

MT Defender

Technology: Java, Java2D, MT4j, Microsoft Surface Table v1.0, TUIO
Project stats: 1 person, free-time, 1 month
Solved challenges: maintaining 60fps with fast collision detection for many on-screen entities (cannon shots), simple AI for computer player

I was the sole developer of the multi-touch game MT Defender. The idea: a two-player version of the classic arcade game Missile Command. Each player can move a cannon left and right, as well as aim and shoot by touching the sky. The cannon reloads automatically when the current clip is depleted. The aim is to destroy the opponent’s buildings. If there is only one player, the computer takes the role of player two.

Students and faculty staff were able to play the game at the UZH Department of Informatics‘ 40th anniversary party in September 2010.

FlexiSketch

Technology: Java, Android, Eclipse, Android Studio, Corona (2D cross-platform game engine), Tablets, Electronic Whiteboards
Project stats: My PhD research, 5 years, development support by 24 students (BSc/MSc theses and projects)
Solved challenges: Combined freeform sketching with semi-formal metamodeling in a uniform GUI, concurrent editing of the same drawing canvas by using multiple tablets connected over WiFi, sketch recognition

During my PhD, I developed a tool-supported approach that combines freeform sketching and metamodeling in a single tool. The goal was to provide a flexible tool that can be used by requirements engineers in their daily work. As alternative to classic whiteboards, it eliminates media breaks that happen if engineers start sketching on classic whiteboards and then want to reuse the information to build more formal models in software tools. More info at www.flexisketch.org. A list of publications can be found here.

I was the project leader / lead programmer, with additional supervision by my advisor Prof. Dr. Martin Glinz, and Prof. Dr. Norbert Seyff. A lot of programming was also done by BSc and MSc students in multiple student projects and theses that I supervised.

Won the Best Demonstration Video Award at the 37th International Conference on Software Engineering (ICSE) in 2015

Early prototype on Google Play
4.0 star rating
>16'300 installs in the first 2 years despite no advertisement (only research paper publications)

Won the Best Poster and Demo Award at the 20th International Requirements Engineering Conference (RE) in 2011

Tool features

  • Cross-platform: runs on tablets, desktop PCs, electronic whiteboards
  • Collaboration: devices can be connected over WiFi to collaborate on the same drawing canvas
  • Freeform sketching
  • Sketch recognition, reuse of user-defined shapes/symbols
  • Lightweight end-user metamodeling (assign types to symbols and links, define cardinalities)
  • Export of sketches and metamodels in XML format

The early prototype of FlexiSketch is available on Google Play at this link (or alternatively as zipped apk). A more advanced, experimental prototype with more features is available as zip-file.

The Award-Winning FlexiSketch Video

Play Video

Prototype 1 Trailer

Play Video

Prototype 1 Teaser

Play Video

Study Projects

These are projects I did during my studies at the University of Zurich, including seminar work, bachelor’s and master’s thesis, and coursework.

AR Pong

(C++, ARToolkit) A simple pong game using augmented reality, allowing players to control the paddles with their bodies. I was the sole developer of this coursework.

Arduino Simulation

(C++, OpenGL) An Arduino robot simulation, developed together with a fellow student as coursework. Among other features, I was responsible for the idea and implementation of a feature that deforms the environment when the robots crash into it after their proximity sensors have been deactivated.

3D Wind Field DLA

(C++, OpenGL) Diffusion Limited Aggregation simulation, including additional options such as wind fields, and a raytracing feature for nicer screenshots. I was the sole developer of this coursework.

JElasund

(Java, RMI) A digital version of the board game Elasund, the second game in the Catan Adventures series. In addition to the project task, I surprised the class and professor with a complete DVD case, including a cover, a booklet, and a DVD. We were a team of 5 students in this coursework.

EvoSpaces 2

(Java, JMonkeyEngine, MT4j, TUIO, Microsoft Surface Table v1) EvoSpaces visualizes Java source code as cities. The dimensions of the buildings can be mapped to code attributes. Rainbows show method invocations. I was the sole developer; this was my master’s thesis.

Fluid Particle Interaction with Complex Boundaries

(C++) As part of a fluids simulation, I programmed the collision detection for fluid particles with ply models, and tested it with the well-known bunny model. This was my bachelor’s thesis.

Horat

(C-Script, 3D Gamestudio) A game prototype about gardening and the fabrication of elixirs to cure the ill population. I was the sole developer in this coursework.

The Early Years: 3D Gamestudio Prototypes

Technology: 3D Gamestudio, C-Script
Project stats: 1 person, free-time, over a dozen prototypes

In the summer of 2001, I saw the 3D Gamestudio software in a store, immediately bought it, and started to learn programming. 3D Gamestudio came with a level editor, a model editor, and C-Script, a scripting language framework based on C. I created over a dozen prototypes, some of them based on my own ideas, and some of them being clones of existing games (giving me specific programming goals). Some examples:

A Metroid clone in 2.5D that included the Spider Ball technique from Metroid II and allowed the player to switch to first-person mode.

AAFM was a first-person shooter prototype where the player has to defend herself against aliens with normal weapons, exploding bowling balls, various objects such as shovels and exploding barrels, and driveable cars. I included a physics engine and programmed a simple AI for the Aliens that causes them to search for and attack the player once they got alerted.

SuperSammy 3D was a Super Mario 64 clone with an almost complete movement set (e.g., the player could pick up and throw shells, slide down slopes, triple jump, wall jump, backflip jump, and climb poles).

Bubble was a clone of Bubble Bobble with a small Tumblepop crossover attack.

Race4Ever was a racing game including simulated city traffic where NPC cars drive around in a city and stop at traffic lights or if pedestrians walk across the street.

Showcase video of 3DGS Prototypes

Play Video

Open Doors with Doctor Who Sonic Screwdriver

Technology: Hardware only
Project stats: just for fun, half a day

Wouldn’t it be fun if we could open doors with the sonic screwdriver from Doctor Who in real life? I dismantled an RFID access card, taped the coil and chip to a replica of the sonic screwdriver, and tried to look cool. 😉

Play Video