Sunday, May 31, 2015

GSoC 2015 with Marble

Great news! I've got selected to this years GSoC. From now on, I'll be posting here frequent status updates about my progress while working on the project "Improve Marble's OSM vector rendering and printing support".

KDE and Marble

One of the reasons why I choose KDE as my mentoring organization is that I already used their Plasma desktop for quite a while now, thus I'm a little familiar with KDE Applications, but the main reason is that my programming skills and knowledge was best matched with KDE's Marble project.

Application to GSoC

During the application period I had a lot of fun while getting started. My introductory tasks revolved around Marble's Ground overlay feature in the Edit(Annotation) plugin. I had to use git-bisect to find a commit in which a regression occured. Then I had to implement manual resizing and rotating for the GroundOverlay, and correcting some bugs. These were great tasks to get me started working as a developer for Marble. Frequently speaking with my mentor about the changes and ideas that I wanted to implement was one of the best and most memorable part of it.

About my project

Marble has a great rendering engine, which is fast (Marble starts up in 2-5 seconds), reliable and allows developers to easily improve some of its features. My projects main goals are to improve the following parts of the program: the rendering of the .osm file based vector tiles, the picking of the texture tiles, improving printing support. I also intend to fix any bugs that I may encounter in the process. This would improve Marble's rendering and maturity too, so the end-user should be more satisfied with the application.

Let's start coding!

Though the coding period started a week ago, I've only got time from now to work on GSoC, because I didn't want to throw my school projects aside, those are important too.

So now that I've completed my school project(a simple tile-based rouge-like rpg), I can begin to work on my GSoC project. The not-so-good thing is that we have a quite early mid-term evaluation period(June 26. - July 3.), so we need to get some of our work done by that time.

I've started to work on the OSM vector tile rendering part, so the polishing of the rendering will be my main task for this month. I'm currently working on the outlines of the streets and highways. Just to get you the idea, I'll show some pictures about it.

This is how is it now in Marble:
An .osm file loaded with into Marble.

The rendering performance is good, but it needs a little polishing in order to achive something similar to the one that's on the OpenStreetMap website. This is what it should look like:
Same region, but from the openstreetmap website.

And finally this is my progress for now:
It's a little cartoon-like.
The streets now clearly have outlines, but it's not the best result we can get. For now, this is just an experiment of what can be done. I'm only drawing the lines twice, first the outline color, then the fill color, but it's done par ways, this is why it gets outlines were it shouldn't. To be honest, it took me quite some time to find the files in which I need to work, but as you can see, it's working now, so my next task will be to get it to an acceptable state.

That's it for now. Next time I want to share my progress on this task, possibly the completed version then.