A Sneak Preview at Marble 1.1 on the N900

As you may know, we plan to do an intermediate Marble 1.1 release:

January 2011 Marble 1.0 libmarble 0.11 KDE 4.6
April 2011 Marble 1.1 libmarble 0.11
July 2011 Marble 1.2 libmarble 0.12 KDE 4.7

The initial release schedule got revised a bit, now listing

  • March 31st: Marble 1.1 Beta 1
  • April 7th: Marble 1.1 RC 1
  • April 15th: Marble 1.1.0

This release is not aligned with the other KDE applications and will therefore not be (fully) translated. On the plus side, the library is ABI compatible with the one used in Marble 1.0. Marble 1.1 brings many new features for the Desktop — see Torsten’s blog for an overview. This blog post is concerned with new features in the Maemo version that runs on the Nokia N900.

We replaced a couple of dialogs with stackable windows, which leave more space and feel more intuitive. As a nice side effect, the turn instructions now open in their own stackable window, fixing the annoying scrolling problem in the routing dialog.

A couple of people complained that the overview map in the top left corner had little use. You can now hide it (without editing the configuration file). The same goes for all the other info boxes.

If you upgrade from Marble 1.0 and used the “Download Region” feature a lot, the installation might take a bit longer than usual: We’re now sharing OpenStreetMap data with other applications like mappero and the data you downloaded within Marble is moved to the shared location during the installation. Sharing data means that you can download map data with mappero and view it in Marble (or vice versa). In the end it helps to save some disk space and reduces network traffic. On my N900, the migration moved 3.6 GB of OSM tiles from Marble to the shared directory which had a size of 2.5 GB. Since most of the tiles in the shared directory were duplicates, the shared directory only grew to 3.8 GB. That’s pretty neat, saving more than 2 GB for me.

One of the much requested features is voice navigation. We’ll ship a preliminary version with Marble 1.1. You can choose between sound output (turn points are announced with a sound) and speakers. We don’t ship any speaker with our packages, but you can use TomTom voices: Download one of the free ones (some websites offer them for personal use), convert it with our web frontend and copy it to your N900. A Userbase article has all the details you need. Enjoy 🙂

For future versions we plan to include distance estimations in the output. Additionally we’d like to ship a custom Marble speaker, granted we can fund some money for a professional speaker.


Marble 1.0.0 now available in Maemo extras

Version 1.0.0 of our mobile Virtual Globe comes with an improved user interface, is significantly faster and brings a lot of new navigation features to your Nokia N900. It is the first version available in the Maemo extras repository. This means that you can install it directly from the application manager of your N900.

“Find your way and explore the world with Marble” is the tagline that decorates the Marble 1.0 release. “Marble is a Virtual Globe with advanced routing capabilities. Use it as your personal navigation device to guide you to any destination in the world. Download maps from a variety of themes and explore the surroundings. Record your trip and share it with your friends.“, our package description continues. Let’s look into that in detail.

Online and Offline Routing

When an Internet connection is available, Marble can retrieve routes from OpenRouteService (Europe) and Yours (Worldwide). An arbitrary number of via-points is supported. Furthermore routing profiles can be created that define which routing backends are run with which configuration. The default configuration sets up motorcar routing (fastest and shortest) as well as bike and pedestrian routing.

Additionally you can calculate routes directly on the N900 without the need for an Internet connection using the Monav backend.

Offline routing requires additional country maps which can be downloaded conveniently from within Marble.

See this tutorial for further instructions.

GPS Tracking and Route Guidance Mode

The internal GPS of the N900 is used to retrieve your current location. The track is shown in the map (red line) and can be saved for further analysis in other programs.

In route guidance mode, driving instructions are announced in front of turn points. The map follows you as you move; Marble adjusts the zoom value automatically according to your speed.

Please see the GPS Tracking and the Guidance Mode tutorials for more information.

Themable Maps in Different Projections

A wide variety of map themes is supported, each consisting of one or more layers. The interactive legend can be used to adjust the current map theme to your liking.

Note that not all map themes can be shipped due to legal reasons. Google Maps or Ovi Maps themes are therefore not shipped, for example.

And More…

Translations for more than 40 languages are included. Compared to Marble 0.10, the first version available for the N900, Marble 1.0 is significantly faster. The OpenStreetMap theme in Mercator projection (default settings) for example renders more than ten times faster thanks to various optimizations. The hard to operate tab widget on the left is now replaced by dialogs. We plan to continue to improve the user interface, speed and memory consumption in future versions.

If you’re interested in Marble on the N900, don’t miss our KDE Userbase tutorials. You can install Marble directly from Maemo’s application manager. Please give feedback on the Marble download page, our mailing list or in the #marble IRC channel on Freenode.

