Marble 1.8.3 Installer for Windows

Today I took some time aside to update the slightly outdated Marble installer for Windows. It now covers the latest stable release Marble 1.8.3. Before pushing it to our Installation website I’d like some quick feedback from other Windows users willing to give it a try: Does Marble run fine on your system after installing it? The installer also associates .kml and .gpx files with Marble such that you can open them directly from e.g. Windows Explorer. Download the installer here: marble-setup-1.8.3.exe.

Quick ad intervention: If you like this please donate for the KDE Randa sprint. I’d like to meet with fellow Marble developers to discuss future development. Thanks 🙂

Marble 1.8.3 running on Windows 7

Since I don’t plan to step up as a maintainer for our Windows installer it would be great if someone else interested in Windows packages could look into some possible improvements. Compiling against quazip would result in .kmz support. Also the installer ain’t the most pretty nor smart thing in the universe yet; forcing an uninstall of older Marble versions before the installation would be a good start. Since it is based on NSIS improvements shouldn’t be too hard to implement. Interested? It’s quite painless to set things up:

  • Install some compiler, the free MSVC express editions suffice (I used MSVC 2010 Express)
  • Install Qt, the binary Windows packages are fine (I used 4.8.6 for VS 2010).
  • Clone the Marble repository (msysgit is your friend)
  • Install cmake (I used
  • Have cmake generate a MSVC solution for you:
  • Open the generated marble.sln. Inside MSVC open the configuration manager and switch from Debug to Release. Compile. Also build the INSTALL target.
  • Install NSIS. Open src/marble.nsi in some sane text editor and change the srcdir variable to your export folder. Use the NSIS compiler to generate marble-setup.exe from src/marble.nsi.

Watch a HD live stream from space

The NASA is currently providing a high-quality live stream from cameras mounted at the International Space Station (ISS). Watch it directly in your browser to see stunning pictures like this:

Image from the ISS HD Earth Viewing Experiment

The site also tracks the current location of the ISS overlayed on Google maps. If you’re looking for an alternative location tracking that gives you more control, give Marble a try: Aside from getting the current position and orbit you can view it in globe projection for a more intuitive display, and shift time back and forth as you like with the position and orbit updated accordingly.

Marble showing the current  position and orbit of ISS.
Marble showing the current position and orbit of ISS.

To get that view in Marble, activate Satellites in the View / Online Services menu. Click on the ISS in the map (search for it if you don’t spot it immediately) and select Display orbit in the menu coming up.

You can use View / Time Control to shift back and forth in time. You might also want to change the satellites being displayed, the screenshot above uses the Space Stations set available from Settings / Configure Marble / Plugins / Satellites.


GCI 2013 and Grand Prize Trip

How does one become a contributor of Open Source development? Some start with the wish to fix that certain annoying bug in their favorite software. Others want to extend it by a new feature. However you arrive, the path to go to get that seemingly easy task done is often not clear. Where’s the source for that button? How do I make my changes take effect in the software that is run? Finding the right path can be a frustrating journey many are not willing to endure. Google Code-In (or GCI for short) aims to help out: Pairing prospective contributors with mentors from established open source organizations builds a path to successful contributions. KDE has participated in GCI as a mentoring organization since its start in 2010, and did so again in the most recent 2013 edition.

GCI is all about cakes^w tasks.

To increase motivation GCI is organized as a contest. Pre-university students in the age of 13-17 years from most (not all) countries of the world may choose from a large pool of code, documentation, research, quality assurance and user interface tasks. Where does this pool come from in the first place? It is created by the mentors of all ten participating open source organizations who also maintain it during the whole contest. A task is a set of work in one of the five categories that takes a student a couple of hours or days to complete. Besides self-contained tasks often task series are created where either similar work is split into several tasks or related work is split into subsequent tasks. This way all sort of work can be converted into manageable pieces.

Nevertheless GCI is not meant to be a way of distributing work. Indeed it’s much more a communicative event where lots of small teams emerge — students and mentors exchange ideas, collaborate and task after task gets closed. Each successfully completed task earns you a point. In the core of the contest said procedure of choosing a task and completing it is repeated for seven weeks in a row. Afterwards the number of successfully completed tasks is summed up: One earns you a certificate. Three or more a groovy T-shirt to make your friends jealous. And if you are among the twenty top performers you win a trip to Google Headquarters in Mountain View, California!

All 20 GCI 2013 Grand Prize Trip winners in front of the famous Android lawn statues.

Getting there means finishing tasks, but fortunately they’re fun to work on. Maybe even addicting, or why else would you work on them from dusk till dawn? The never-sleeping KDE students added documentation videos for all sorts of KWin effects, updated KGeography for recent changes of regions and polished KStars features. A new touch typing course for the US english keyboard layout and keyboard layout files for more languages were created for KTouch. The Python support of KDevelop was extended in a series of tasks and Amarok got several new testers to verify bugs. The email client Trojitá got a couple of usability improvements and all sorts of new features found their way into Marble. Among them are extensions of its KML support, polishing of the new ownCloud integration and initial support for tours. Inner and outer planets of our solar system are now shown as well as the moon with its phase. New map themes were created, the interactive legend enhanced, the handbook and Python binding documentation extended, routing support improved and a screencast recording feature added. The Marble tasks alone sum up to 115, a considerable amount of the 259 KDE tasks closed in total. At the end of the contest Mikhail Ivchenko from Russia (47 tasks) and Benjamin Kaiser from Australia (46 tasks) ranked top among the KDE students. They joined the lucky twenty who visited Googleplex from April 13th to 17th. For the first time each organization could send a mentor to the trip as well; I was the happy one from KDE to go to Mountain View as well.

Mikhail, myself and Benjamin in the awards ceremony. Photo by Sergej Ivchenko.

The trip was an amazing experience for all of the 50 participants (20 students accompanied by a parent each and 10 mentors), lovingly organized by Stephanie Taylor and other members of the Google Open Source Programs Office. It started off with a meet-and-greet event in San Francisco to get to know everyone, followed by a day around Googleplex in Mountain View, a fun day in San Francisco and a farewell day in the Google San Francisco Office. Group activities like the Google campus tour, a Segway tour in San Francisco, a visit to Alcatraz, a Yacht cruise and a visit to the California Academy of Sciences were varied with lots of food, swags and interesting talks by Googlers. A great experience that all participants will keep in happy memory for a long time! Stephanie summarized it nicely:

This week we had the 20 grand prize winners and 1 mentor from each org here in Northern California for the Grand Prize trip and it was an amazing experience for all of us.  Being able to watch the students literally glow with excitement at meeting their mentors was very heartwarming.
As a bystander watching all of the conversations and hacking going on between students and mentors for 4 days was incredible. Students were not just chatting with the mentors from their orgs they were also involved in highly technical conversations with mentors and students from other orgs.  At every meal and break I would look around and there would be groups of 4-8 people huddled together deep in conversation. I’m sorry we can’t have every one of you attend the trip, but trust me, if you witnessed what I saw you would know that all of those long hours and sleepless nights you put into the 7 week contest helping teenagers learn about open source and your projects was worth it. : ) Kudos to all of you.
We hope that these students will continue to be contributors with your orgs and maybe even mentors and or GSoC students in the years to come.


