Marble Maps in KDE Randa Meetings 2016

One more year of fun and intense productivity in Randa came to an end just a few days back, and I feel so good to have been a part of it. Much progress was made by the Marble team this year by Dennis, Torsten, Friedrich, David and me. I mostly worked on the Marble Maps Android app’s navigation feature, and would like to mention the changes here very briefly:

  • First of all, cmake was picking up the wrong target for aprs plugin, so I made cmake to skip the aprs plugin for Android, so that it does not lead to an unnecessary crash during building it.
  • There was a bug in the Route Simulation position provider plugin, it was not working in the Navigation mode. Made a fix to that.
  • Replaced the older QImage based current-position pointer, with a QML based one in the Android app. So now we are able to make our custom animations on it.
  • The current-position pointer will be staying at points on the route itself, when the user is very close to the route (not too deviated from it). With the new QML based pointer, we made sure that the radius of accuracy remains the same with respect to the Earth irrespective of which height we are viewing the map from. Plus, we have got rid of this accuracy-indicator when the position-pointer is already on the route, and are showing it only otherwise.
  • There was a minor bug with this in the desktop version as well. Imagine that while you’re simulating a navigation through a route between New York and Boston, you zoom out till the whole Earth is visible, then rotate the Earth so that the other half of the globe, for example India, is visible now, instead of America. In that case the position marker was showing up on the top-left corner of map (somewhere in the sky), when it was supposed to not be visible at all since it is theoretically present on the other “not-visible” side of the globe now. So this bug was fixed as well.
  • Used some new maneuver direction pixmaps for navigation in the Android app, getting rid of old ones, and also made them look sharper in the Navigation info-bar while they were shown during turn-by-turn navigation, by making some tweaks in the QMLs that were using them.
  • Finally, the distance text that shows on the top while in Navigation mode, its border height has been changed to match the height of that of the maneuver pixmaps shown on its left as well, so that the view looks much more uniform. Plus, a similar panel has been added at the bottom as well, that shows the speed and distance information during the navigation, each at two different sides of the panel.

That’s all about work. And adding to the yummy food that turns out to be truly delicious every single year, this time we had some more fun activities as well. We were fortunate enough to board a cable-car to ride to as high as possible in the mountains, so much that we ended up finding ourselves in snowfall ( it’s my first time being in a snowfall🙂 ), which was amazing! The special red tea we were greeted at a stop at a restaurant during the hike was pretty unique. We then visited a museum, and that was a lot of fun as well.

Such a lively and eventful week it was, thanks a lot to Mario and Simon for organizing the Randa Meetings one more year. Let’s keep the Marble rolling, and I hope to be a part of this again in the subsequent years to come!  :)


My experiences at Randa Meetings 2015

One more Randa Meetings just got over, and even though it has been about a week since then, I still keep thinking about the awesome moments I spent when I was there. Got to meet Dennis and Torsten after a long one year since the last year meetings. And this time it was even better because this time they stayed there for the whole week, which was not the case last time. To add to the excitement, this time Torsten had brought his telescope as well, along with a couple of his binoculars. It was around midnight on the very first day of the meetings, when a bunch of us had gone out to take a look at the clear starry skies through his telescope. Although our hands and legs literally froze there after an hour or so from the cold outside, I finally got to know why most of the stars are visible only in a certain part of the sky, got to see a bunch of constellations, and also the Andromeda galaxy as well. It was awesome, thanks to Torsten and his telescope.

Started hacking on Marble right on from the following day. This year, we worked mainly on the Marble Maps and on OSM vector tile rendering for particular altitude levels in the map, by working on the Marble library, which means that it can be visible on both the desktop and the mobile versions. We have come a long way in making progress on Marble Maps, and hope to release it to the public soon for a few months. So, watch out.

There was a trip to Zermatt this year as well,


from where we did an almost 4-ish hours of walk back to Randa (my right leg still hurts from the walk :P) which was too much fun and would love to do that again the next time. And the food, oh it just couldn’t get better than this. I still miss the lasagna.