Please note: Some of the screenshots above show map themes from the marble-maps package. This package is still in extras-testing, waiting for at least three more testers before it can be promoted to extras. The same holds for monav-routing-daemon, the offline routing backend. If you can spare some time, please become a tester and vote for marble-maps 1.0.0 and monav-routing-daemon. Thanks 🙂

Marble now in extras-testing

Just a quick note to N900 users: Marble is now available in extras-testing, the repository in between the experimental extras-devel and the user-available extras repositories. It is a post 1.0 Beta 2 (0.85) version, i.e. already contains most of the changes that will make up 1.0 Release Candidate 1.

To have the final version 1.0 readily available in the extras repository, your help is appreciated: Become a tester and vote on the marble package. Thanks!

Release Polishing

New KDE versions are released every six months nowadays. Roughly three months are spent on developing new features, the other three are devoted to release preparations. “What’s needed to get things ready for the release?” the curious might ask. “Why does it take that long?” the impatient. I’ll tell you from my perspective as a Marble developer.

User Interface Enhancements

While the user interface — the “GUI” — is most prominent to the user, it is only a small part of an application. When developing new features, certain sins happen commonly: Default sizes of widgets are inadequate, labels have confusing names or include too technical names, icons are missing or misleading. These issues can not always be avoided in the first place since the user interface changes a lot while features are developed. After feature freeze, however, no major changes happen to the user interface anymore and it’s a good time to correct those little mistakes. What does that mean in practice? Have a look at the Beta 1 => Beta 2 changelog for Marble on Maemo to see some examples.

Speed Improvements

“Premature optimization is the root of all evil”, they say. It makes sense to develop new features with that phrase in mind, though of course in practice one needs to find a balance between software design, code length/beauty and speed optimizations. When preparing a release, things have settled down and speed bottlenecks can be found and addressed.

For Beta 2 and RC 1 there’ll be a couple of performance enhancements which improve the rendering speed on the N900 by a factor of two: Bernhard added an optimized mercator texture rendering, Thibaut addressed unnecessary casts and similar performance problems in hot spots and I reduced the number of included cities in the vector maps. Altogether this results in a much smoother zooming and panning experience.


Although some people may have the impression that release preparations are all about fixing bugs, this isn’t really the case. Code reviews and the regular usage of new features by all developers helps finding bugs very quickly. Of course some bugs are left — there will always be bugs in any software — but at least the common code paths are usually well tested at all times.


Traditionally packaging software is done by the distributions. For Maemo, however, we are doing the packaging by ourselves. This takes it’s own fair share of time. Until recently our packages failed to build from source, meaning they couldn’t be build on Maemo’s buildservers and therefore are not included in the Maemo extras repository up until now. Luckily I managed to fix that error yesterday. Marble is now in extras-devel, hopefully we get it into extras for the final release.


Software developers mostly work with the latest trunk version and don’t load any user interface translations. In time for the final release, the translations become ready. Distributions then package them alongside the application. Unfortunately this happens rather late and often users are the first testers. Surely this leads to problems like missing translations, wrong translations and user interface problems (e.g. sizes) induced by translations going unnoticed: People don’t care to create bug reports for these issues, assuming some developer is already aware of it. This is often not true. (Please don’t read this section as criticism to translators. Just the opposite; they’re doing a wonderful job. The process of testing translated applications is what needs improvements in my opinion.)

Our Maemo version was only available in english until now. For RC1 I want to include translations to get bug reports about user interface problems early enough to fix them for the final release. Therefore please report bugs about widgets looking ugly or being unusable because of translated strings having different sizes than their english counterparts. For example, in the (portuguese) screenshot below, the driving instruction could have a better line breaking (by making the transparent information widget wider), so that’d be worth a bug report. But please do not add bug reports about missing translations yet. Many languages were not fully translated at the time of writing.


Last but not least Marble has a handbook that needs to be updated regularly. It addresses the Desktop version and therefore not everything written in it can be transferred to our Maemo version. Therefore I started to add Maemo specific tutorials to Userbase. Additionally we have an introductory screencast now. All of that can be extended, please help out! Just drop a line to marble-devel@kde.org or join #marble on IRC if you’re interested, but don’t know where to start exactly.

Marble 1.0 Beta 1 Packages for Maemo

One of the things we decided at the Marble sprint was to release the next version of Marble as version 1.0. This underlines that we consider the Marble application to be mature and reliable. Now we’re not at that point yet; you can help out by testing our beta packages however! Get a hold on Marble 1.0 Beta 1 (KDE flavor) from your distributions packages for KDE 4.6 Beta 1. Owners of a Nokia N900 are just two clicks away from Marble 1.0 Beta 1 (Maemo flavor): This is the first click.