Back to the roots

Nokia used to produce some excellent smartphone hardware. If you’re happy to own a N900, there’s an upgrade to Marble 1.5 on its way that brings some fresh life to good old Maemo. It’s in extras-testing now and should appear in extras soon. Kudos to Bernhard who took over maintainership of the Maemo version and worked hard to make this release possible.




New stable release Marble 1.6!

Together with the 4.11 Release of KDE Applications a new stable Marble version 1.6 has been released. It surely is the greatest Marble release to date. Arguably each new release of a software should be the greatest so far, yet Marble 1.6 introduces an extraordinary amount of awesomeness. Below is a teaser image highlighting some of the new features. Make sure to check out our visual changelog which mentions even more new stuff and embeds some nice videos. Enjoy 🙂

New features in Marble 1.6



Marble’s Desktop GUI revisited

In the last five years the Desktop user interface of Marble hasn’t changed much: A QMainWindow with a central, large map (MarbleWidget) and a QTabBar based left sidebar with several widgets to control the map, perform searches and routing etc. Marble 1.5 (KDE 4.10) for example looks like this:


There are two main disadvantages when using a QTabBar here: Only one of its widgets can be visible at a time, and switching between the widgets in the tabs involves much mouse moving from top to bottom and the other way round (have a look at the tab positions in the screenshot).