Thanks to Mario once again for organizing these meetings. Readers, please donate to the KDE sprints fundraiser if you want to support these meetings so that they can be organised in the succeeding years as well. Hope to be back again next year if possible for spending some more productive time with some of the coolest developers alive on the planet. Cheers!🙂


Randa Meetings 2015 – What I plan to do

It is time for one more Randa Meetings this year, and over 50 KDE developers are going to participate in it along with me as well. The Randa Meetings is a codesprint sponsored by KDE and organized by Mario Fux, in which KDE developers from all across the globe are invited, and get to sit under the same roof and work together to collaborate on different ideas, coming up with some awesome feature implementations within a time span of about a week. These meetings generally focus on a common topic every year. Last year (2014) it was focused mainly on porting of various KDE applications to the KF5 framework. Similarly, this year we have a common focus as well, and it is aimed at bringing more of KDE to the mobile platform as much as possible. Now, since I am a Marble developer, let me tell you in brief what are my plans for Randa Meetings this year.

Marble is a virtual globe software, released for use in Desktops for now, but we’re working on “Marble Maps” for Android currently, which brings the openstreetmap + navigation/routing parts of Marble to Android. Although this Android app is still in its beta version for now and is going through a lot of testing at the moment, it will be openly available in the Play Store for being installed by everyone very soon. Along with that, we also plan to release an app called “Marble Globe” for Android later, which will focus more on different map themes, different planets, satellites and so on. For Marble Globe we think that it would be very interesting to include the “interactive tours” feature there prominently. So there could be a tour that shows landing sites on the moon. And another one that introduces certain interesting spots of a historical map. And so on. We would need declarative/qml support for tours to do that, and probably some other extensions as well that plain KML tours do not support out of the box. So we are interested in exploring these stuff, and are going to discuss these topics in Randa. Apart from that I am going to polish the existing feature in the desktop version as well.

I am really excited to meet Dennis and Torsten once again this year in Randa, along with the rest of the Marble team. Hope to have a lot of fun, loads of food, and a whole lot of hacking!🙂 Although, all this can only be possible if you can provide us your support in this. So, please make sure to donate to the Randa fundraising to encourage the time and energy spent by all the KDE developers in this meeting, if you are an user or supporter of KDE in any way. Your every small contribution will be as precious as the rest!🙂

Thanks a lot to Mario for organizing this amazing event. And I hope to have another awesome week in Randa this year. Cheers!🙂


Akademy 2015: An awesome experience.

So this was my very first Akademy, and I was excited about attending it ever since the beginning of when I started contributing to KDE a couple of years back. Feels great to have finally made it. Although I had some visa problems at the New Delhi airport because of which I reached A Coruna quite late and missed out on the entire first day of the conference, still I’m glad I could at least reach Rialta by sunset of that day and be able to attend the rest of all the days at Akademy.

So Day 2 began with the keynote speech by Lydia Pintscher on “Evolving KDE”, where many concerns regarding how KDE began, where it is going, how it needs to change, were discussed among many other things as well. It was really interesting, very motivating and I loved it, the best way the day could have started. Following this, were an array of many other talks as well, one of which I loved a lot, was the one given by Andrew Lake, where he spoke about visions, and how important it is for any product’s growth. His examples about a few “this is how *not* to write a vision” visions were hilarious. Overall, it was very interesting and fun to attend, and very informative of course. And then Vishesh Handa also spoke about file searching in Baloo in his talk, and how file searching and indexing happens in various other softwares and platforms, compared to how KDE does it in its browser in a more efficient way, was too good. Following the first half of talks, there was the group photo (glad I didn’t miss this😀 ).


On the second half of the day I gave a very brief lightning talk about my previous year’s GSoC project on implementing interactive tours in Marble. It kind of finished very soon, and I still regret why I did not extend it with a few demos by creating some tours on-spot or something of that sort. Still, hope people didn’t find it too boring. What felt very good though, was when Valentin Rusu came to me some time later that day to let me know about a website called flightradar24, which shows real time flights that are actually taking place right now all across the globe. Although these are real-time flights and are not similar to those that happen in Marble tours (tours in Marble are only virtual and don’t deal with actual real-time flights in airplanes), the link he sent me is pretty awesome and you should check it out once here:

