Appendix C
Landing: Some further thoughts before leaving the plane

C.1 A Sketch on the History of FlightGear

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

http://www.flightgear.org/proposal-3.0.1.

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

http://edc.usgs.gov/geodata/

for the U.S., and

http://edcdaac.usgs.gov/gtopo30/gtopo30.html,

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.

C.1.1 Scenery

C.1.2 Aircraft

C.1.3 Environment

C.1.4 User Interface

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

http://www.flightgear.org/News/

C.2 Those, who did the work

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

http://www.flightgear.org/mail.html.

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

http://www.a1freesoundeffects.com/

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:

http://www1.las.es/~ amil/ssystem/.

Michele America (nomimarketing@mail.telepac.pt)
Contributed to the HUD code.

Michael Basler (pmb@epost.de)
Author of Installation and Getting Started. Flight Simulation Page at

http://www.geocities.com/pmb.geo/flusi.htm

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:

http://jsbsim.sourceforge.net/

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

http://www.pdas.com/

has the PDAS CD-ROM for sale containing great programs for astronautical engineers.

Didier Chauveau (chauveau@math.univ-mlv.fr)
Provided some initial code to parse the 30 arcsec DEM files found at:

http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html.

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

http://www.rockfish.net/fg/.

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

http://www.isis.de/members/~ odelise/progs/flightgear/.

Jean-Francois Doue
Vector 2D, 3D, 4D and Matrix 3D and 4D inlined C++ classes. (Based on Graphics Gems IV, Ed. Paul S. Heckbert)

http://www.animats.com/simpleppp/ftp/public_html/topics/developers.html.

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

http://www.magic-software.com/.

Francine Evans (evans @ cs.sunysb.edu) Wrote the GPL’d tri-striper we use.

http://www.cs.sunysb.edu/~ stripe/

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,

http://www.gzip.org/zlib/.

Mohit Garg (theprotean 1 @ hotmail.com)
Contributed to the manual.

Thomas Gellekum (tg @ ihf.rwth-aachen.de)
Changes and updates for compiling on FreeBSD.

Neetha Girish (neethagirish @ usa.net)
Contributed the changes for the xml configurable HUD.

Jeff Goeke-Smith (jgoeke @ voyager.net)
Contributed our first autopilot (Heading Hold). Better autoconf check for external timezone/daylight variables.

Michael I. Gold (gold @ puck.asd.sgi.com)
Patiently answered questions on OpenGL.

Habibe (habibie @ MailandNews.com)
Made RedHat package building changes for SimGear.

Mike Hill (mikehill @ flightsim.com)
For allowing us to concert and use his wonderful planes, available form

http://www.flightsimnetwork.com/mikehill/home.htm,

for FlightGear.

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.

Bruce Jackson (NASA) (e.b.jackson @ larc.nasa.gov)

Developed the LaRCsim code under funding by NASA which we use to provide the flight model. Bruce has patiently answered many, many questions.

http://dcb.larc.nasa.gov/www/DCBStaff/ebj/ebj.html

Ove Kaaven (ovek @ arcticnet.no)
Contributed the Debian binary.

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:

http://www.menet.umn.edu/~ curt/fgfs/Docs/Autopilot/AltitudeHold/AltitudeHold.html.

Rich’s Homepage is at

http://www.kaszeta.org/rich/.

Tom Knienieder (tom @ knienieder.com)
Ported the audio library first to OpenBSD and IRIX and after that to Win32.

Reto Koradi (kor @ mol.biol.ethz.ch)

Helped with setting up fog effects.

http://www.mol.biol.ethz.ch/wuthrich/people/kor/

Bob Kuehne (rpk @ who.net)
Redid the Makefile system so it is simpler and more robust.

Kyler B Laird (laird @ ecn.purdue.edu)
Contributed corrections to the manual.

David Luff (david.luff @ nottingham.ac.uk)
Contributed heavily to the IO360 piston engine model.

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.

Alan Murta (amurta @ cs.man.ac.uk)

Created the Generic Polygon Clipping library.

http://www.cs.man.ac.uk/aig/staff/alan/software/

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

http://www.menet.umn.edu/~ curt/

Brian Paul
We made use of his TR library and of course of Mesa:

http://www.mesa3d.org/brianp/TR.html, http://www.mesa3d.org

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:

http://www.nwlink.com/~ apeden/.

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.

Friedemann Reinhard (mpt218 @ faupt212.physik.uni-erlangen.de)
Development of an early textured instrument panel.

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.

http://www.welcome.to/pausch/

Chris Schoeneman (crs @ millpond.engr.sgi.com)
Contributed ideas on audio support.

Phil Schubert (philip @ zedley.com)
Contributed various textures and engine modeling.

http://www.zedley.com/Philip/.

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

Martin Spott (Martin.Spott @ uni-duisburg.de)
Co-Author of the ”Getting Started”.

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

http://people.a2000.nl/dtals/.

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.

Those did the coding and made it all work:
Jeff Scott jscott @ students.uiuc.edu
Bipin Sehgal bsehgal @ uiuc.edu
Michael Selig m-selig @ uiuc.edu

Moreover, those helped to support the effort:
Jay Thomas jthomas2 @ uiuc.edu
Eunice Lee ey-lee @ students.uiuc.edu
Elizabeth Rendon mdfhoyos @ md.impsat.net.co
Sudhi Uppuluri suppulur @ students.uiuc.edu

U. S. Geological Survey

Provided geographic data used by this project.

http://edc.usgs.gov/geodata/

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

http://www.woodsoup.org/projs/ORKiD/fgfs.htm.

His ’Cygwin Tips’ page might be helpful for you at

http://www.woodsoup.org/projs/ORKiD/cygwin.htm.

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:

http://www.g-point.com/xpcity/esp/

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 (mailjimw @ 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:

http://www.equi4.com/metakit/

Woodsoup Project

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.

http://www.woodsoup.org/

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.

C.3 What remains to be done

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.

Achnowledgements

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.