To improve things we now introduced a new layout based on QDockWidgets. Its initial view resembles the old look and feel with a sidebar on the left, but shows two widgets at one time:


Dock widgets alone are not enough of course; the screenshot above also shows many further improvements. The Map View makes better use of the available space using smaller icons, showing the name and description to the right and indicating whether map themes are favorite ones using small overlays. Controls to choose the projection (sphere vs. flat map) and celestial body (planet) are condensed into a toolbar unless there is more space available to expand them. The old Navigation tab is gone in favor of a new map overlay visible in the bottom right. It’s also the first overlay to receive a modernized styling. The search results previously also shown in the navigation tab have moved to the new search dock which also integrates the search field previously found in the main toolbar. The latter is disabled again to leave more space for the map and dock widgets.

A big advantage of dock widgets (in combination with QMainWindow) is their configurability by drag and drop. Wide aspect ratios like 16:9 are used for many monitors now, which results in a good opportunity to create a right sidebar by dragging the dock widgets you’d like to see elsewhere to the right window border:


On closer look you’ll find that the routing dock has received a small facelift as well. The input fields for via points now integrate the drop down button previously found to their left. Actions working on the route previously found in various push buttons are now grouped in a toolbar.

It’s very easy now to assemble a new layout that shows all the controls you need in a certain situation. All features shown in the screenshots here are available in the Qt version of Marble in the master branch and will become part of Marble 1.6 / KDE 4.11. Feel free to give it a try. Please note that only the Qt version bin/marble-qt has implemented the changes at this time; the KDE version bin/marble will follow shortly.



Cooking in the Marble Kitchen

A lot of activities in the Marble community over the last weeks are shaping up now to become part of the Marble library and applications. Much is related to the ongoing Google Code-in and this blog post introduces some of the new features that were realized by GCI students.

Popular star constellations — patterns in prominent stars within apparent proximity on Earth’s night sky — are now rendered by the extended stars plugin. Realized with much love for detail, Marble’s view of Earth from outer space is now more stunning than ever. See for yourself (yellow bubbles are manual annotations):

The screenshot also shows the new Earth at Night map theme which will replace the existing one. It features updated images with higher resolution. Further map themes have been completed or are in the works, among them Jupiter moons and historic map themes. To help you give proper attribution for derivative works, a new info box in the bottom right corner shows license information for the current map theme. Like all info boxes it can be disabled if needed.

Another main working area is KML support. While the most important KML elements are long supported, we are aiming for full KML 2.2 compliance in a future version. Towards this goal support for reading, writing and using more KML elements has been implemented. Among the new features is support for random color mode, reading and rendering screen overlays, reading balloon and list styles, rendering of remote images and writing of polygons, photo overlays, ground overlays and time spans. While preparing support for balloon style in placemark rendering the new webpopup plugin (annotated as map info dialog with webkit support in the screenshot below) was born. Given its nice look and generic applicability we’re currently replacing many QDialog based dialogs with it.


Much more has been realized in the last weeks and the above is just an incomplete high-level overview. Most of the features mentioned above are already merged into the master branch (to be part of Marble 1.6 / KDE 4.11). Some map themes will be deployed via GHNS and therefore be available in all KDE versions of Marble soon (File => Download Maps).

Google Code-in is still running for some weeks and we have a set of open tasks for volunteers to take. Check out Melange and search for Marble tasks (with KDE as organization) to see them. The website has a lot of information to get started as well.

Marble Tasks for Google Code-in

Google Code-In is about to start on Monday. Here’s a sneak preview of some Marble tasks — please forward to any 13-17 year old teenagers who might want to become proper mappers!

Do a usability overhaul for the measure tool: Improve the contrast to the various map backgrounds with the help of semi-transparent backgrounds, use alternating colors for neighboring line segments and show intermediate distances.
The mockup animation on the right shows the current measure tool and a possible improved version. Adjusting the line segment colors and improving the contrast of the vertices will be quite straightforward. Calculating suitable positions to draw the distance labels for each line segment will is more of a challenge.

