Need is the mother of invention - I guess nobody has to be reminded about that. Yet, the idea itself is only half of the success. The other half is the right skills. Robert Celiński, Chief Analyst at Comarch, will tell us about his Polskie Góry (eng. Polish Mountains) app, its growing popularity, his plans for the future, and about how passion can entwine with new technologies.
You are the author of the Polskie Góry app. Can you please explain what it is about?
Polskie Góry is a mobile app that was created for the Android platform. What it does is to use the augmented reality technology to mark names of mountain peaks, their height, and the current distance on an actual panoramic photo taken by your cell phone. The app works with GPS, compass, and location sensors on your phone. GPS determines the location, sensors indicate the viewing direction, and the app automatically draws a virtual panorama with descriptions and inserts it into the real image.
Sometimes the compass indications are not reliable, which is why the app is also equipped with a manual mode that allows the user to independently move the virtual panorama and adapt it to the shapes of the mountains and the sun’s current position, which is also simulated by the program.
These are just the basic functionalities of the app. It also contains maps with marked peaks, descriptions of each mountain range, their classification (e.g., Crowns of Polish Mountains), and a peak search tool.
Does the app work only on Android?
Yes, I’ve created it exclusively for Android. Since it is meant almost only for Polish users and 80% of smartphones sold in our county use this system, it makes perfect sense. Sorry Apple users! My app works entirely offline, which is very important as there usually is no signal in the mountains. The only moment you need internet access is when you want to synch the peak collection. Since this can be done with a wifi connection, your Android smartphone doesn’t even need to have a SIM card for you to use the app.
As for the peak collection in the cloud, the best option to manage it is with your computer browser - which is independent of your mobile device. It is not in my plans, at least at the moment, to adapt the app to iOS, as it is not so easy and implies high costs of devices and licenses. What I like is to write and test the app algorithms. Having to rewrite everything for the Apple ecosystem doesn’t sound like much fun to me.
I tested your app before our conversation. I must admit that the database is quite impressive.
That’s right. The app works with a large base of peaks, which currently contains over 9 thousand records. It includes data from 28 Polish mountain ranges, as well as several German (DE), Czech (CZ), Slovakian (SK), and Ukrainian (UA) and even more distant Romanian (RO) and AUSTRIAN (AT) ones.
The app is called “Polish Mountains”, but it contains more than that, doesn’t it?
It’s true; the peak and the land topography database also includes smaller hills in Poland and tall buildings, chimneys, masts all over the country, and lighthouses on the Baltic coast. That means you can quickly test the app while you’re spending your holiday at the beach. The app should always show some results, no matter what place in Poland, you start it. Warsaw downtown has 40 skyscrapers registered; in Cracow, you can find descriptions of the four mounds, t. Mary's Church, Wawel Cathedral, the K1 tower, Malczewski RON, surrounding hills, and the nearby powerplant chimneys.
One of the functions that I particularly like is the possibility to “collect” mountain peaks.
The collecting module is an essential part of the app. If you find yourself near a peak you have not conquered before; the application will suggest adding it to your collection. This data can then be easily synchronized between your account and your collection on the cloud.
Most users tend to mark the previously conquered peaks in the portal. That can be done on maps, lists with checkbox fields, or by name search. You can then download this information to the mobile app, save it on your phone, and access it offline when necessary. The collection module is quite popular; users have registered almost 20 thousand conquered peaks in the portal; the best ones have well over a thousand. Personally, I am in the 4th position in the ranking with 734 mounts.
That does sound impressive. From what I know, if you want to start collecting peaks, you need to log in on the website. Is it mandatory to register to be able to use the app?
The app is free, and it doesn’t require registration. However, if you like collecting mountain peaks, it is recommended to open an account on the website and synchronize your peak information regularly. In this way, you can be sure you won’t lose the data if your phone gets stolen. Another advantage of having an account is that you can quickly move your data to a different smartphone and copy your collection to another person’s account.
Hearing all this makes your app sound like a well-oiled machine. Can you share with us what technology you used to create the app?
It was created in Android Studio and uses such technologies and methods as AR (Augmented Reality), IR (Image Recognition), and some elements of AI (Artificial Intelligence). AR is crucial for the app’s functioning. A computer-generated description layer is applied to the actual view of the mountains. The IR function allows you to read the line of the mountain horizon from the image, which works well when the weather is good, and the view is not disturbed by trees or other objects. The app can then visually identify the peaks on the horizon line, confront this information with the data generated by the program's algorithms, and then describe the visible mountains.
Can you tell us some more about how you’ve used the AI in your app?
AI is a trendy concept recently, and the use in the Polish Mountains app might sound a bit far-fetched. The program learns which peaks someone has climbed and which ones they haven’t. Based on this data, it can suggest during a hiking trip: “Hey, you are not far from one of the peaks you haven’t conquered yet. If you go 1-kilometer southwest and climb 75 meters, you will reach its top, and you can add it to your collection."
In the media, you can often hear the catchy slogan "artificial intelligence in business.” It usually means that when you buy a particular product, the AI system will offer you some additional accessories. My app uses a very similar concept.
But it doesn’t stop there. I went a little further with using AI in my apps. I started to classify the peaks in the app according to different categories: their popularity, the existence of a hiking trail, the level of difficulty, etc. This has allowed me to profile a user based on his or her current collection. If I see that they often choose peaks off the trail, AI will propose similar peaks during their trips. In this way, they will be able to do what they like the most: wade through the bushes. However, if the app sees that a given user does not have any Tatra peaks in their collection, it will not offer them to climb, e.g., Mnich from Morskie Oko.
In your daily work, you are Chief Analyst. Has it been of any help during the app creation?
I’ve been working at Comarch for 17 years, and I have held all sorts of positions in public administration projects (ARR, Trezor for MF, ePUAP, SIMIK), usually as an analyst. However, I also worked as a programmer for a couple of years, coding in Java, ASP.NET, PL/SQL. I am currently the chief analyst for the OFSA project that we are implementing for the AEiMR. We maintain and develop a system used to distribute funds from the Rural Development Program for Polish farmers and other entities. In my work, I oversee lots of organizational tasks in the analyst team. Still, I also stay in touch with the “living” system, app code, and database included; sometimes, I get to discuss even more technical issues. This position requires quite a lot of versatility.
Much of what I’ve learned at Comarched has proved very useful for my private IT projects. When creating a mobile application, you need many skills - from coming up with an idea and analyzing user requirements to designing, programming, testing, and promoting the application. Only those latter skills have nothing to do with my work at Comarch; all the rest I’ve learned here. As for the promotion of my app, I had to learn to create promotional content myself, promote the app on Facebook, and spend a little money on advertising. Luckily, my contacts with mountaineering groups, Instagram, and so on have been really effective.
As I said, many of the skills acquired at Comarch proved useful to me when creating the app, but it has also worked the other way around. While creating the app, I learned to code in Java, making me more efficient at work. In the past, I used to develop mobile applications in J2ME or NetBeans-based IDE. Then I moved to Android and started using the Eclipse plugin. Finally, the IntelliJ-based Android Studio came. It all has always intertwined because I also used these tools at work. When creating my apps, I used technologies I had no chance to come across when working with transactional systems in public administration. As you can see, thanks to my private IT projects, I have been able to broaden my technological horizons.
The application algorithms are quite complex, especially the mechanisms for determining peaks’ visibility and rendering the land relief. I needed to take into account that smartphone cameras have different viewing angles. The image in the margins is wider than in the middle. This, in turn, had to be translated into the application software and its functioning in augmented reality because the peaks in the margins are visually wider apart, and there should be bigger gaps between their descriptions. It was necessary to use more advanced mathematics for this, e.g., for the application to draw the sun’s current position and provide its incidence angle. While working on the application, I got to know many natural phenomena. I learned about the impact of the Earth’s spherical shape on the peaks’ visibility, and I found out what undulation and refraction mean. I also realized that we look at more distant mountains not in a straight line but an arc because the light ray bends in the Earth's atmosphere, and thanks to this, we can see the peaks that theoretically should be hidden behind the horizon.
All this had to be translated into mathematical formulas and application code. I never thought I would ever need what I learned at college about matrices transformation, and here we are. With image recognition algorithms, I needed to refresh this knowledge. All this work has helped me to train the mind and has had a positive effect on my everyday work. Technical and programming skills are also useful in my position. Thanks to them, I know the system "back to back,” not only from the level of analytical documentation and user interface.
You’ve mentioned that Polskie Góry is gaining popularity, which is excellent. But how did you even come up with the idea for the app? How did it all begin?
That's right, Polskie Góry already has over 70,000 downloads in the Google Play store and an average rating of 4.5 stars out of five. This is a great result considering that it has been rated by over 900 users. What’s more, in the case of such complex applications like this one, users don’t usually bother to read the manual but are eager to comment and advise on how such an app should work. Yet, not everyone who comments on a football match is an official coach, and not every opinion on a mobile app comes from a knowledgeable developer.
Polskie Góry is also available in the Huawei AppGallery and is quite popular there too.
As for where the app’s idea comes from, ten years ago, I moved from Warsaw to Bielska-Biala, a city in the south of Poland, where my wife is from. I fell in love with the local mountain chain - Beskidy - in the same way, I once fell in love with my wife. We are both runners; in fact, my wife competes. She has obtained 27 medals in national championships, especially in mountain running, and in 2013 she won the bronze medal in the world mountain marathon.
Whenever we went for a run, I would be fascinated by the ever-changing landscape, comparing what peaks you could see from different locations. One day I thought: “it would be cool to write a mobile app that would describe these peaks automatically.” I developed the software in 2015, and for the next five years, have been developing the app further.
It-s true, Polskie Góry has grown a lot since its early days. And what are your plans for the future? Are you going to add new peaks? New functions?
The peaks’ database is ready; even points not marked on tourist maps are introduced in it, the mountains have quite detailed descriptions, and there are also links to Wikipedia if someone would like to read more about the peak. You can learn a lot about the mountains in Poland from the application and portal. I will develop the base mainly with artificial objects, e.g., I recently added Varso - the highest skyscraper in the European Union (310 m with a spire), which has just been built at the Central Railway Station in Warsaw. I have a few more ideas for improvement in terms of features, but these are details that most users will never use. The application’s functionality is already pervasive, and it is worth spending some time familiarizing yourself with its capabilities and learning how to use it efficiently.
Any ideas for your next app?
I do have specific ideas, but I try to keep it cool. I currently have no time to work on a neve app. My baby daughter was born last year (on New Year’s day, to be precise), and she has turned our life upside down. My wife and I still run regularly (she is actually training quite hard), but all other things have had to be postponed.
It seems like mountains are not your only passion. I’ve heard you’ve also been quite successful in running.
So far, I have managed to implement many exciting projects, not only IT. When I started working at Comarch, I was running a lot and traveling around the world. I completed marathons on seven continents; in 2008, I won a marathon in Antarctica, setting a new record for that continent. I was the first Pole ever to complete all six World Marathon Majors - the most important marathons in the world: in Boston, New York, Chicago, London, Berlin, and Tokyo. I have also run marathons in almost all European capitals, including many mountain ultramarathons. In 2007, together with my brother, I won the famous Butchers Race in the Bieszczady Mountains, setting a new record for that route.
For many years I have also managed the Byledobiec Anin running club. I’m in charge of the club’s website where I enter the results of each competition. I have also developed a statistics and ranking generator. Until recently, I also wrote reports from my marathon trips around the world. Now the activity on the portal has decreased significantly, but the club still exists.
Some time ago, I decided I would continue mountain running only for pleasure and not to compete. Having some extra time on my hands, I started developing IT projects.
Exactly, Polskie Góry is not the only one of your “famous” projects.
My first application was RunCalc, first a running calculator for Nokia button phones, then an extensive Android app and a website. Same time later, I created the RunCalc web application, which can be used on any device, including iPhones, as long as it has an Internet connection. The technologies I used in the RunCalc web application are HTML5, JavaScript, and the jQuery Mobile library. The application is integrated with the RunCalc website, where you can send your workouts, watch them on maps and charts, plan your own routes, and upload them later on your phone.
This feature allows the runner to move along the previously planned route. In case they go astray, the program will immediately inform about it with sound signals, showing the target and actual track on the phone screen. The RunCalc application and the website are compatible with other similar platforms (e.g., Endomondo, Garmin, Strava - editorial note). The data exchange format is GPX files (GPS eXchange Format - editorial note). I have built the website thanks to my knowledge of the MySQL database, PHP, and JavaScript. When creating websites, I do not use any ready-made templates. I design CSS and graphics myself, and since I'm definitely not an artist, it may not always look so great.
RunCalc is a niche application; few people use it, because the competition in this market segment (devices and applications for monitoring activity - ed.) is enormous. I have to admit that I didn't really care much about the app's graphical interface. It looks raw but is functionally very rich. I use RunCalc every day while running. My wife follows live tracking on the map to make sure I haven't lost my way somewhere in the mountains. I also use RunCalc interval training. The app beeps when I'm going to accelerate and jog. Such variable exercises improve your running fitness. I have been storing the entire history of my sports activities for ten years on the website and even imported older data. What’s more, I’ve embedded route maps and elevation profiles from the RunCalc portal to the Polskie Góry blog. These two apps are interconnected - they form a single ecosystem.
I’ve always had lots of ideas but quite limited time to carry them out. Somehow, I’d still managed to complete everything. However, after my daughter was born, my approach has changed: I have almost no time for coding. On the other hand, I’ve resumed playing chess, which used to be my old passion. When I was in grammar school, I was pretty good at it. Now I have fun solving chess puzzles, which doesn’t typically require much time. I treat it as a substitute for coding, and it helps me keep my mind sharp.
Apart from that, I do mountain running every day for an hour or two, and each summer, I participate in ComarchONrun. I usually make it to the top of the ranking, and I often win in the running category. As you know, the goal of that competition is very noble: we support the SŁONIE NA BALKONIE foundation. I’d like to take this opportunity to encourage all Comarch people to participate either in the running, skating, or biking part of the competition.