Apart from all this, there was a questionaire session with the KDE e.V. where various topics were raised, many interesting questions asked and answered, many secrets revealed, including the “secret handshake” (😛 ). It was totally awesome. Finally the day ended with the Akademy awards, where two of my most favorite KDE applications, that is, KDevelop and KDE Connect, were awarded, which they totally deserved, so I was very happy about it. The organizers were given a big thanks as well, along with all the sponsors, where Frederik Gladhorn from Qt, said something interesting, that is, “Be a good coder. But you need to be a good person before that” which was awesome to listen to!

So, after the first two days of talks, up next were the BOFs starting from day 3. The BOFs were too good. Lydia’s BOF on “Evolving KDE” was very interesting to attend, and many key points regarding what KDE actually is, how it should be correctly defined given the various types of projects under so many different fields that it supports, were discussed for a couple of hours, and it gave us a well detailed insight about the direction in which KDE is going as a whole, and ended with a decision to come up with a well-designed vision for KDE, among other things, in the next few days. It was good listening to everything that was discussed in this BOF.

Next day there was a party at the terrace of Espacio Coruna, which was awesome. I took this opportunity to meet up with a lot of people I didn’t interact with in person before. I really really wanted to meet Lydia Pintscher for a long time. And I did. It was so great to talk and discuss stuff with her in person, exchanging various ideas, opinions, and whatnot. I caught up with Aleix Pol as well, and the conversations were enlightening indeed. David Edmundson is a fun guy to hang out with. So is Andreas, Vishesh, Pinak, Devaja and everyone else. Akademy is totally awesome, mainly because of this, and its such a smart way of helping you have such fun conversations with so many people in person, with whom you had only conversed online before that. The food was great, along with the beer and wine, and there were even freestyle dance steps performed towards the end as well. A totally awesome evening it was.

On one of the next days, there was a tour to the aquarium as well. Viewing the shark from so close up-front was an out-of-this-world experience. Following that was a very long and tiring climb towards the top of the tower of Hercules, the view from which was magnificent. It was beautiful to be able to view almost the whole of the city from the top by standing on that tower.

I would like to thank KDE eV. a tonne, for providing me the sponsorship for this year’s Akademy, without which I would have had to miss out on such a wonderful experience of my life. Thanks to Jose Milan for organizing such an amazing event, and to all the rest of the organizers who played a part in this. It was so well-planned, I met a lot of people, explored through Spain, saw a live shark, and so much more. I would love to attend the Akademy’s that would be held in the next years to come. Thanks again, for giving me such an awesome experience of a lifetime to keep in my memories forever! Until next time, ciao!🙂


My experiences at 2015

Last year I really wanted to attend but couldn’t because my train tickets were not confirmed by the time it started. So, I had made up my mind right then, that I will definitely attend it the next year by all means. So, this year I applied and was accepted as a speaker too. But tragedy struck again, when some college issues clashed with the date of my flight, so I had to reschedule it once, and then one more time due to one more clash, after which I could finally reach Amritapuri in the evening of Day 1 of conference when it was already over. So, yes I was sad as I had missed the first day, but that also meant that I should make the best of the second day for sure.

The second day of conference started with some great south-Indian breakfast, where I met up with some of the important people like Shantanu, Sinny, Pradeepto and others. The first talk for that day was supposed to start from around 10:00 am, and I was the one to speak in it. I spoke on the ‘Interactive Tours’ feature that I had implemented in Marble last year, and it was pretty well received (I hope). My talk was followed by the rest of the other talks of the day, which were all pretty awesome, and very interesting as well. I got to meet Devaja, Rishab, Pinak, and the rest of the speakers during the talks, and I loved to interact with each one of them.