What’s new in Marble 1.0 (Maemo), compared to Marble 0.10 (Maemo)? Quite a lot actually:

  • Improved user interface. The tab widget on the left is gone for good. You’ll find new and improved dialogs.
  • Offline routing. Marble supports three different offline routing backends. Packages for Monav are shipped alongside the Marble packages. Offline routing maps for all countries worldwide can easily be downloaded from within Marble.
  • Configurable route profiles. Select which backends are used for routing and configure them.
  • Alternative routes. If different routes are found, you can switch between them with one click.
  • Guidance mode. Turn your N900 into a personal navigation device and have Marble guide you to your destination. The map follows your current location, driving instructions are announced at turn points.

There are more changes and new features; some visible, some under the hood. As usual, we’ll provide a visual changelog for the final release. We’re looking for feedback on the beta packages. Keep in mind, however, that these are packages of beta quality. They may be unstable and may harm your system. Don’t use them for real-world navigation tasks.

Last Months in Marble…

Development for KDE 4.6 is going on for quite some time now and the first (soft) feature freeze is appearing on the horizon. A good point to look into recent and planned changes in Marble. Again this is biased towards routing in Maemo, though the same features will be available in the Desktop version of course. All screenshots below (including the picture) were taken today on my N900.

Alternative Routes

Multiple routing backends are now queried in parallel. The best route is chosen and displayed, but you can conveniently switch to any alternative route: Just click anywhere on an alternative route (displayed in gray) to activate it.

Left or right? Choose the route you like best.

Worldwide Routing

Online routing in Marble 0.10 (KDE 4.5) is limited to Europe, the supported area of OpenRouteService. The integration of Yours as another routing backend brings worldwide routing to Marble. While working great, we may have to deactivate this feature in the release version however — it is running on a development openstreetmap.org server whose lifetime may be too short.

Offline Routing

Internet access may not be available while traveling, or cost a lot. This is where offline routing, the capability to calculate routes without Internet access, comes into play. Marble supports different offline routing backends, namely Gosmore, Monav and Routino. I’m currently evaluating whether it’s possible to distribute Monav with our Maemo packages and host Monav maps for all countries on KDE servers. Offline routing maps for the countries you’re interested in could then be conveniently installed directly from Marble with a single click (Get New Stuff in the Desktop version and a stripped down version of it on the N900).

The screenshot below shows an outline of the area covered by the four offline maps currently installed on my N900: Baden-Wurttemberg (yellow, 210 MB), Germany (orange polygon, 538 MB), Austria (orange rectangles, 95 MB) and Switzerland (blue, 54 MB).

KML outlines of the installed offline maps

Turn-by-Turn / Route Guidance Mode

Originating in the project of my GSOC student Siddharth Srivastava, you can now activate a turn-by-turn navigation mode: The visible area of the map follows the current GPS location and turn instructions are displayed as necessary. It is extended by another recent addition, the route guidance mode. In case you deviate from the planned route, a new route is calculated starting at the deviated position.

Who says Q/A work can't be fun?

Improved User Interface

The sidebar with its tabs takes much space on devices with small screens. To improve this, we trimmed the available tabs down to what is really needed, moving some things to the map (“float items”) and turning other into dialogs like the Map View:

Even More…

There are a couple of other additions like route printing support in the Desktop version, automatic state saving and possibly some more I’m forgetting right now. Moreover, Niko Sams is working on another great feature: Configuration of routing profiles. It will allow you to fine-tune the routing backends and create custom profiles like a mountain-bike one.

My focus in the next week will be on finishing the new features and polishing everything to make sure we’ll have another rocking release ready. I hope to have alpha/beta packages ready as well in time to get tests from more users. Get your devices ready 😉

Marble 0.10.1 Packages for Maemo

Do you own a Nokia N900? We just released the first stable* Marble packages for Maemo. If you read this on your N900, they’re just one click away:

Like the versions released earlier, the packages are based on the Qt version of Marble. It’s the first time we provide one-click install packages, though. They’re expected to install seamlessly using the graphical program manager. Marble can be started from the application menu afterwards. Notice that the one-click installer above installs the light version of Marble (5.7 MB) that only has the OpenStreetMap theme installed. Install marble-maps from the Navigation section of the program manager to get all other themes. Please report feedback to marble-devel@kde.org.

*The fine print:

