Latin-script to Cyrillic and Cyrillic to Latin-script converter for Android which works with the Serbian as well as the Macedonian alphabet. In those countries both scripts are used in parallel. The app interface is multilingual and the background-color can be customized. The application offers amongst others a layout change at runtime. With this alternative layout the script used can be detected automatically. The alphabets are parsed from CSV files. The used transliteration/transcription table.

With more than 10000 downloads my most successful application so far and from Februar 2015 on regulary in the top 500 apps of the category "Tools" in Serbia (target market). Also in Bosnia and Hercegovina the application is regulary in the top charts of "Tools".

Play Store: Latin-script ↔ Cyrillic Converter

A PC version is available too, which can be found if you scroll down.

While working at the IT-research at Hogeschool PXL in Belgium, possibilities for computer vision based augmented reality applications for Android have been explored. The devices used include smart glasses and a smartphone. Besides barcode detection and navigation, different approaches have been tried out to recognize buttons using OpenCV. The developed main application is showing a customizable key sequence via augmented reality when looking at a specific device. Due to backwards compatibility OpenCV 3.0 has been used as newer versions use the newer Android Camera API which was not supported by the Android version on the Smartglasses. While most built applications were created in the usual Java way, some have been created using the JNI which means developing native with C++.

Feature Matching Native
Feature Matching
Key Shape Detection
QR Barcode Navigation
QR Barcode
Shape Detection
Template Matching

Home surveillance with Raspberry Pi and ESP8266

While I already programmed for different devices as diverse as Smartphones, Smartglasses, PC, Multitouch tables and the Cloud before, developing with actual hardware interaction was a totally new experience. In this project I developed a Node.js server running on a Raspberry Pi, which offers a Web interface in which remotely the camera image can be seen as well as temperatures of the connected sensors. Additionally two ESP8266 micro controller in the form of a NodeMCU have been integrated to the platform wirelessly. One will send the server a notification (via a HTTP request) when the door is opened, the other will listen for HTTP requests in order to provide the temperature and humidity data of its connected sensor. Both information is displayed at the web interface too. For the ESP8266 programming the Arduino platform and therefore C++ programming has been chosen. The sensor data history is stored in a MongoDB database.

Raspberry Pi as Server: Node.js Server including the reading of temperature sensors on Raspberry Pi
ESP8266 as temperature sensor: Reading of temperatures on HTTP request on a ESP8266
ESP8266 as door opening alarm: Sending an alert to the server when the door is opened on a ESP8266

Latin-script ↔ Cyrillic Converter

Desktop version of the Latin-script to Cyrillic converter. Requires Java to be installed and runs therefore on Windows, Mac and Linux. The app interface is multilingual, the language you see depends on your system-settings (German/English). This application was created making use of JavaFX features such as Views built with FXML files styled with CSS. The rest of the application structure follows a MVC approach. Internationalization is done by making use of resource bundle files, which offer a similar maintenance like via Android out of the box.

Download: Latin-script ↔ Cyrillic Converter V3.0

A very simple two player clone of Asteroids with one level. With a head-up display, power-ups, a protection shield and particle effects. Requires Java to be installed. This application was created using the LibGDX framework. The software architecture follows a component based approach using Ashley, a entity framework written in Java. For the self drawn textures a so called texture atlas was used.

Download: Asteroids clone

GitHub: Asteroids Clone

Browsergame with one level. An applied research project in collaboration with Christian Enengl.
Additionally creation of an experimental touch version for smartphones and tablets (test in landscape mode!). The special thing about this game is that the main character the flea, looses life every second touching the ground. So in order to survive the flea has to jump that long until he finds an animal to ride on. Depending on which animal is ridden, different actions are available. Also properties like jumping height change. It was created using the 2D game editor Construct 2.

Play the game: Jack the Flea

A simple application in which the lines and circles are drawn with the Bresenham algorithm. The filling of the circle is done with the recursive Floodfill fill algorithm. Requires Java to be installed.

Download: Bresenham & Floodfill

A simple application which has been created with Modern OpenGl. Several sinus functions were applied to the plane. Controlling of the scene is possible by using the arrow keys. The shader were realized through GLSL.

Download: Shader programming

Application of the Stencil Buffer for creating a magnifier effect. The magnifiers are each for itself selectable, moveable, in its size changeable and the magnification scalable.

Download: Stencil Buffer

Digger 3d scene

A 3d scene created with OpenGL with a driveable digger which has three controlable hinges. There are also different preferences possible like wireframe-rendering, side view and movement in the scene with mouse and keyboard. The keyboard layout is printed out in the console when pressing "h".

Implementation of the DeCasteljau algorithm for drawing Bezier curves. The control points are selectable, moveable, deleteable and freely setable. When pressing the space key, a simple animation is played alongside the curve.

DeCasteljau algorithm for Bezier curves

A collision detection implementation in OpenGL, there are two modes: The Bounding-Spheres and the Axis-Aligned-Bounding-Boxes algorithm. The keyboard layout is printed out in the console on application start.

collision detection