After a couple of talks after mine, I was asked by Sinny Kumari whether I would like to volunteer in a qml workshop which was being held in one of the labs. I didn’t wanna miss this opportunity, so I said “yes”, and went to the lab with her. The workshop started in a few moments, after everyone settled down. It was Shantanu who was explaining most of the stuff, using his computer screen as a projection, with me, Sinny, Pradeepto and Pinak helping the attendees in their computers in case they needed help or had some query. It was a very productive session, amazingly led by Shantanu, and I loved every moment that was spent in it.

Well, the day ended with an awesome lunch, and a few more talks for the day. We were often approached by students from their college, asking us about our experiences with KDE, and how to start contributing. I answered them with my personal experience with Marble, and it went really well, with some good feedback from both parties. People were very enthusiastic and I loved spending time and exchanging information with them. After the end of all the talks, we went out for some sightseeing, rode a boat😛 , saw some awesome views from a high building rooftop, went to the beach, had lots and lots of fun.



and then finally came back, where we were invited to a lab, where each of the speakers and the students were saying their last viewpoints about the conference, what they liked about it, what could be improved. We told them about our awesome experience and that we would love to come back here again. Speakers who were still in college were asked how they keep open-source contributions alive in their respective institutions, I told them about our the GNU/Linux users’ group of my college and the events that are organized by it. Pradeepto told us some really interesting and funny stories about KDE, which were really both fun and motivational to listen to.



After all was said and done, all the speakers were given a certificate of appreciation, along with some books, and we walked back to the guesthouse. We had our very final celebration at night after returning back, with an awesome chicken and beer party in one of the rooms, till 1:30 am in the night. I think it would be fair to say that this was the best day of my life, and I am very glad to have bunked Durgapur for my flight the previous day, otherwise I would have missed out on all of these amazing moments, which have now turned into memories for life. Thanks to KDE, and especially to Dennis, without whom I wouldn’t even be in this position right now. Thanks to the organizers of and everyone else associated with it, for making my day special. I would love to come back to the next and the next and the next. Thanks a lot!🙂

KDE codesprint, Randa, Switzerland

Well, it’s been quiet some days since I came back from the Randa meetings, and I have to admit that after staying there, I have had the single-most productive experience in my life so far. These Randa Meetings are an event, where KDE developers from all across the globe are invited to come and code away for a week, under one roof, with a common goal, and I am fortunate enough to be a part of this.


I reached there on the 9th of August in the afternoon. Later that day, I have been able to meet with my mentors Dennis and Torsten. It was great to meet them face-to-face at last. In the next couple of days (after which they had to leave for work), I was able to clear out almost every doubt of mine, about my GSoC project from my mentors, which obviously led to some great progress in my work in one week. I also met my other GSoC colleague there, Calin (one great guy to hang out with).


I had a nice chat with the other KDE-edu folks David Guarez (his GSoC student Aniket is from my college😀 ), and Andreas Cord-Landwehr as well, while sitting in the same table and hacking together, both awesome people to talk to, and some other guys from the other groups as well. I have also been able to have nice chats with Vishesh Handa, Rohan Garg, Kevin Funk, Nicolas Alvarez, David Edmundson, Myriam Schweingruber, Valorie Zimmerman, and many others.



Not to mention, the food there was too freaking delicious and also the freshest food I have had since my birth, thanks to every person involved with the kitchen for the great work! Also, the FreeBeer was pretty awesome, along with the loads of free chocolate given in the night. The everyday hikes outside, were a real tension-buster, especially since it was the beautiful Swiss landscapes you were hiking in. I had gone for three hikes, the first one being with the Marble folks Dennis, Torsten, and Calin, and the next two being with the rest of the guys, after Dennis and Torsten had left. There was another trip to Zermatt, in which, during the return trip, I had a great hangout with Myriam, Andreas, and Calin. Talked about culture and many other things. Myriam paid for all our drinks as well, so thanks for the treat!😀


Overall, the Randa Meetings was an awesome experience, with loads of fun, and a whole lot of hacking and work done, and something to keep in my memories forever. Thanks to all the KDE developers out there, and most importantly, to Mario Fux, for organizing this amazing event, for inviting me there, and for providing the travel-pass on the 15th without which I couldn’t have survived that day😀 It was an amazing time spent, and I would love to come back here the next time, and the next, and the next! Thanks again🙂

