The Open Source Glass Cockpit Project

OpenGC Home & News, updated April 24, 2006

OpenGC is a multi-platform, multi-simulator, open-source C++ tool for developing and implementing high quality glass cockpit displays for simulated flightdecks. Our goal is simple: support all widely available flight simulators, all widely available operating systems, and provide a selection of gauges that mirrors the diversity of interests within the flightsimming community. I hope you enjoy OpenGC, and encourage you to contribute in any way possible!


OpenGC Project Admin - Damion Shelton (damion at


4/24/06 - The best laid plans of mice and men... I obviously haven't had much of a chance in the past year to actually get any work done on OpenGC. Rather than make excuses, I'll simply observe that life sometimes gets in the way of things. I have not given up on OpenGC, but it's been forced to take a back burner to other things and most likely will remain that way until I graduate.

In other news, the CVS server in my lab recently crashed and burned, and took the OpenGC CVS repository with it. Our server is being rebuilt with SVN rather than CVS, and I'll post instructions on how to use that as soon as it's up and running. In the meantime, you can download the most recent source release from Sourceforge.

11/22/04 - If you're curious, my thesis proposal was accepted. This means that I (in theory) have more free time available again to make headway on OpenGC. I figured it was probably time to do a runthrough of the build process and catch any bugs that have appeared due to my tendency to develop on Windows, Mac, and Linux in that order. Getting the 3 different OS's to agree on a functional version of the source code is not always easy.

Fortunately everything appears to be ok at the moment, though getting a successful build under OSX required updating some of the libraries to newer versions. The new versions are listed on the developers page and I've rewritten the "how to build OpenGC" guide to clarify a few steps that I thought might be vague. I have not yet tested under Linux, though it usually tracks MacOSX pretty well since they're both GCC.

10/22/04 - I've been busy in "real life" recently with thesis-proposal related stuff and finishing up my private pilot training, but I have managed a few updates to OpenGC (yes, things aren't happening as fast as I'd like but for better or worse this is just a hobby).

Major change 1: The data source object has been completely rewritten to support reading and writing of data. At the moment, no data sources exist which actually write data, but now the structure is in place. The FSUIPC/WideFS and FDSConnect data sources have been merged into a unified data source that takes a flag indicating which interface to use. This will make maintaining the combination of the two much easier; they both use the same offsets so it's really just a matter of slightly reformatting the read-write requests. Complete conversion of the FSUIPC/FDS interface isn't complete, but what's there works. I still have to go through and update the other data sources - right now they are disabled in the build.

Major change 2: Active development has primarily occurred in the opengcnew repository for the past year. Given the relatively major changes made recently and the fact that things are relatively stable (finally) from a build standpoint, I have merged the opengcnew repository back into the main opengc repository. There is now only one repository (opengc) with one package (opengc).

To clarify "what you get" when building OpenGC from source:

  1. A bunch of libraries for the data sources, nav components, gauges, etc. These can be used in your own software without needing to work in a monolithic "opengc" environment.
  2. An example application called "opengc", built using the FLTK toolkit. This is somewhat similar to what was previously being released as "opengc", but is a bit stripped down at the moment for testing reasons.

Why take this approach? I think it makes OpenGC more useful to other developers. The example application should serve as a jumping off point for those of you who want/need to develop custom applications. Another major benefit is that it's relatively easy to create standalone gauges that "just run", without requiring parsing of a configuration file. Note that the example application is released under the GPL, while the rest of the OpenGC is released under a BSD-style license.

7/6/04 - I posted a new build of OpenGC last week, which is a test build of the new repository. Although little has changed from an end-user point of view quite a bit of the code has been shuffled around. The major upcoming change is a completely rewritten data source object. The new version will support specialization of the data source on a per-source basis (i.e. specific data sources can customize what data is stored very easily) and particular gauges can query the data source to see if the data they need is offered or not. All of this magic is provided courtesy of the STL map class... stay tuned. In addition to the customization featuers, the data source will now be a read/write object, whereas it was formally a read-only object. So, where supported by the sim, you will be able to write control data back over the network.

In other news, both LO-MAC and IL-2 Sturmovik (with Aces expansion pack) now support network access. LO-MAC was purchased for me by a generous OpenGC user, and I picked up IL-2 on sale, so look for support for both of these in the not-to-distant future. A word of advance caution - I can't promise that I'll have time to add "steam" gauges for IL-2 or fighter-style gauges for LO-MAC, so don't be surprised if you're using the tried and true 777 PFD for a while.

4/23/04 - As you may have noticed, the web site is undergoing some major changes. After several years of using Frontpage, I've switched to Dreaweaver on my Powerbook. The new design is a bit easier to read and should be easier to keep updated since it's not tied to my home PC.

On the development end, the focus of OpenGC has changed slightly since my web update last fall. OpenGC is now adopting the toolkit model successfully employed by the VTK and ITK projects. This does not mean that the OpenGC application is going away; however, while development up to this point as been application centric (meaning that code developed in OpenGC is not immediately useful elsewhere), all future efforts are going to be focused on creating code that is as portable as possible. The current OpenGC application will merely be an example of what you can do with the tools OpenGC provides, albeit an example that is useful on its own even if you have no interest in development.

The OpenGC code(as of 9/13/03) is being relicensed under a modified BSD license. You can read both the new license and an explanation of why this was done here. Essentially, the new license is less restrictive for commercial development than the GPL. The gist of the BSD-like license is "do whatever you want as long as you don't misrepresent where the code came from or sue anyone". Several companies have expressed a desire to use OpenGC commercially, and I have a personal interest in eventually developing code for experimental aircraft hardware; a BSD license is more appropriate for these interests. Note that the original GPL code will remain available indefinitely, and you can continue to use it if you wish, though I will only officially "support" the new code.

Cool development stuff on the horizon:

9/16/03 - OpenGC 0.54 is now available. The improvements primarily deal with the EGyro data source, though a few other additions and bug fixes were made here and there. Note that the .ini file format is slightly different than in previous versions. I've updated the documentation PDF included in the release to reflect this.

One of the cool things included in the CVS of OpenGC (but not in the 0.54 release) is the ability to read NMEA format GPS data sent over the serial line from the EGyro. This will be expanded out into a separate data source to allow construction of moving maps that function in the real world. I did a test by driving to a few local airports last night and the map seemed to function correctly. The expansion of this functionality into a separate data source will allow those of you with GPS units but without EGyros to build your own moving map.

Finally, if you are not already aware the FSUIPC/WideFS programs that OpenGC uses to access the Microsoft sim line have moved to payware distribution. Although Pete Dowson has provided a means to register freeware applications like OpenGC at no cost, the need for WideFS (which is payware only) means that you will need a registered copy of WideFS once OpenGC moves to FSUIPC 3.0 in the near future.

6/28/03 - The announcement today comes in two parts. First, OpenGC 0.52 has been released and is available for download. This version fixes a bug that was introduced with the nav display that caused OpenGC to crash upon exit (which was annoying but not serious). It also improves the behavior of the PFD localizer and glideslope bars.

The second part of this announcement deals with a recently added data source that interfaces to the EGyro device available from PCFlightSystems. In short, this data source allows you to drive an OpenGC display using roll/pitch/yaw data received from the gyro, in addition to data which the gyro receives and passes through including GPS position, airdata, nav radio, and so on. If you'd like to see this setup in action, see booth 2152 in Building B at the Oshkosh airshow. I believe this makes OpenGC the first publicly available glass cockpit software of any form (commercial or not) to work in both the real and simulated worlds. In addition, I am quite pleased with the performance of this data source and it demonstrates the flexibility of OpenGC in easily dealing with various forms of data input.

Now for the disclaimer: OpenGC is not certificated for aircraft use and is not being represented as such. If you choose to use it in an actual aircraft, FAA guidelines state that you are assuming all liability and may use it for situational awareness only. Please don't be stupid.

6/13/03 - OpenGC 0.50 has been released. This marks the first version using the prototype nav display seen in the screen shot below. Among other things, this version fixes a problem that cause unusual behavior during resizing of certain gauges. There is a known bug in this release that causes OpenGC to crash when being closed; I will try to track this down prior to the next release.

Other features include a new installation guide, new freeware font, and a switch to the official X-Plane nav database. Please see the install guide included with the download for instructions on configuring this release, as it differs somewhat from previous versions.

Enjoy the new nav display - comments/suggestions are appreciated, but keep in mind that I'm aware of the limitations of the display as implemented.

5/13/03 - A quick update on where things are and where they're going. The nav display is progressing better than expected, and I hope to have a "generic" version of it ready to go in a few weeks time. The architecture is designed to be open, so that creating type-specific nav displays is a matter of deriving a nav display with specialized rendering functions rather than completely reinventing the wheel. A screen shot of the current state of things is shown below (sitting on the runway at KPIT - click to enlarge):