We call the packages stable because they come off the stable (KDE/4.5) Subversion branch. Indeed I don’t expect any serious bugs. However, we are aware of some annoyances in the current user interface that we plan to improve in the upcoming versions. Please don’t report any bugs against the tab bar on the left taking too much space, some dialogs being hard to navigate or some map themes rendering slow. We are aware of this and plan to fix it. With that in mind, have fun using Marble on Maemo 🙂

Besides improving the user interface and responsiveness, we do have exciting new features like offline routing and a turn-by-turn navigation mode in the pipeline for 4.6 / Marble 0.11. Are you interested to help out? We can use all sorts of talents who help us improving graphics, write documentation, sort out bugs or add new features… Please join our mailing list or lurk around in #marble on Freenode.

Hike & Bike Map in KDE Applications 4.5.1 / Marble 0.10.1

KDE * 4.5.1 has been tagged last week and should be available from your friendly distribution soon. Alongside some bugfixes for Marble, Bernhard Beschow added a new feature: Alpha blending joins the list of supported blending types in layers which Jens-Michael Hoffmann implemented for Marble 0.10. Just in time for our latest map theme addition: The Hike & Bike Map, contributed by Colin Marquardt, available now via the New Stuff feature (File => Download Maps in Marble). Let’s take a look at it in all its glory:

Notice how the hillshading — activated via the checkbox in the Legend on the left — gives a nice terrain impression. This is where alpha blending comes in. Hillshading won’t work with Marble 0.10.0 because alpha blending is not available there yet. Of course the Hike & Bike Map can also be used in conjunction with our Maemo version on the Nokia N900:

If you look closely at the screenshot, you’ll notice another new feature in the Routing department: Monav can now be used as an alternative offline router. In contrast to the Hike & Bike Map, this feature is not available in the 4.5 / 0.10 series of Marble though.

Adding yet another offline router is justified by both gosmore and routino being unable to calculate longer routes on the N900. Monav is able to calculate a route of 250 km in less than two seconds on my N900 – with the potential to do it even faster in the future. Different transport types, turn restrictions and driving instructions are not supported yet, so it cannot be used as a full replacement for the others at this time.

The two screenshots are taken from SVN trunk btw. Can you spot the new features added by our three GSOC students?

Maemo Packages

One of the things I’d like to have ready in time with KDE SC 4.5 are Marble packages for Maemo. Ideally they should be installable directly from the Maemo Extras repository. As there may be some packaging and deployment hurdles, it’s better to start early.

We spent some time on polishing our maemo packages in the last weeks. Marble on maemo surely has not yet reached the state where your grandmother would be happy to use it. Her grandchild however must not be a marble developer anymore to get it running. In other words, it’s time to distribute it to a wider audience.

Marble on Maemo comes in two flavors: A light variant that only contains OpenStreetMap, and a full version with different earth and moon map themes. The light variant with its nearly 6 MB is not as light as it could be; we’ll squeeze it further in future versions.

If you have a spare Nokia N900 lying around which you want to dedicate to test experimental packages, please have a look at our garage project. Packages ready for the N900 can be downloaded there. See the Release Notes on installation instructions.

Disclaimer: The packages are built from a very recent subversion checkout. They were only tested on a handful of devices yet. All sorts of breakage is to be expected. Use at your own risk.

Kudos to the brave testing the packages: I’d like to hear back from you. Just show up in our IRC channel (#marble on freenode) or drop a mail to marble-devel.

Someone requested a video of marble running on the N900. I tried to do a screencast using the load applet, but the result is not too good because of this bug. If you watch it, ignore the last four minutes, they show the same picture over and over…

Maemo N’ Marble

After looking for a new phone for some years, I recently bought a Nokia N900. The combination of decent hardware (a fast CPU, built-in GPS, hardware keyboard and sane size)  and the open software stack convinced me to spend the money. Today I’m pretty satisfied with that decision. One of the great things about it is that it runs Linux and is extensible.

Marble’s properties — fast, visually appealing, easy to use, minimal hard- and software requirements, offline usable, free software and open standards — make it appealing for a Maemo port. Working on the base of earlier ports, we’re polishing things up for the N900 for some time now. Some parts of the user interface clearly need more work, but we do have a functional and reactive version running already.

In the spirit of “release early, release often” I’d go for a first release soon. We set up a Marble Garage Project for that. Give us some weeks for final polishing and we’ll have packages ready.

The internal GPS device and routing via openrouteservice.org are supported as well. Does that make it a navigation device? Kind of.

You can use Marble on the N900 to plan a route and track your current position. But there is no guidance yet and other features one expects from a real navigation device are lacking as well. Call that a chance: Until Friday, students can file an application for Google Summer of Code “Marble to Go (Navigation Mode)“. I’m happy to hear from you 🙂