Reach for the open skies: An interview with Curtis Olson

FlightGear is one of the most amazing and most important open source projects in existence. With a huge community around it, and a group of talented aviation lovers to develop it, FlightGear is the greatest and most open way to travel our world!

Curtis Olson who is one of the founders of the project, explains the technical uniqueness of FlightGear, the plans of the project and how his love for airplanes made him a big part of this huge effort.

Introduce yourself and tell us a few things about your role in the FlightGear project.

My name is Curt Olson. I have been involved in the FlightGear project since it’s very start. For the first few years I did much of the heavy lifting (coding, project management, etc.) myself because I knew FlightGear would be highly successful if I could just get it over the “hump”. Over the years we’ve had many other talented developers join the project and establish leadership roles by making a variety of solid contributions.

My own educational background is in Computer Science, but I have been a life long aviation enthusiast. I have flown RC model airplanes since high school when I accumulated enough money in my summer job to buy a trainer kit, a motor, and a radio system. Since then I have leveraged my love of aviation, combined with my computer skills, and RC hobby to contribute to FlightGear. For the past couple years I have been working with a small group of developers to create a small “marinized” UAV for use in ocean debris survey work by NOAA.

Was this RC model airplanes hobby that drove you into the creation of FlightGear, or something else?

Going back to my high school years again; we lived in as smaller town and once a month or so we’d drive into the big city for a day of shopping and errands. In order for us kids to not go crazy, my parents would agree to stop at a hobby shop or a computer shop along the way (and we’d beg for both.) One time at a small computer shop I saw the original flight simulator running on an Apple IIe computer. I was blown away by how cool that was. Eventually we got our own apple computer and I bought the software and spent countless hours flying around the various scenery areas available.

From there time passed, computers got more powerful, flight simulator was bought by Microsoft, and eventually got to version 5. At that time they came out with a new release or new incremental version (now I can’t remember the exact version numbers) but a number of people on the internet were dissatisfied with the number of bugs and issues. Also right about that time I had spent a couple hundred hours reverse engineering parts of the saved “situation” files so I could insert my own weather conditions automatically based on weather maps downloaded from the internet. And I say weather maps because I wrote some optical character (and symbol) recognition software to extract the actual surface conditions from a graphical map which was the only real time source of weather I was able to locate at the time.

Microsoft Flight Simulator 5

At that time I really wished there was an open source flight simulator so that developers like myself could spend the bulk of their effort working on their ideas, and not have to burn precious time and energy reverse engineering binary structures and hacking proprietary code and interfaces — stuff you aren’t really supposed to do anyway.

All of that came together in late 1996 when a few of us on one of the flight sim mailing lists said “Let’s write our own flight simulator, how hard could it be?!?” We started out pretty naive and optimistic. I like to say that our enthusiasm outweighed our common sense and we tried very hard in the beginning to ignore the reality and magnitude of the challenge. But by the time we discovered how hard it was, and how much work we had created for ourselves, we had a quite a few things running, and so we said what that heck, let’s keep going with this crazy adventure!

FlightGear has come a long way and is now a big useful tool in the hands of everyone in the world. How difficult was it to keep it free and open source all these years?

That actually has never been an issue. The open-source community has tremendous momentum and respect and support across the globe. These days it can be hard to find a computer device that isn’t full of open-source code at every level. We never wanted to prevent legitimate commercial use, so we have stuck with the GPL for our license. There is a small outfit called proflightsim, virtualpilot3d, and many other names that sells an older copy of FlightGear under less than straight forward marketing. That has really been the only frustrating situation we’ve had to deal with and endure.

As FlightGear is becoming better and better, it draws more commercial simulators “customers”, making it a target for patent trolls and more prone to situations similar to what happened with X-Plane. Did you ever had any kind of problems like that? How well prepared is the project for something like this (since it includes many commercial airplanes etc)?

From the very start of our development we have worked hard to keep all our code and data GPL pure. With 1000’s of contributors over many years, I cannot claim that we are perfect. But when situations have come to our attention where someone has contributed something inappropriately, we move aggressively and quickly to address the issue and clean up the problem. That said, none of us are lawyers, and none of us are perfect, so if someone put us in their sights, perhaps they could find something to complain about. But one challenge for anyone looking to sue us is that we are not rich guys.

Austin and X-Plane has done tremendously well from a financial stand point. A project of volunteers, even if we can find small bits of income here and there through consulting or selling our own DVD distribution of FlightGear just isn’t a very fat target to shoot at. And if they went after an individual person, that target gets even skinnier and less appealing. I can’t say we would ever be immune from this sort of thing, but we do work hard to make sure everything we do is “GPL clean” and beyond that we can only hope that the legal system is reasonable and no one comes after us with an illegitimate claim.

Another thing that could possibly work in our favor is the fact that we are open source. If some one would bring a made up law suit against us, I have full faith that an entire Earth full of open-source enthusiasts would rise to our defense. I’d rather not start down that path in the first place, but I know if something ever did happen we could gather a lot of support in our defense.

FlightGear 2.8 brought the exciting Rembrandt renderer. Can you tell us a few things about it, and how are you planning to evolve this system in future releases?

I am not the lead developer in this area, but let me try to summarize what “Project Rembrandt” is. FlightGear’s Rembrandt project is a multi-pass rendering system. Portions of the drawing process are separated out into stages and rendered individually. The stages are carefully structured and ordered so the next stage can use the results of the previous stage.

This provides several major advancements in FlightGear’s rendering engine. The two most noticable are (1) generalized shadows so that everything casts a shadow on everything else, just like in the real world. (2) we can add a huge number of “spot lights” or light sources to any scene. Light sources can be animated (like a rotating beacon light or the light bar on top of an emergency vehicle) and these lights can illuminate their surrounds as you’d expect. This allows us to do sophisticated cockpit lighting and sophisticated environmental lighting — like on the tarmac at an airport or on the deck of an aircraft carrier.

