G-NAV

The free and open source web-based EFIS for gliding

A high quality navigation system for your region that you can easily setup and share with other pilots!

G-NAV is evolving!

After visiting different hardware and operating systems, G-NAV has been finally ported to WebAssembly and it is being developed further as a web system. With G-NAV anyone can now create its own web based navigation service and share it effortless with local and guest pilots. The application can be installed in all main browsers and accessed offline at any moment, just like native apps. This comes with the advantage that there is not a unique provider having complete control over the data and the system.
G-NAV is a transparent and high quality system developed using mature tools and methodologies that are most suitable for safety and mission critical applications. And unlike commercial solutions, here the data and the system can be fully under your own control.

Source code and releases are available in the GitHub repository. The system is fully FREE under AGPL-3.0 terms and conditions.

Ongoing project: APRS

The web environment in which G-NAV is being developed makes it possible to implement an automatic position reporting system (APRS) and online data logger. This is what I am working at right now! How does it work? The server provides each client a unique identifier with which they share their position at regular intervals. Then the server logs the data and gives you surrounding traffic in return. You will not only see other G-NAV users, but also all relevant traffic in OGN. The idea is also that you can request your flight data from the server after your flight using a separate web interface. You can try the APRS function in the demo below.

Ongoing project: the go-gliding navigation service based on G-NAV!

I am working on a service of my own covering at first only the region of our local cone centered at EBGG. Then I will try to expand the system to cover other european regions! The service will be available through a set of sub-domains based on the go-gliding.app base domain, which I already own. Normally I should be able to provide data for any club at club.go-gliding.app. The service will not only offer navigation, but also data recording and air traffic.

How does this system contribute to safety?

This is a very tricky question. If this would be a commercial product, I would take a time to put a lot of fancy pictures here and try to sell it by giving you all the reasons why this will boost your safety. But this is not the case, and I have the privilege to be honest about it. Using a screen in the cockpit can only help you if you know its limitations and you use it wisely. Not all functions are even trusty and the level of confidence depends on how many variables control the output. For example, to avoid airspace infringement the computer only needs the position and no manual inputs, so in this function you can put a lot of confidence. For final glide analysis, on the other hand, you need a correct aircraft performance model, a correct prediction of the wind, plus position, altitude and topography, and here the level of confidence should be significantly lower (take the time to see how some variables can affect the output, and you will get what I mean). Also with real time traffic information the data cannot be fully trusted. What is most likely to happen is that most of the times the picture will be incomplete.
So in conclusion, this system can increase your situational awareness, but only if you make sure it is correctly configured and do not take everything for granted. Take into account that commercial aviation is so much safer than general aviation mainly because of ATC, and not a single onboard system is currently able to equalize that service.

Look, you can try the real application here!
You can also try the evaluation kit located in the GitHub repository... you can easily start it on a python web server of your own under almost any operating system. Have fun!

What is G-NAV exactly?

G-NAV is an electronic flight instrument system (EFIS) for tactical soaring that runs as a progressive web application inside web browsers. This is not a fork from any existing open source project (other than the original native version) and the application is in many ways different to any other one out there. The graphical interface is different, the programming language is different and the system architecture is different. In short, this is something you have never seen before.  Still, this project is not about redesigning the wheel, but rather about applying a different technology, mentality and strategy.

Being web based, the system has an incredible flexibility and is open to a wide variety of possibilities: it can run isolated from the world as a standalone application or in direct connection to an on-line web service, which might be based on the ground or inside an onboard flight data acquisition system.

This is how I envisage the system architecture for now:

In both cases, the server can be open source or proprietary. This is inherent to web technology and something we can't avoid. However, by adopting the AGPL licence, we can ensure you can always download everything from the server that is providing the application and replicate the system.

Being OS-independent, G-NAV runs seamlessly on most platforms with a single WASM module: Android, i-Phone, Mac, Windows, effectively solving that problem once and for all and still providing plenty of different solutions with the current state of technology.

In the current state, the system can be scaled to cover a region of up to a bit more than the size of Belgium in a single service. The size of the area depends on the resolution of the terrain data, but to get an idea, it can be at least 300 x 300 km with a very decent resolution. To get a larger extension, the information has to be distributed in different services. The application is in any case lightweight, responsive and portable, as I hope you can experience in the demo. The WASM module only weights about 1MB and the data is optimized and pre-compiled in light binary files.

What are the basic functions in the app?

G-NAV provides all basic functions that you would expect from an electronic navigator:

Why should you consider trying this system?

Because G-NAV is:

Will you be missing something in this system?

Short answer: YES (but maybe for good). G-NAV is a very young project and it obviously does not fully cover the needs of all glider pilots. But fulfilling everyone's needs is a very hard and risky goal in the business of software, because more features demand more code, system resources and training and at some point this encompasses more issues than solutions. Therefore, some features will be missing on purpose. A small list of features are still pending, but in the long term, I don't envisage an application that is feature-wise a lot more different than it is today. For me, stability and reliability are more important than secondary features. And at the end of all, you don't want the system to overtake the fun of flying.

Can I have this for my gliding club?

Yes. G-NAV is being designed so that every club can own and maintain its own EFIS server. You then become the owner of your own system and data. If you want to bring it to your gliding club, you might want to start by joining the community. Basically, you will need a static server providing the released system files and your own dataset covering the extension of your flying region and aircraft fleet. Detailed information is provided in the user's manual. You don't need to be an IT expert for that last step, but you will still need some basic skills, because in G-NAV the data must be predigested by a data compiler. If you need help, I can support you in the process.

Can I include this in my equipment?

Yes, in principle. G-NAV is also being designed so that a G-NAV server can be installed inside a data acquisition system. Some work is still necessary to fulfill this capability (like special data transferring).

Can I help developing the project?

Yes, for sure. If you have some level of expertise in web technology, your help would be more than welcomed. The success of the project will mainly depend on this kind of support. You can also test and validate, or help with the documentation. Also, if you are an experienced glider pilot, you can help improving the application a lot by testing it and sending feedback.

G-NAV is based in Ada

Ada is the main programming language for G-NAV. 97% of the code is written in Ada and compiled into a WebAssembly module that runs at near-native performance. Did you know that this programmning language is at the core of many ATC, railroad control, avionics and space systems? Well, it is, and for one good reason: Ada scores in safety like no other programming language. Ada produces highly readable and reliable code, because it allows the programmer to be quite meticulous and explicit with the code and because the compiler is able to detect and block issues up-front. Therefore, this project stays as much as possible away from unsafe languages like C/C++ and also from uncompiled languages like Python or JavaScript. Of course the world is complex and these cannot be fully avoided, but then G-NAV restricts to interfacing with modules that are intensively used and tested by big world-wide actors (like web browsers and WebGL).

How much does it cost?

The project is fully FREE and open source under AGPL terms and conditions. Take a look at the official repository here.

Who is behind this?

I = Guillermo Hazebrouck.