Finding patterns in prominent stars within apparent proximity on Earth’s night sky is a human tradition dating back as far as the Neolithic Age. Marble already shows prominent stars — now teach it which to connect to form popular constellations!

To realize this, you first have to read and understand the current stars plugin. Fortunately the plugin is implemented in the brevity of 200 lines of code and Torsten is there to explain it. Afterwards you need to research common constellations, get their data, match it to the existing stars (or replace them), extend the file format and finally render the constellations. Implementing this will be awesome fun!

Carry back your mind to Venice at the start of modern history. Battista Agnese created a worldmap in 1544 which is still available today — help adding it to Marble’s collection of historic maps to make it available to an even larger audience! Creating map themes from images of historic maps involves much image processing. Depending on the projection of the original map, different tools are used. We have a Techbase Wiki page dedicated to that topic to get you started.

There are a lot of other tasks than those three: More  historic map themes and a couple of tasks related to quality assurance and extensions of Marble’s KML support.

Of course it’s also possible to contribute outside of Google Code-in: See our working areas. Those into social stuff can also follow us on Google+. We keep a nice stream of Marble news and media there.



Last month we had the second Marble developer sprint in Prague. Among the things we discussed were necessary updates to our website — needed a refreshing of its content and look. We decided to change the URL as well to avoid that potential users pigeonhole Marble as an educational tool: While an important part, other aspects like the OpenStreetMap integration, routing, the mobile versions as well as the whole functionality of an embeddable widget are better categorized differently and address several other user groups. The new website is now available at

Besides having a modern look, the new website integrates a lot of new content, for example information on the current KML support and a nice tool to generate .kml files from OpenStreetMap data.

Give it a try at!

Marble and Google Maps

One of the recurring questions in #marble and the Marble mailing list is

Why does Marble not support Google Maps?

From a technical point of view the answer is simple: Marble does support it (since a few years already). For educational purposes only some examples: If you would clone the googlesat map theme to ~/.local/share/marble/maps/earth/googlesat then a Google Satellite map theme would appear in Marble. And if you would clone the googlemaps repository to ~/.local/share/marble/maps/earth/googlemaps you’d have the vector based Google maps appear.

Now where’s the catch? Legal reasons prevent us from shipping them and also prevent you from using them. Here is an incomplete list of excerpts from the Google Maps/Google Earth APIs Terms of Service that are problematic for their use in Marble (and similarly a lot of other applications which simply seem to ignore that):

  • 8.5 Proprietary Rights Notices, 9.3 End User Terms and Privacy Policy as well as 9.4 Attribution. We’d have to add a bunch of copyright notices which are not yet implemented (though we plan to add those)
  • 10.1.1 (g) No Use of Content without a Google Map. One of the killer arguments: We cannot retrieve e.g. a route and display it on the OSM map, or use a reverse geocoding result from Google in a non-Google route result.
  • 10.1.1 (h) No Use of Static Maps API(s) outside a Web-Based Application. This one is debatable. Marble is not a web-based application, yet we’re not exactly using the static maps API.
  • 10.1.3 (b) No Pre-Fetching, Caching, or Storage of Content. Sorry, that’s one of the great features of Marble which we’re not going to restrict artificially.
  • 10.1.3 (c) No Mass Downloads or Bulk Feeds of Content. See above.
  • 10.2 (a) No “Wrapping.” The biggest part of Marble is a library intended to be used by various applications. It would wrap the Google services we would use (e.g. map display, routing, reverse geocoding)
  • 10.2 (c) No Navigation, Autonomous Vehicle Control, or Enterprise Applications. Another killer argument against using Google services. Marble does real time navigation, route guidance and turn-by-turn route guidance.

Some people argue that a lot of existing applications do not comply with those terms of service without getting into any problem. But seriously… that’s not an argument.

Bottom line is that unless Google changes those terms of service, we’re not going to integrate them in Marble. Fortunately OpenStreetMap provides a great alternative to Google’s services and is nicely integrated in Marble already. Just like many more map themes that are not shipped by default for space or legal reasons. Many of the former ones can be installed from within Marble however: Just use File => Download Maps to install additional map themes.