GpsPrune is available to download from the downloads page, with the latest released version being version 27.1. Details of the development of forthcoming versions are given here.
Please also look at the user guide for details about the user guide now available (in PDF and EPUB formats) for GpsPrune. Your feedback is valuable and much appreciated.
The following features are on the list for version 27.2 and onwards. Please also see the wishlist for new features which have been proposed by users of GpsPrune, and what's new for the recently developed features.
.pruneconfig", all files should have been migrated to gpsprune.config by nowVersion 28 will likely include Mapterhorn as an alternative source of elevation data instead of SRTM3 or SRTM1.
For the Mapterhorn data, one way it could work is that each user runs the pmtiles CLI tool locally to extract elevation data to a local file (using a fixed zoom of 9 and a bbox for their desired area). This single file would then just be stored in their SRTM cache.
Currently, GpsPrune code can inspect this .pmtiles file and read the header describing the area and the information about the included tiles. It can also understand the tile identifiers, calculate the locations of each of the tiles, and work out the relationship between latitudes/longitudes and pixel coordinates within specific tile images. Some tiles are not included but that's ok, it just means that the altitudes are all zero within those tiles. Each of the tiles is encoded in webp format, and it looks like we can use jwebp to do this in a cross-platform way. I've compared the pixels extracted by jwebp with the pixels extracted from the bmp files converted by ImageMagick from the webp data, and everything matches, so it looks like the (alleged) twelvemonkeys bugs can be avoided this way.
The conversion from pixel colour to altitude is very straightforward, so we've now at least theoretically have a way to go from a local .pmtiles file to altitudes for coordinates. The bits which are missing are mainly the pre-processing to ensure that altitudes for many points (either for a track for for a terrain grid) can be determined without reading the webp files multiple times. And the handling of multiple zoom levels within the same archive. And the relative priorities of the three lookup sources.
It's going to end up fairly complex, probably, but the result should be more better quality elevation data, more complete and potentially at higher resolution, depending on coverage. I'm still hoping for a good response to this. (Spoiler: no, there wasn't)
In 2026, user interest in GpsPrune appears to have taken a sharp decline — this is visible in the number of downloads, the number of emails, the number of translation submissions, the activity in Github issues and in the Sourceforge discussion forums, and particularly in the interest in the user guide.
Perhaps this is normal for a tool which is now almost 20 years old, and perhaps mobile applications and web-based databases have overtaken the requirement for a PC-based tool. Whatever the reasons, we'll have to see.
So the first step is to remove the "two-for-one" offer with the user guide. Up until now, a purchase of version X of the user guide has automatically given you version X+1 for free, which presumably makes it more attractive. You get essentially one free upgrade, which keeps you current for longer, especially as the next version of GpsPrune is also available for free. But this means that having sold (a small number of) user guides for version 27, I'm now obligated to release GpsPrune 28 and also a user guide for version 28, because this has been promised to the purchasers of version 27.
Starting from version 28, there will no longer be a promise of the next version of the user guide for free, and therefore it's possible that version 28 will be the last version of the user guide. It's also possible that demand improves and there will be many more versions of the user guide, I can't tell yet. It's possible that GpsPrune development carries on for another 20 years, and it's also possible that version 28 will be the last one, I don't know.
Upgrading from a previous version of the guide to the current one will still be possible at a 2 EUR special rate, that will remain unchanged.
The only things which I can currently say for certain is that there will be a version 28 of GpsPrune, there will be a user guide for sale for version 28 (which will be given free to purchasers of version 27), and there will not be a free version 29 of the user guide promised to purchasers of version 28.
As always, all help with the translations will be very welcome! Please help to expand and improve the coverage of your favourite language. Please see the "translations" section below if you'd like to help.
Since February 2015, GpsPrune has a repository at GitHub. It's got all the history since version 1 in there, and the plan is to keep it updated with the latest released code. For those who find submitting git pull requests easier than submitting diffs by email or sourceforge, then this might be something for you to look at. It's also a good way of raising issues if you have questions or bug reports. I'm guessing that for most people, especially those without github accounts and those unfamiliar with git, the other methods of bug reporting and patch submission will continue to serve well.
| Language | Completion for 25.* | Completion for 26.* | Completion for 27.* |
|---|---|---|---|
| English, German, Swiss German, French, Spanish, Italian, Dutch, Swedish | 100% | 100% | 100% |
| Portuguese | 98% | ||
| Polish | 93% | 95% | 95% |
| Catalan | 92% | 90% | 90% |
| Norwegian | 88% | 88% | |
| Chinese | 84% | 82% | 82% |
| Russian, Hungarian, Czech | 82% | 81% | 79% |
| Romanian, Finnish | 80% | 77% | 76% |
| Afrikaans | 75% | 73% | 73% |
| Japanese | 56% | 55% | 59% |
| Korean | 54% | ||
| Turkish | 36% | 35% | 35% |
| Welsh | 25% | 25% | 24% |
| Ukrainian | 24% | 23% | 23% |
| Danish | 21% | 20% | 20% |
| Indonesian, Farsi, Slovenian | < 10% | ||
The translations of GpsPrune are in greatly varying stages of completion. This table on the right summarizes the percentage of translations which are complete for each language. If you want to help with these translations, there are now three (count them, three!) ways for you to do this. The idea is that if the translation process is made as easy as possible for the translator, then the likelihood is higher that somebody might feel like helping out. So to make the entry barrier as low as possible, here are the options, in order of preference:
Obviously it would be great to get the nearly-complete languages back up to 100% again, like for example Polish, Catalan and Norwegian.
Unfortunately there are also several languages here less than half-complete, which is why they've not been included in the release jars. You can use these files if you want (available from the download page), but obviously most of the texts are still in English. Any thoughts from users of these languages? Is there any interest in reviving or boosting these translations?
There's an interesting tool called SLOCCount, which goes through a code tree and counts up how many lines of code there are and in which languages. It seems to ignore blank lines, and comment lines and so on, so its figure for GpsPrune is (at the time of writing) 36 thousand lines rather than the 52 thousand which a simple wc -l gives. But anyway, then it uses a formula to estimate how many person-months it would take to develop a traditional commercial product of the same size, and how many dollars you'd have to budget for it (including a bunch of overheads such as project planning and specifications etc). Clearly most of those assumptions and parameters are completely invalid for a small open-source project, but just out of interest, I tried it out. As of version 15, GpsPrune is now worth over 1 meeellion dollars! And for you, it's free :)
The estimator at openhub however comes up with a figure of only around half a million dollars, even using apparently the same parameters, so that might give some indication how meaningful the estimates are! Oddly, this tool completely ignores valuable comments in the code, and valuable text files and properties files, but inconsistently does count an xml file the same as raw code(?) and also cares whether a logical line of code is split into several lines for readability or not. Is a four-line if block really worth so much more (or so much more costly to produce) than exactly the same expression in a one-liner?
Update: there's a bunch more on this topic at development stats, including some pretty charts of GpsPrune's metrics.
There's a very interesting tool called gource (like source but with a g), which makes very pretty animations to visualise a software tree as it grows and develops. Using the logs from the source control repository, it knows the file tree structure, it knows when each file was added, edited or removed, and by whom. And it's able to animate this, with each file represented by a little coloured ball, and each checkin causing balls to appear, move and shuffle around the bouncing tree. Check it out on youtube, it's mesmerizing.
So I tried this little tool out on the GpsPrune tree, and it works great. It shows the bursts of development (new files, often concentrated in single areas, reorganisations of files between directories) between long periods of testing and fixing (mainly edits to files, especially translations and build files). It shows the appearance of new functions like little flowers bursting into bloom, and the gradual transformation from a small bunch of dots into the current package hierarchy, as shown in this screenshot.
The purple dots shown here are the java files, the blue and green dots are the images, there's a bunch of blue translation files, and a small scattering of other file types such as xml and txt.
The following credits also appear in the "About" screen of the GpsPrune application, but it's worth repeating here - grateful thanks to all those who have helped contribute so far, by whatever means!
| GpsPrune code written by : | activityworkshop.net |
| Exif code written by : | Drew Noakes (drewnoakes.com) |
| Webp reading by : | Jwebp |
| Many icons provided by : | |
| Services : | SRTM data courtesy of the U.S. Geological Survey |
| Deprecated services : | Maps from |
| Translators : | Ramon (ch), Miguel (es), Inés (es), Piotr (pl), Petrovsk (fr), Josatoc (it), weehal (pl), theYinYeti (fr), Rothermographer (ro), Sam (zh), Rudolph (af), nazotoko (ja), katpatuka (tr), Rémi (fr), Marcus (pt), Ali (fa), Javier (es), Jeroen (nl), prot_d (cz), György (hu), HooAU (ko), Sergey (ru), Gilles (fr), serhijdubyk (ua), Péter (hu), Matteo (it), Peter (hu), Oana (ro), Cristian (ro), Roman (ru), Erkki (fi), Paolo (it), Maciej (pl), Erik (sv), Carlos (es), Tche333 (fr), J.M. (ca), Mars Yush (pl), Bun (ja) |
| Technical feedback and patches : | Piotr, freegeographytools, Rudolf, Steven, Jose, Jeshi, Denny, Thomas, Jozef, Gregor, Robert, Jani, zapfen, Joerg, Alexandre, Anti, José, Arvee, Sebastic, PeHar, fperrin |
| Mac know-how : | Tyme, Daniel, Michael, Richard, Marek |
| Translations helped by : | Open Office, |
| Development tools : | GNU/Linux (originally Mandriva, now Debian and Mint), Java (originally Sun, now OpenJDK), an IDE (originally Eclipse, now moving to IDEA), version control (originally Subversion, now git), Gimp, Inkscape, bug-spotting (was findbugs, now IDEA and spotbugs) |
| Other tools : | Garble, GPSBabel, Povray, Exiftool, Google Earth, Gnuplot, JOSM, TeX Live, Sigil |
| Thanks to : | Friends and loved ones, for encouragement and support |