This page exists because documentation is only useful if you can check it. Every technical claim on this site traces to something listed here. Where we could not verify something, it appears below as an open question rather than quietly on a page as though it were settled.
How this site is written
Three rules, and they are not aspirational; the build fails if the last one is broken:
- Nothing appears on a page that is not sourced here. Claims about tools, build stages, data formats and requirements come from the repository or the FlightGear wiki, with the date they were checked.
- Nothing is invented. No build time, command invocation or error message appears unless it was produced by a build someone actually ran. The figures and command lines on this site come from the one recorded below; where a claim is still unverified, the page says so instead of guessing.
- Every image is output. The site began with eleven labelled placeholder slots; none survive, and the build now fails if one reappears. Each picture on this site was produced by a run described below; the terrain renders, the mesh diagram, the land-cover decode.
Where the facts come from
| Claim | Source | Checked |
|---|---|---|
| TerraGear transforms publicly available GIS data into 3D representations of the earth | FlightGear wiki: TerraGear | 2026-08-14 |
| Inputs include DEM terrain grids, 2D polygon sets and 1 km land cover raster data | FlightGear wiki: TerraGear | 2026-08-14 |
| Airports, runways and lighting are generated from FAA data | FlightGear wiki: TerraGear | 2026-08-14 |
| The build is two-stage: preprocess into the FG tiling scheme, then assemble | Repository README | 2026-08-14 |
| Worldwide builds consume multiple gigabytes and days or weeks of processing | Repository README | 2026-08-14 |
| The terrain builder parallelises across a cluster | FlightGear wiki: TerraGear | 2026-08-14 |
Toolchain: hgtchop, terrafit, genapts, ogr-decode, tg-construct | FlightGear wiki: Using TerraGear | 2026-08-14 |
| Custom terrain comes from shapefiles; QGIS is a suitable editor | FlightGear wiki: Create custom terrain | 2026-08-14 |
| Build system is CMake | FlightGear wiki and the repository’s CMakeLists.txt | 2026-08-14 |
tg-construct can exhaust its resources and terminate itself | FlightGear wiki: Using TerraGear | 2026-08-14 |
Where the project’s own documentation disagrees with itself
Nine places where the repository, the README and the wiki give
different answers, four of which were settled by building the tools. The full
list, with what to do about each, is on
TerraGear and the alternatives; it lives there rather than here because knowing which tool to use is the question
that sends people looking.
The short version: the build system, the version control, whether a GUI
exists, which toolchain to use, the airport tool’s name, an
ogr-decode rename that never happened, dead data-source links, a
how-to dated 1999, and three different answers to where the source lives.
Open questions for the TerraGear team
There were eight. Building the tools settled four of them. The land-cover build then opened a fifth, which is the usual direction of travel: answering a question about a toolchain tends to produce a better one. These five are what a build cannot answer, because they are decisions rather than facts.
- Which branch should a newcomer build?
nextis the only actively developed one, but the wiki still saysscenery/ws2.0, which has not moved since April 2023. One of the two should change. - Is the repository
READMEstill considered current? It documents anautogen.shbuild that the tree does not contain, andREADME.SimGearis dated 2001. - Should there be tagged releases? A tag a guide can name would keep documentation correct as the branch moves.
- Should the GitHub mirror be archived or updated? Its April 2022 date is the first thing most searchers see, and it reads as an abandoned project.
- Which land-cover sources does the project recommend? OpenStreetMap and Natural Earth both work; the open question is which the project considers canonical for published scenery, and with what mapping from source classes to TerraGear area types.
Four things found across the two builds are worth reporting upstream rather
than only recording here: the <chrono> regression on
next, the gzip hang in genapts, the
chop.idx race; all three described in
Common errors and fixes; and the tile row
tg-construct builds outside the requested box, which is on
the second-region page. The fourth is a
performance finding rather than a defect, and may turn out to be deliberate.
Keeping this current
Most of what is below describes a moving target: a branch that compiles today may not next month. Upstream watch carries dated reports on the repository’s state, so any claim here can be checked against when it was last true.
The build these numbers come from
On 23 August 2026 the toolchain was built from source and run end to end on one 1°×1° square (N37W123, San Francisco Bay) producing 44 scenery files. Every timing, memory figure, file count and command line in the guides comes from that run.
| What | Detail |
|---|---|
| TerraGear | next @ eba49f266f75c81b7d97938e6f24d46ed3df5019, 2026-08-09 |
| SimGear | release/2024.1 @ 8f4e7e66, headless |
| Environment | Debian 12 in Docker, gcc 12.2, CMake 3.25.1, GDAL 3.6.2, CGAL 5.5.1 |
| Hardware | 10 cores, 7 GB RAM available to the container |
| Elevation | SRTM 1-arc-second, N37W123.hgt, 25.9 MB |
| Airports | apt.dat from FlightGear fgdata, 106 MB, 34,074 airports |
| Land cover | Natural Earth 10m land; OSM northern California extract, 1.1 GB |
| Result, no land cover | 37 s wall clock, 103 MB peak RSS, 44 .btg.gz, 3.5 MB |
| Result, with land cover | 286 s in tg-construct alone, 2,217 MB peak, 53 .btg.gz, 50 MB |
Three defects were found and are reported as observed, with the exact output
each one produced: TerraGear’s next branch has not compiled since
2026-06-18 because a commit removed an #include that is still needed;
genapts loops forever on a gzipped apt.dat despite
advertising support for one; and genapts corrupts a shared index file
when run with more than about four threads, exiting 139 and leaving a partial set
of airports behind. Details are in
Common errors and fixes and
Hardware and build times.
Corrected by the second build
Building a second square found one thing this site had wrong and one it had emphasised wrongly. Both are now fixed on the pages that carried them:
- “
genaptsscans all 34,074 airports, and that fixed cost is why--airport=exists.” The scan is real; the cost is not. A bounding box containing no airport at all completes in 0.55 s, and that is the whole read of 106 MB. The 19.7 seconds on the first square were the 31 airports in it.--airport=is worth using because building airports is expensive. Corrected on genapts, apt.dat and build times. - “243 of the 286 seconds went on tiles outside the square.” Withdrawn: it was mine and it was wrong. The timings came from gaps between consecutive lines in a build log written by ten threads, where the gap measures the wait for another thread rather than the cost of a tile. Patching the tiles away changed the wall clock from 286 s to 291 s. The tiles are real and are still worth removing; the cost was not.
Two attempts to work around the second one both failed and are written up as failures on the second-region page, because a fix that does not work is worth more written down than quietly dropped.
What is not verified
Stated plainly so nothing here is mistaken for fact:
- One machine, three squares. The timings are measurements, not benchmarks, and different hardware will move them. San Francisco, then N49E007 in Rheinland-Pfalz, then S23E017 in Namibia: chosen to disagree with each other as much as one machine allows. What travelled and what did not. Three points are still not a curve.
- Land cover has been decoded on three squares, from OpenStreetMap and Natural Earth, using ten area types on the first and fourteen on the others. The third is desert with almost nothing mapped in it, which showed the mapping fails safely rather than wrongly, but a place needing area types none of the three needed, rice paddy or mangrove or irrigated desert, is still untested.
- Structure, not semantics. The output was walked against SimGear’s own reader and every file parses cleanly (how, and what that does and does not prove). That says the files are well-formed, not that the terrain inside them is correct.
- One version of FlightGear, one viewpoint. The output was loaded and rendered in FlightGear 2020.3.16 (Debian’s package) on software OpenGL, and it draws correctly: with a control render on empty scenery to show what the tools contributed. It has not been tried on a newer FlightGear, on real hardware, or from any position other than over KSFO.
- No native Windows or macOS build has been confirmed, and this site has not attempted one. What is confirmed is the container route, because it is the one everything here was produced with: what it needs and what it costs.
Corrections
Corrections are welcome, especially where this site is the one that has it wrong. Corrections and additions belong on the project issue tracker, and anything that changes a page will be reflected here with a new checked date.