History may be a boring subject. However, from time to time there are people asking for
the history of FlightGear. As a result, we’ll give a short outline.
The FlightGear project goes back to a discussion among a group of net citizens in
1996 resulting in a proposal written by David Murr who, unfortunately, dropped out of
the project (as well as the net) later. The original proposal is still available from the
FlightGear web site and can be found under
Although the names of the people and several of the details have changed over time, the
spirit of that proposal has clearly been retained up to the present time.
Actual coding started in the summer of 1996 and by the end of that year
essential graphics routines were completed. At that time, programming was mainly
performed and coordinated by Eric Korpela from Berkeley University. Early code ran
under Linux as well as under DOS, OS/2, Windows 95/NT, and Sun-OS. This
was found to be quite an ambitious project as it involved, among other things,
writing all the graphics routines in a system-independent way entirely from
scratch.
Development slowed and finally stopped in the beginning of 1997 when Eric was
completing his thesis. At this point, the project seemed to be dead and traffic on the
mailing list went down to nearly nothing.
It was Curt Olson from the University of Minnesota who re-launched the
project in the middle of 1997. His idea was as simple as it was powerful: Why
invent the wheel a second time? There have been several free flight simulators
available running on workstations under different flavors of UNIX. One of these,
LaRCsim (developed by Bruce Jackson from NASA), seemed to be well suited
to the approach. Curt took this one apart and re-wrote several of the routines
such as to make them build as well as run on the intended target platforms. The
key idea in doing so was to exploit a system-independent graphics platform:
OpenGL.
In addition, a clever decision on the selection of the basic scenery data was made
in the very first version. FlightGear scenery is created based on satellite data
published by the U. S. Geological Survey. These terrain data are available from
resp., for other countries. Those freely accessible scenery data, in conjunction with
scenery building tools included with FlightGear, are an important feature enabling
anyone to create his or her own scenery.
This new FlightGear code - still largely being based on the original LaRCsim code -
was released in July 1997. From that moment the project gained momentum again. Here
are some milestones in the more recent development history.
Texture support was added by Curt Olson in spring 1998. This marked
a significant improvement in terms of reality. Some high-quality textures
were submitted by Eric Mitchell for the FlightGear project. Another set of
high-quality textures was added by Erik Hofman in summer 2002.
After improving the scenery and texture support frame rate dropped down to
a point where FlightGear became unflyable in spring 1998. This issue was
resolved by exploiting hardware OpenGL support, which became available
at that time, and implementing view frustrum culling (a rendering technique
that ignores the part of the scenery not visible in a scene), done by
Curt Olson. With respect to frame rate one should keep in mind that the
code, at present, is in no way optimized, which leaves room for further
improvements.
In September 1998 Curt Olson succeeded in creating a complete terrain
model for the U.S. The scenery is available worldwide now, via a clickable
map at:
Scenery was further improved by adding geographic features including
lakes, rivers,and coastlines later, an effort still going on. Textured runways
were added by Dave Cornish in spring 2001. Light textures add to the visual
impression at night. To cope with the constant growth of scenery data, a
binary scenery format was introduced in spring 2001. Runway lighting was
introduced by Curt Olson in spring 2001. Finally, a completely new set of
scenery files for the whole world was created by William Riley based on
preparatory documentation by David Megginson in summer 2002. This is
based on a data set called VMap0 as an alternative to the GSHHS data used
so far. This scenery is a big improvement as it has world wide coverage of
main streets, rivers, etc., while it’s downside are much less accurate coast
lines. FlightGear’s base scenery is based on these new scenery files since
summer 2002. The complete set is available via a clickable map, too, from
There was support added for static objects to the scenery in 2001, which
permits placing buildings, static planes, trees and so on in the scenery.
However, despite a few proofs of concept systematic inclusion of these
landmarks is still missing.
The world is populated with random ground objects with appropriate type
and density for the local ground cover type since summer 2002. This
marks a mayor improvement of reality and is mainly thanks to work by D.
Megginson.
A HUD (head up display) was added based on code provided by Michele
America and Charlie Hotchkiss in the fall of 1997 and was improved later by
Norman Vine. While not generally available for real Cessna 172, the HUD
conveniently reports the actual flight performance of the simulation and may
be of further use in military jets later.
A rudimentary autopilot implementing heading hold was contributed by Jeff
Goeke-Smith in April 1998. It was improved by the addition of an altitude
hold and a terrain following switch in October 1998 and further developed
by Norman Vine later.
Friedemann Reinhard developed early instrument panel code, which was
added in June 1998. Unfortunately, development of that panel slowed down
later. Finally, David Megginson decided to rebuild the panel code from
scratch in January 2000. This led to a rapid addition of new instruments and
features to the panel, resulting in nearly all main instruments being included
until spring 2001. A handy minipanel was added in summer 2001.
Finally, LaRCsims Navion was replaced as the default aircraft when the
Cessna 172 was stable enough in February 2000 - as move most users will
welcome. There are now several flight model and airplane options to choose
from at runtime. Jon Berndt has invested a lot of time in a more realistic and
versatile flight model with a more powerful aircraft configuration method.
JSBSim, as it has come to be called, did replace LaRCsim as the default
flight dynamics model (FDM), and it is planned to include such features
as fuel slosh effects, turbulence, complete flight control systems, and other
features not often found all together in a flight simulator. As an alternative,
Andy Ross added another flight dynamics model called YASim (Yet Another
Flight Dynamics Simulator) which aims at simplicity of use and is based on
fluid dynamics, by the end of 2001. This one bought us flight models for a
747, an A4, and a DC-3. Alternatively, a group around Michael Selig from
the UIUC group provided another flight model along with several planes
since around 2000.
A fully operational radio stack and working radios were added to the panel
by Curt Olson in spring 2000. A huge database of Navaids contributed
by Robin Peel allows IFR navigation since then. There was basic ATC
support added in fall 2001 by David Luff. This is not yet fully implemented,
but displaying ATIS messages is already possible. A magneto switch with
proper functions was added at the end of 2001 by John Check and David
Megginson.. Moreover, several panels were continually improved during
2001 and 2002 by John and others. FlightGear now allows flying ILS
approaches and features a Bendix transponder.
In 2002 functional multi-engine support found it’s way into FlightGear.
JSBSim is now the default FDM in FlightGear.
Support of ”true” 3D panels became stable via contributions from John
Check and others in spring 2002. In addition, we got movable control
surfaces like propellers etc., thanks to David Megginson.
The display of sun, moon and stars have been a weak point for PC flight
simulators for a long time. It is one of the great achievements of FlightGear
to include accurate modeling and display of sun, moon, and planets very
early. The corresponding astronomy code was implemented in fall 1997 by
Durk Talsma.
Christian Mayer, together with Durk Talsma, contributed weather code in the
winter of 1999. This included clouds, winds, and even thunderstorms.
The foundation for a menu system was laid based on another library, the
Portable Library PLIB, in June 1998. After having been idle for a time, the
first working menu entries came to life in spring 1999.
PLIB underwent rapid development later. It has been distributed as a
separate package by Steve Baker with a much broader range of applications
in mind, since spring 1999. It has provided the basic graphics rendering
engine for FlightGear since fall 1999.
In 1998 there was basic audio support, i. e. an audio library and
some basic background engine sound. This was later integrated into the
above-mentioned portable library, PLIB. This same library was extended to
support joystick/yoke/rudder in October 1999, again marking a huge step in
terms of realism. To adapt on different joystick, configuration options were
introduced in fall 2000. Joystick support was further improved by adding a
self detection in
summer 2002.
Networking/multiplayer code has been integrated by Oliver Delise and Curt
Olson starting fall 1999. This effort is aimed at enabling FlightGear to
run concurrently on several machines over a network, either an Intranet or
the Internet, coupling it to a flight planner running on a second machine,
and more. There emerged several approaches for remotely controlling
FlightGear over a Network during 2001. Notably there was added support
for the ”Atlas” moving map program. Besides, an embedded HTTP server
developed by Curt Olson late in 2001 can now act a property manager for
external programs.
Manually changing views in a flight simulator is in a sense always ”unreal”
but nonetheless required in certain situations. A possible solution was
supplied by Norman Vine in the winter of 1999 by implementing code for
changing views using the mouse. Alternatively, you can use a hat switch for
this purpose, today.
A property manager was implemented by David Megginson in fall
2000. It allows parsing a file called .fgfsrc under UNIX/Linux and
system.fgfsrc under Windows for input options. This plain ASCII file
has proven useful in submitting the growing number of input options, and
notably the joystick settings. This has shown to be a useful concept, and
joystick, keyboard, and panel settings are no longer hard coded but set using
and John Check.
During development there were several code reorganization efforts. Various code
subsystems were moved into packages. As a result, code is organized as follows at
present:
The base of the graphics engine is OpenGL, a platform independent graphics library.
Based on OpenGL, the Portable Library PLIB provides basic rendering, audio, joystick
etc. routines. Based on PLIB is SimGear, which includes all of the basic routines
required for the flight simulator as well as for building scenery. On top of SimGear there
are (i) FlightGear (the simulator itself), and (ii) TerraGear, which comprises the scenery
building tools.
This is by no means an exhaustive history and most likely some people who have
made important contributions have been left out. Besides the above-named contributions
there was a lot of work done concerning the internal structure by: Jon S. Berndt, Oliver
Delise, Christian Mayer, Curt Olson, Tony Peden, Gary R. Van Sickle, Norman Vine, and
others. A more comprehensive list of contributors can be found in Chapter C as well as in
the Thanks file provided with the code. Also, the FlightGear Website contains a
detailed history worth reading of all of the notable development milestones at
Did you enjoy the flight? In case you did, don’t forget those who devoted hundreds of
hours to that project. All of this work is done on a voluntary basis within spare
time, thus bare with the programmers in case something does not work the
way you want it to. Instead, sit down and write them a kind (!) mail proposing
what to change. Alternatively, you can subscribe to the FlightGear mailing
lists and contribute your thoughts there. Instructions to do so can be found at
Essentially there are two lists, one of which being mainly for the developers and the other
one for end users. Besides, there is a very low-traffic list for announcements.
The following names the people who did the job (this information was essentially taken
from the file Thanks accompanying the code).
A1 Free Sounds (techie@mail.ev1.net)
Granted permission for the FlightGear project to use some of the sound effects from
their site. Homepage under
Raul Alonzo (amil@las.es)
Mr. Alonzo is the author of Ssystem and provided his kind permission for using the
moon texture. Parts of his code were used as a template when adding the texture.
Ssystem Homepage can be found at:
Jon S. Berndt (jsb@hal-pc.org)
Working on a complete C++ rewrite/reimplimentation of the core FDM. Initially he is
using X15 data to test his code, but once things are all in place we should be able to
simulate arbitrary aircraft. Jon maintains a page dealing with Flight Dynamics at:
Special attention to X15 is paid in separate pages on this site. Besides, Jon contributed
via a lot of suggestions/corrections to this Guide.
Paul Bleisch (pbleisch@acm.org)
Redid the debug system so that it would be much more flexible, so it could be easily
disabled for production system, and so that messages for certain subsystems could be
selectively enabled. Also contributed a first stab at a config file/command line parsing
system.
Jim Brennan (jjb@kingmont.com)
Provided a big chunk of online space to store USA scenery for FlightGear.
Bernie Bright (bbright@bigpond.net.au)
Many C++ style, usage, and implementation improvements, STL portability and much,
much more. Added threading support and a threaded tile pager.
Bernhard H. Buckel (buckel@mail.uni-wuerzburg.de)
Contributed the README.Linux. Contributed several sections to earlier versions of
Installation and Getting Started.
Gene Buckle (geneb@deltasoft.com)
A lot of work getting FlightGear to compile with the MSVC++ compiler. Numerous
hints on detailed improvements.
Ralph Carmichael (ralph@pdas.com)
Support of the project. The Public Domain Aeronautical Software web site at
John Check (j4strngs@rockfish.net)
John maintains the base package CVS repository. He contributed cloud textures, wrote an
excellent Joystick Howto as well as a panel Howto. Moreover, he contributed new
instrument panel configurations. FlightGear page at
Dave Cornish (dmc@halcyon.com)
Dave created new cool runway textures plus some of our cloud textures.
Oliver Delise(delise@mail.isis.de)
Started a FAQ, Documentation, Public relations. Working on adding some
networking/multi-user code. Founder of the FlightGear MultiPilot Project at
Dave Eberly(eberly@magic-software.com)
Contributed some sphere interpolation code used by Christian Mayer’s weather data
base system. On Dave’s web site there are tons of really useful looking code at
Oscar Everitt (bigoc@premier.net)
Created single engine piston engine sounds as part of an F4U package for FS98. They
are pretty cool and Oscar was happy to contribute them to our little project.
Bruce Finney (bfinney@gte.net)
Contributed patches for MSVC5 compatibility.
Melchior Franz (a8603365@unet.univie.ac.at)
Contributed joystick hat support, a LED font, improvements of the telnet and the http
interface. Notable effort in hunting memory leaks in FlightGear, SimGear, and JSBSim.
Jean-loup Gailly and Mark Adler (zlib@gzip.org)
Authors of the zlib library. Used for on-the-fly compression and decompression
routines,
Erik Hofman (erik.hofman@a1.nl)
Major overhaul and parameterization of the sound module to allow aircraft-specific
sound configuration at runtime. Contributed SGI IRIX support and binaries.
Charlie Hotchkiss (clhotch@pacbell.net)
Worked on improving and enhancing the HUD code. Lots of code style tips and code
tweaks.
Richard Kaszeta(bofh@me.umn.edu)
Contributed screen buffer to ppm screen shot routine. Also helped in the early
development of the ”altitude hold autopilot module” by teaching Curt Olson the basics of
Control Theory and helping him code and debug early versions. Curt’s ”Boss” Bob
Hain (bob@me.umn.edu) also contributed to that. Further details available at:
Christian Mayer (flightgear@christianmayer.de)
Working on multi-lingual conversion tools for fgfs as a demonstration of technology.
Contributed code to read Microsoft Flight Simulator scenery textures. Christian is
working on a completely new weather subsystem. Donated a hot air balloon to the
project.
David Megginson (david@megginson.com)
Contributed patches to allow mouse input to control view direction yoke. Contributed
financially towards hard drive space for use by the flight gear project. Updates to
README.running. Working on getting fgfs and ssg to work without textures. Also
added the new 2-D panel and the save/load support. Further, he developed new panel
code, playing better with OpenGL, with new features. Developed the property
manager and contributed to joystick support. Random ground cover objects
Cameron Moore (cameron@unbeatenpath.net)
FAQ maintainer. Reigning list administrator. Provided man pages.
Eric Mitchell (mitchell@mars.ark.com)
Contributed some topnotch scenery textures being all original creations by him.
Anders Morken (amrken@online.no)
Former maintainer of European web pages.
Phil Nelson (phil@cs.wwu.edu)
Author of GNU dbm, a set of database routines that use extendible hashing and work
similar to the standard UNIX dbm routines.
Alexei Novikov (anovikov@heron.itep.ru)
Created European Scenery. Contributed a script to turn fgfs scenery into beautifully
rendered 2-D maps. Wrote a first draft of a Scenery Creation Howto.
Curt Olson (curt@flightgear.org)
Primary organization of the project.
First implementation and modifications based on LaRCsim.
Besides putting together all the pieces provided by others mainly concentrating on the
scenery subsystem as well as the graphics stuff. Homepage at
Tony Peden (apeden@earthlink.net)
Contributions on flight model development, including a LaRCsim based Cessna 172.
Contributed to JSBSim the initial conditions code, a more complete standard atmosphere
model, and other bugfixes/additions. His Flight Dynamics page can be found at:
Robin Peel (robin@cpwd.com)
Maintains worldwide airport and runway database for FlightGear as well as X-Plane.
Alex Perry (alex.perry@ieee.org)
Contributed code to more accurately model VSI, DG, Altitude. Suggestions for
improvements of the layout of the simulator on the mailing list and help on
documentation.
Petter Reinholdtsen (pere@games.no)
Incorporated the GNU automake/autoconf system (with libtool). This should streamline
and standardize the build process for all UNIX-like platforms. It should have little
effect on IDE type environments since they don’t use the UNIX make system.
William Riley (riley@technologist.com)
Contributed code to add ”brakes”. Also wrote a patch to support a first joystick
with more than 2 axis. Did the job to create scenery based on VMap0 data.
Andy Ross (andy@plausible.org)
Contributed a new configurable FDM called YASim (Yet Another Flight Dynamics
Simulator, based on geometry information rather than aerodynamic coefficients.
Paul Schlyter (pausch@saaf.se)
Provided Durk Talsma with all the information he needed to write the astro code. Mr.
Schlyter is also willing to answer astro-related questions whenever one needs to.
Jonathan R. Shewchuk (Jonathan_R_Shewchuk@ux4.sp.cs.cmu.edu)
Author of the Triangle program. Triangle is used to calculate the Delauney triangulation
of our irregular terrain.
Gordan Sikic (gsikic@public.srce.hr)
Contributed a Cherokee flight model for LaRCsim. Currently is not working and needs to
be debugged. Use configure --with-flight-model=cherokee to build the
cherokee instead of the Cessna.
Michael Smith (msmith99@flash.net)
Contributed cockpit graphics, 3-D models, logos, and other images. Project Bonanza
Durk Talsma (d.talsma@chello.nl)
Accurate Sun, Moon, and Planets. Sun changes color based on position in sky. Moon has
correct phase and blends well into the sky. Planets are correctly positioned and have
proper magnitude. Help with time functions, GUI, and other things. Contributed 2-D
cloud layer. Website at
UIUC - Department of Aeronautical and Astronautical Engineering
Contributed modifications to LaRCsim to allow loading of aircraft parameters
from a file. These modifications were made as part of an icing research project.
Mark Vallevand (Mark.Vallevand@UNISYS.com)
Contributed some METAR parsing code and some win32 screen printing routines.
Gary R. Van Sickle (tiberius@braemarinc.com)
Contributed some initial GameGLUT support and other fixes. Has done preliminary
work on a binary file format. Check
Norman Vine (nhv@yahoo.com)
Provided more numerous URL’s to the ”FlightGear Community”. Many performance
optimizations throughout the code. Many contributions and much advice for the scenery
generation section. Lots of Windows related contributions. Contributed wgs84 distance
and course routines. Contributed a great circle route autopilot mode based on wgs84
routines. Many other GUI, HUD and autopilot contributions. Patch to allow mouse
input to control view direction. Ultra hires tiled screen dumps. Contributed the
initial ’goto airport’ and ’reset’ functions and the initial http image server code
Roland Voegtli (webmaster@sanw.unibe.ch)
Contributed great photorealistic textures. Founder of European Scenery Project for
X-Plane:
Carmelo Volpe (carmelo.volpe@mednut.ki.se)
Porting FlightGear to the Metro Works development environment (PC/Mac).
Darrell Walisser (walisser@mac.com)
Contributed a large number of changes to porting FlightGear to the Metro Works
development environment (PC/Mac). Finally produced the first Macintosh port.
Contributed to the Mac part of Getting Started, too.
Ed Williams (Ed_Williams@compuserve.com).
Contributed magnetic variation code (impliments Nima WMM 2000). We’ve also
borrowed from Ed’s wonderful aviation formulary at various times as well. Website at
http://williams.best.vwh.net/.
Jim Wilson (jimw@kelcomaine.com).
Wrote a major overhaul of the viewer code to make it more flexible and modular.
Contributed many small fixes and bug reports. Contributed to the PUI property browser
and to the autopilot.
Jean-Claude Wippler (jcw@equi4.com)
Author of MetaKit - a portable, embeddible database with a portable data file format
used in FlightGear. Please see the following URL for more info:
While FlightGear no longer uses Woodsoup servies we appreciate the support
provided to our project during the time they hosted us. Once they provided
computing resources and services so that the FlightGear project could have a real
home.
Robert Allan Zeh (raz@cmg.FCNBD.COM)
Helped tremendously in figuring out the Cygnus Win32 compiler and how to link with
.dll’s. Without him the first run-able Win32 version of FlightGear would have been
impossible.
If you read (and, maybe, followed) this guide up to this point you may probably agree:
FlightGear, even in its present state, is not at all for the birds. It is already a flight
simulator which sports even several selectable flight models, several planes with
panels and even a HUD, terrain scenery, texturing, all the basic controls and
weather.
Despite, FlightGear needs - and gets - further development. Except internal tweaks,
there are several fields where FlightGear needs basics improvement and development. A
first direction is adding airports, buildings, and more of those things bringing scenery to
real life and belonging to realistic airports and cities. Another task is further
implementation of the menu system, which should not be too hard with the basics being
working now. A lot of options at present set via command line or even during compile
time should finally make it into menu entries. Finally, FlightGear lacks any ATC until
now.
There are already people working in all of these directions. If you’re a programmer
and think you can contribute, you are invited to do so.
Obviously this document could not have been written without all
those contributors mentioned above making FlightGear a reality.
First, I was very glad to see Martin Spott entering the documentation effort. Martin
provided not only several updates and contributions (notably in the OpenGL section) on
the Linux side of the project but also several general ideas on the documentation in
general
Besides, I would like to say special thanks to Curt Olson, whose numerous scattered
Readmes, Thanks, Webpages, and personal eMails were of special help to me and were
freely exploited in the making of this booklet.
Next, Bernhard Buckel wrote several sections of early versions of that Guide and
contributed at lot of ideas to it.
Jon S. Berndt supported me by critical proofreading of several versions of the
document, pointing out inconsistences and suggesting improvements.
Moreover, I gained a lot of help and support from Norman Vine. Maybe, without
Norman’s answers I would have never been able to tame different versions of the Cygwin
- FlightGear couple.
We were glad, our Mac expert Darrell Walisser contributed the section on
compiling under Mac OS X. In addition he submitted several Mac related hints and
fixes.
Further contributions and donations on special points came from John Check,
(general layout), Oliver Delise (several suggestions including notes on that chapter),
Mohit Garg (OpenGL), Kyler B. Laird (corrections), Alex Perry (OpenGL), Kai Troester
(compile problems), Dave Perry (joystick support), and Michael Selig (UIUC
models).
Besides those whose names got lost withing the last-minute-trouble we’d like to
express our gratitude to the following people for contributing valuable ’bug fixes’ to this
version of Getting Started (in random order): Cameron Moore, Melchior Franz, David
Megginson, Jon Berndt, Alex Perry,, Dave Perry,, Andy Ross, Erik Hofman, and Julian
Foad.