Another neat aspect of this system is it’s flexibility to develop additional effects. Fred B. (our primary Rembrandt developer) has created demos showing a simulated night vision camera view (with film grain effect), lens distortion effects (which could be additionally useful for fancier projection display systems that project until curved screens), and depth of field effects.

In terms of evolution for the next release, Fred and others have been working very hard to tie up loose ends, fix compatibility issues with a wide variety of display hardware, add support for more and more aircraft. We hope that for our next release in February we will be able to make Rembrandt our default primary rendering engine.

Ground terrain beauty, always seemed to be the optical Achilles heel of FlightGear. You implemented some systems that slightly improved the situation, but with a great performance cost. What are the future plans on this sector? Is anything groundbreaking coming towards the improvement of the way terrain looks?

Over the past year or two, we have had scenery developers explore the use of Open Street Map databases to boost the detail and realism of FlightGear scenery. However we were limited in what we could do because the OSM license terms were not 100% GPL compatible. Very recently however, the OSM team has finished changes to their license terms that now clear the path for FlightGear to use the OSM data in our scenery. We have several developers pushing hard to expand our back end scenery generation code and infrastructure to make more effective use of this new data source.

In addition we have an online scenery model contribution system we have just improved and automated. This allows end users to add or correct model locations and decorate their favorite parts of the world. What’s neat is that contributions are quickly rolled into our official distribution for everyone to enjoy. Our goal with the next release is to really push this new system and get more and more people making contributions so we can fill up the FlightGear world with detail.

We also have continued development work to draw better and more believable vegetation coverage and random buildings, better atmospheric effects (haze, fog, 3d ground fog), better and more efficient 3d cloud effects, and better sunset/sunrise effects.

The sophisticated flight dynamics that FlightGear uses has certainly been the advanced and solid base for this project to grow. What evolution has this system accepted lately?

I’ve quickly contacted Jon Berndt, the primary author of JSBSim to see if he could contribute a couple bullet points to help answer this question. Here are the items he mentioned:
JSBSim is currently being used in a major aerospace project, with an aerodynamic definition over a quarter million lines long, driving Flightgear externally for visualization.
JSBSim flight control system modeling capabilities continue to be developed and enhanced in support of – among other things – modeling complete guidance and control systems for aerospace vehicles.
Jon worked as a contractor for NASA when he first developed JSBSim so he has a natural interest in space flight. Over the years the quality of JSBSim’s orbital dynamics have been refined and improved and further validated.
I will add that this summer the AIAA held their simulation and modeling conference and someone I know who attended the conference, commented that approximately 1/4 of the papers presented contained some reference or credit to using FlightGear as part of their research.

Is FlightGear dynamics and simulation engine able to deliver something like FSX’s Accu-Feel right now? Would that be a model-design issue, or a FlightGear core thing?

I am only basing my comments on looking at the Accu-feel web site, but I believe our core physics engine provides at least as much information as the FSX physics engine, so many (if not all) of these effects could be simulated in FlightGear. I think in many cases it boils down to the aircraft designers attention to detail, not anything related to capabilities of one sim versus the other. That said, I’ve never flown with Accu-feel, so I’ll just leave my comments there.

Being a FlightGear user myself, I have spent years flying over 200 airplanes worldwide. Although most of them were amazing, some weren’t quite finished yet. Shouldn’t there be a quality control system that will ensure that all contributed material is meeting a standard level?

This is a hard thing to balance in an open-source project. First of all we want to be welcoming and encouraging and to create a work place for new contributors. We know that people don’t start out as experts in anything on day 1 and we want to allow for the learning process to happen. In addition, one of the cool things about open-source is the “release early, release often” philosophy. If you are willing to track our git repositories and compile from scratch, there are new things to play with every week, often every day. The alternative is to keep everything under wraps and do a huge release with great fanfare every year or two like the big commercial software companies — but we started out in the very beginning deciding to follow the open-source approach, not the commercial approach.

I will say that in the past year we have begun developing an aircraft rating system. It is not perfect but after much discussion we came up with several categories and aircraft can have a rating in each category and then a cumulative rating. The idea is to not remove content that isn’t finished, but try to give users an idea of what to expect with an aircraft before they download it.

Rating systems are far from perfect though — so don’t let a slightly lower rating hold you back from trying a new aircraft, often there are some really interesting gems to find.

Any plans on the creation of more special scenarios, or modes like air-combats that could also take place in multiplayer? I know this sounds more “arcadish”, but in the FlightGear context it would be more realistic than anything else.

FlightGear’s nasal scripting language does enable a wide variety of scenerio creation options — ranging from interactive tutorials, to forest service water bombing, to basic combat, to even simulating a fully automated UAV search and rescue mission. We do have groups that fly military style missions and FlightGear does have an extension you can add called “bombable” that adds aircraft damage and combat features. I have to admit I’ve never tried it myself though — personally I have kept my focus on the civilian world of aviation.

What will the next version of FlightGear be about (highlights/new features)?

For myself, it feels like the dust is barely settling from our previous release. It’s hard to describe how much effort it is to roll out a new release and account for all the myriad of things that need to be done. But that said, I think we can look forward to many Rembrandt improvements, better tuned visual effects, a new “canvas” widget for much improved in-simulation mapping and charting, usability improvements, performance improvements, better in-sim joystick configurability, as well as new and upgraded aircraft and more and more scenery land marks. And watch for new highly details OSM based scenery areas coming down the pipeline too. The scenery effort is largely independent from the main flight sim development, but equally as important.

Thanks Curtis! Can’t wait to see the plans for the next version take form!

FlightGear Website