GSoC Ends – Project Summary

Hi everyone! Okay, so GSoC finally comes to an end, and I’m going to miss it a lot. Working for Marble has become an addiction, and I am going to keep contributing to it in the future. However, here is a brief summary of what all I have been able to implement in Marble in the duration of the project.

My project is about implementing interactive tours in Marble, a feature by which we would be able to take a virtual tour of the planet, by making the camera fly from location to location on the globe, waiting at certain points, playing some music in the background through certain time-durations, and also possibly showing/hiding placemarks as well at certain moments during the tour. Tours are kml files consist of a playlist with five basic elements:
1) FlyTo : contains the latitude, longitude, altitude, etc. of the locations to which the camera is supposed to fly to.
2) Wait : contains the durations for which the camera should wait (not move) at some instances during the tour.
3) TourControl : these can be used to play / pause the tour automatically during its playback
4) SoundCue : these are required to play some music in the background while the tour is playing.
5) AnimatedUpdate : for being able to show/hide, or also create/delete balloon popups (info-boxes) at different coordinates during the tour.

-> There was a Tour Widget which showed a list-view of the different elements present in the kml tour file that has been loaded. Now I added the functionality to be able to edit the elements directly from the widget itself, thus modifying the tour without having to make any manual changes to the kml file, and providing a nice user-interface while doing so. Please go through my blog post for some screenshots and a clearer explanation of the feature.

-> Refactored tour playback logic, so that the tour is represented by only one serial track, containing of FlyTo, Wait, and TourControl items, and several parallel tracks, each representing either a SoundCue item, or an AnimatedUpdate item, which could overlap with other tracks, both serial and parallel. This refactoring of design was required in order to make the tours look more dynamic, and so that it is easier to handle and work with them in our subsequent codes.

-> Implemented seek functionality for tour playbacks, with a progress bar in the tour widget, which can be dragged manually by the user, to bring it to any position of the tour. Also, while dragging itself (not only just before and after), the respective changes, that is, the movements in the camera, along with the balloon visibility, can be seen getting changed in the map while dragging the slider itself, both forward and backward.

-> Added basic interpolation of tours in Marble, so that the camera makes smooth turns (not sharp ones) when flying from one location to the other (when the Fly-to-mode has been set to smooth). Please go though my blog post to know more about this, and the previous two features mentioned above [Note: In the kml file of the tour in the video shown there, the FlyTo modes are mostly not set to “smooth” so the “smooth interpolation” feature is not quite visible in that video, but the videos which are following later on in this blog, have all its flyto’s modes set to smooth, so it will be visible there.]

-> Next, I implemented the feature of being able to create / delete placemarks, and also to show / hide the popup balloons of existing placemarks, during the playback of the tours. The showing / hiding of popup balloons can be understood more clearly if you go through this video of a tour on the moon of the various landing sites made in it in the recent past. The creation / deletion of placemarks, during the playback of tours, can be understood from this very short video.

-> Then comes viewing of routes as tours. I implemented the functionality to preview routes as tours and showing turn-type icons in waypoints during a route preview, while adjusting the speed and range of the tour according to the density of waypoints in the current visible region in the map. This can get more clear if you look at this video.

-> Finally, I implemented the functionality of being able to create videos from tours directly, without having to play and record them manually in order to get the video. So, I added a new Play button in the Routing widget, clicking on which, a dialog box would come up where we can choose the destination filename with path, along with the fps rate with which we want the video to be written. Clicking on Start would start video recording, showing the % progress in the progress-bar. We can cancel video-recording any time by clicking on Cancel. Below are two pictures showing how it would look like, before and after the the video has finished being written.

Video Export Ongoing  Video Export Complete


I would like to thank my mentor Dennis, for his awesome help in making me be able to complete this project. Without his motivation, I wouldn’t have been able to make it to the very end. I am going to miss GSoC like hell. But I’ll obviously keep contributing to Marble in the future. It has been a hell of a great experience for me. Thanks again!🙂