Independent Studies on Scale-Space Feature Extraction

I’ve taken a MSc in Signal Processing from National Technological University  (NTU) and one of the especially useful assignments there is the independent studies module where you can choose any topic to study. I’ve chosen Scale Space Feature extraction and it was quite eye opening on why  Laplacian of Gaussian (LoG) is able to produce features that are scale invariant. And then showing two implementation in the form of SIFT and SURF which both take different approximation techniques to reduce computation of the feature extraction.

E-Puck Mobile Robot

E-Puck Robots

The e-puck robot is a popular educational robot developed by EPFL, that is primarily used for swarm robotics. (http://www.e-puck.org/)

During my undergraduate year, I did some work on this robot and written documentation on the approach to achieve certain tasks using these robots. The publicly shared document has been accessed more than a thousand times, probably due to the popularity of these robots.



E-Puck Thesis



Backend using Laravel: An MVC PHP Framework

This development is on hold. I needed a backend for my 3d virtual learning game. This backend has to have a separate web frontend that is accessible in the form of a website. I have found Laravel to be a very expressive and fast framework to implement this idea.

The SQL database is accessed by Unity game to monitor student’s progress. Laravel uses active record (https://en.wikipedia.org/wiki/Active_record_pattern) to make queries to the database, which although a slightly controversial approach, makes development faster. After spending a couple of months of Laravel, I understand why it is popular, it makes development so easy, for example Laravel templating feature Blade (https://laravel.com/docs/5.4/blade) makes creating the view so much easier. And the syntax is easily readable.

However making changes to the database structure can be quite cumbersome especially in this prototyping stage as games can be quite open to many possibilities and tweaking which equate to changes to relational database structure. I find myself going back to composer and artisan quite often. This might point to poor software planning, but indeed being a one person team it is hard to get the architecture right the first time for such a complex development.

I’m now exploring NoSQL databases as a backend and a framework on top of this, to better complement the strength of the game engines where serialization and deserialization of many object is strongly supported.