<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ranguli</id>
	<title>FlightGear wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ranguli"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Ranguli"/>
	<updated>2026-04-30T21:51:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Modern_IFR_Navigation&amp;diff=141056</id>
		<title>Modern IFR Navigation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Modern_IFR_Navigation&amp;diff=141056"/>
		<updated>2024-11-30T14:39:28Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article is incomplete and likely does not meet the quality standards of the wiki.|day=30|month=11|year=2024}}&lt;br /&gt;
On July 3d, David Megginson wrote to the mailing list,&lt;br /&gt;
{{FGCquote&lt;br /&gt;
|1= The airspace system is in the process of changing drastically, and I'm following it this summer by finally biting the bullet and installing an IFR GPS (Garmin GTN 650) and ADS-B transponder (Garmin GTX 345) in my Piper Warrior II. What this means that for the first time in the 15 years since I started flying in real life, I won't be able to use FlightGear to practice the IFR approaches I'm flying in real life.&lt;br /&gt;
|2= {{cite web&lt;br /&gt;
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35924395/ &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; [Flightgear-devel] RFD: FlightGear and the changing state of air&lt;br /&gt;
 navigation &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; David Megginson &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 3rd, 2017 &lt;br /&gt;
  |added  =  Jul 3rd, 2017 &lt;br /&gt;
  |script_version = 0.39 &lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
This article is about the discussion which followed that message, which focused heavily on modern IFR navigation.&lt;br /&gt;
&lt;br /&gt;
== Advanced RNAV Approaches ==&lt;br /&gt;
In the modern world, RNAV approaches are a lot more complex than following a magenta line and manually calculating a vertical speed or using VNAV. Modern RNAV approaches involve things such as &amp;quot;radius-to-fix&amp;quot; segments, which allow curved paths around mountains, which the aircraft can follow. One example is the RNAV (RNP) Y to 05R at Auckland: http://www.aip.net.nz/pdf/NZAA_45.3_45.4.pdf. &lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
|1= One thing that is very important moving into the future is the RF approach (radius to fix). Please read this:&lt;br /&gt;
https://en.wikipedia.org/wiki/Performance-based_navigation#RNAV_and_RNP_specific_functions... This style of RNAV approach is becoming more and more common, and FlightGear cannot yet simulate it.&lt;br /&gt;
|2= {{cite web&lt;br /&gt;
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35924695/ &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: [Flightgear-devel] RFD: FlightGear and the changing state of&lt;br /&gt;
 air navigation &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; legoboyvdlp &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 3rd, 2017 &lt;br /&gt;
  |added  =  Jul 3rd, 2017 &lt;br /&gt;
  |script_version = 0.39 &lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
|1= DME arc transitions still exist, and I enjoy flying them both in FlightGear and in real life. There are two important differences for the radial-to-fix transitions (as I understand so far, still studying up the new-to-me RNAV procedures):&lt;br /&gt;
* You can fly them around any fix, not just a DME/TACAN (typically colocated with a VOR). Granted, you could do that in FlightGear now simply by using the GPS distance, but ...&lt;br /&gt;
* The CDI actually gives you (and the autopilot) guidance for where you should be flying, so you're not manually estimating your course based on the DME/GPS distance while flying 90° to the navaid bearing. &lt;br /&gt;
&lt;br /&gt;
It's the second one that will trip us up for using FlightGear as a way to practice modern IFR procedures.&lt;br /&gt;
|2= {{cite web&lt;br /&gt;
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35924993/ &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: [Flightgear-devel] RFD: FlightGear and the changing state of&lt;br /&gt;
 air navigation &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; David Megginson &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 3rd, 2017 &lt;br /&gt;
  |added  =  Jul 3rd, 2017 &lt;br /&gt;
  |script_version = 0.39 &lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
|1= Are you wondering about the math to give you a guidance target for flying around a given point? Or are you wondering how to render the 'fly-to' indicator?&lt;br /&gt;
The first basically is the same as the Shuttle HAC intercept where Rdot (the derivative of the radius to the center point) in combination with R  &lt;br /&gt;
can be used as error for guidance and the second depends on your   particular instrument - the Shuttle HUD shows a corresponding indicator (and so does the PFD) - but I suspect the instrument of choice of a GA aircraft will display it differently.&lt;br /&gt;
So this should be possible to code by any aircraft maintainer without much fuss as far as I can see.&lt;br /&gt;
|2= {{cite web&lt;br /&gt;
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35925333/ &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: [Flightgear-devel] RFD: FlightGear and the changing state of&lt;br /&gt;
 air navigation &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Thorsten Renk &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 3rd, 2017 &lt;br /&gt;
  |added  =  Jul 3rd, 2017 &lt;br /&gt;
  |script_version = 0.39 &lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
|1= The Route Manager should be able to handle most of the &amp;quot;magenta line&amp;quot; tasks, but it may be that the more complicated routing such as the RF approach, fly-by vs fly-over requires some new autopilot coding as you describe.&lt;br /&gt;
|2= {{cite web&lt;br /&gt;
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35925369/ &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: [Flightgear-devel] RFD: FlightGear and the changing state of&lt;br /&gt;
 air navigation &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Stuart Buchanan &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 3rd, 2017 &lt;br /&gt;
  |added  =  Jul 3rd, 2017 &lt;br /&gt;
  |script_version = 0.39 &lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Multiplayer&amp;diff=141025</id>
		<title>Howto:Multiplayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Multiplayer&amp;diff=141025"/>
		<updated>2024-11-16T20:25:10Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Out of date}}{{Obsolete}}&lt;br /&gt;
&lt;br /&gt;
The '''multiplayer''' feature of [[FlightGear]] makes it possible to see other pilots and vice-versa. This makes it possible to fly in formation, perform [[mid-air refueling]] with tankers controlled by real people or contact real [[air traffic control|air traffic controllers]] to ask for guidance.&lt;br /&gt;
&lt;br /&gt;
Multiplayer may cause extreme [[troubleshooting performance issues|framerate drops]] during the loading of aircraft models, especially heavy models such as the [[Boeing 777]] or [[Airbus A320neo]]. It is suggested to fly in locations other than the default [[San Francisco International Airport]], as there are often lots of pilots in the area who are often new, and do not follow ATC, or respect traffic.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Callsigns can be a maximum of seven characters.&lt;br /&gt;
* You might want to check the [[#Known issues|Known issues]] section.&lt;br /&gt;
&lt;br /&gt;
== Connecting to Multiplayer ==&lt;br /&gt;
=== Built-in launcher and in-sim dialog ===&lt;br /&gt;
[[File:Multiplayer settings dialog.jpg|thumb|Multiplayer settings dialog]]&lt;br /&gt;
The easiest way to get online is to use the [[FlightGear Qt launcher|built-in launcher]] or the in-sim Multiplayer dialog. All you need to do is enter a callsign and select a server from the menu. Press Connect to go online.&lt;br /&gt;
&lt;br /&gt;
=== Using FGRun ===&lt;br /&gt;
==== From the main page ====&lt;br /&gt;
[[File:Multiplayer.jpg|thumb|Multiplayer settings in [[FGRun]]]]&lt;br /&gt;
# Select your [[aircraft]] and starting airport as normal in [[FGRun]].&lt;br /&gt;
# On the last screen, tick the &amp;quot;Multiplayer&amp;quot; box. Also make sure that the &amp;quot;AI models&amp;quot; box is checked or you will not be able to see the other pilots' aircraft.&lt;br /&gt;
# Enter the …&lt;br /&gt;
#* '''Callsign''' of your choice.&lt;br /&gt;
#* '''Hostname:''' Enter &amp;lt;code&amp;gt;mpserverXX.flightgear.org&amp;lt;/code&amp;gt; (with &amp;lt;code&amp;gt;XX&amp;lt;/code&amp;gt; being the [[#Servers|server number]]).&lt;br /&gt;
#* '''In/Out:''' Set both ports to 5000.&lt;br /&gt;
# Click {{button|Run}} to start FlightGear.&lt;br /&gt;
&lt;br /&gt;
To confirm that it's working, you can go to the multiplayer map at http://mpmap02.flightgear.org/ (in Hong Kong). Once FlightGear has started, you will notice chat messages that say &amp;quot;Hello&amp;quot; indicating pilots that are online.  They will also pop up when a pilot joins the MP network. You can change this message by add command line option, e.g.:&lt;br /&gt;
&lt;br /&gt;
  --prop:string:/sim/multiplay/chat=&amp;quot;Greetings pilots&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You may wish to use a different server, especially one closer to you.&lt;br /&gt;
&lt;br /&gt;
==== From Network Settings ====&lt;br /&gt;
[[File:FGRun Advanced dialog - Network.png|thumb|The &amp;lt;tt&amp;gt;Network&amp;lt;/tt&amp;gt; tab of the Advanced Options dialog in [[FGRun]] (in [[Changelog 3.2|FlightGear 3.2.0]]).]]&lt;br /&gt;
You can also change multiplayer settings in the &amp;lt;tt&amp;gt;Network&amp;lt;/tt&amp;gt; tab of FGRun's Advanced Options.&lt;br /&gt;
&lt;br /&gt;
# On the last page, click {{button|Advanced}}.&lt;br /&gt;
# Click &amp;lt;tt&amp;gt;Network&amp;lt;/tt&amp;gt; in the left column.&lt;br /&gt;
# In the &amp;lt;tt&amp;gt;Multiplayer Options&amp;lt;/tt&amp;gt; area …&lt;br /&gt;
#* Type your desired callsign into the box.&lt;br /&gt;
#* Set the parameters for the two other boxes; see [[#Using multiplayer from the command line|below]] for correct syntax.&lt;br /&gt;
#* Click {{button|OK}}, then run FlightGear.&lt;br /&gt;
&lt;br /&gt;
=== Using multiplayer from the command line ===&lt;br /&gt;
When running FlightGear from the [[command line]], you can specify multiplayer settings.  The two arguments are as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
--multiplay=direction,10,ip.address,port&lt;br /&gt;
--callsign=anything&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, &amp;lt;code&amp;gt;--callsign&amp;lt;/code&amp;gt; can be anything you wish but it must be limited to 7 (seven) characters in length counting any dashes. If your callsign is too long, it will be cut off in the various displays where it is shown. Generally speaking, callsigns are of the form X-XXXXX. Check [https://fgtracker.ml/ this page] to see whether your callsign is already in use or not. Do not pick a callsign that is already used, as that will create problems! Please don't leave your callsign as &amp;quot;CALLSIG&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are four arguments to &amp;lt;code&amp;gt;--multiplay&amp;lt;/code&amp;gt;:&lt;br /&gt;
; direction&lt;br /&gt;
: Either &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;out&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt; tells FlightGear to listen to packets of data coming in through the specified '''port'''.  &amp;lt;code&amp;gt;out&amp;lt;/code&amp;gt; tells FlightGear to send data out through the '''port'''.&lt;br /&gt;
&lt;br /&gt;
; ip.address&lt;br /&gt;
: IP address of network interface being used by FlightGear.  If left blank, FlightGear will listen to all network interfaces.  If '''direction''' is set to &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt;, FlightGear will listen to ''only'' this IP address.&lt;br /&gt;
&lt;br /&gt;
; port&lt;br /&gt;
: Port that data is either being sent or received through.  Usually set to &amp;lt;code&amp;gt;5000&amp;lt;/code&amp;gt; and above.&lt;br /&gt;
&lt;br /&gt;
== Advanced usage of multiplayer ==&lt;br /&gt;
=== Local setup for testing ===&lt;br /&gt;
It is possible to set up a local multiplayer network between two FlightGear instances ''without'' using a [[FGMS|multiplayer server]].  All you need to do is map each I/O port of one instance to the corresponding port(s) of the other instance:&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |A socket connection requires not only an IP address, but also a port number for each side of the link - imagine a port number like a &amp;quot;mailbox&amp;quot; sitting at the address. This mailbox is used by the communicating processes to send out and receive &amp;quot;messages&amp;quot;. Different processes (even when possibly identical programs) will need to use different port numbers when running. Because open ports ({{=}}mailboxes) cannot be shared.&lt;br /&gt;
Thus, you need to modify the client-side port settings for each additional instance that you are running on the same machine, and map the output port of one instance to the input port of the other instance (and vice versa). &lt;br /&gt;
  |{{cite web |url={{forum url|p=83068}}&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 2 FGFS instances / 1 win7 running same time with MP?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Jun 10&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Command line parameters for the first instance:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
--multiplay=out,10,127.0.0.1,5000 --multiplay=in,10,127.0.0.1,5001 --callsign=Test1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Command line parameters for the second instance:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
--multiplay=out,10,127.0.0.1,5001 --multiplay=in,10,127.0.0.1,5000 --callsign=Test2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use this kind of setup to test multiplayer related features or troubleshoot multiplayer related bug reports that may be otherwise hard to reproduce over MP.  As you can't access the configuration of other people's FlightGear, this technique allows you to have complete control over FlightGear's settings.&lt;br /&gt;
&lt;br /&gt;
[[File:Direct-p2p-multiplayer-setup.png|800px|Screenshot demonstrating a &amp;quot;peer-to-peer&amp;quot; setup between two FlightGear instances running on the same machine via localhost (127.0.0.1) without any multiplayer server.]]&lt;br /&gt;
&lt;br /&gt;
You can add an arbitrary number of channels to mirror your flight onto other servers, e.g. to a private fgms (FlightGear Multiplayer Server) using &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
--multiplay=out,10,my.private.server.ip,5000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, the &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt; argument above tells FG to listen '''only''' on the loopback/local interface - it will not receive packets arriving on the other network interface(s). If you want to also bind to other interfaces, just omit the IP address by using  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
--multiplay=in,10,,5000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check [https://fgtracker.ml/ this page] to see whether your callsign is already in use or not. Do not pick a callsign that is already used, as that will create problems!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Now, going more slowly for those who are completely lost... ====&lt;br /&gt;
{{Note|This section may contain out of date or inaccurate information.}}&lt;br /&gt;
This section ''ought'' to be unnecessary now with recent versions of the FG server. If you have problems though, it won't hurt to follow through.&lt;br /&gt;
&lt;br /&gt;
First of all, you need to know the IP address of the network interface you'll be using for multiplayer FG. &lt;br /&gt;
&lt;br /&gt;
If your Internet connection is via an ADSL modem that plugs directly into your computer, you should be able to find your IP address by visiting http://www.whatismyip.com. &lt;br /&gt;
{{Note|Your {{Abbr|ISP|Internet Service Provider}} might not give you the same IP address each time.}}&lt;br /&gt;
&lt;br /&gt;
If your connection is via an Ethernet connector or by a wireless link.&lt;br /&gt;
&lt;br /&gt;
* '''Linux:''' Log in as root and run &amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt; in the terminal. In the text that is returned, you should to look for an interface name such as &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;wlan0&amp;lt;/code&amp;gt;.  Finally, look in the text below the interface name for &amp;lt;code&amp;gt;inet addr:ip.address&amp;lt;/code&amp;gt;.  For example, this should read something like &amp;lt;code&amp;gt;inet addr:192.168.0.150&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Windows:'''&lt;br /&gt;
** '''Windows XP or later:''' Start Command Prompt and &amp;lt;code&amp;gt;ipconfig&amp;lt;/code&amp;gt; into the terminal.  Write the IP address down.&lt;br /&gt;
** '''Windows 98''', click start, run, and type &amp;quot;winipcfg&amp;quot; to get information about your IP address.&lt;br /&gt;
&lt;br /&gt;
Now, all that remains is to configure your router to forward UDP port 5000 to the IP address you've just found. This is not something that can be described in step-by-step detail, because each manufacturer's configuration interfaces differ greatly. Some tips are given here – if you get stuck, ask nicely on the [[FlightGear IRC channel]] for help (details on the FlightGear website).&lt;br /&gt;
&lt;br /&gt;
You should know how to log on to your router's configuration page, usually via a web browser. You are looking for settings pertaining to &amp;quot;port forwarding,&amp;quot; &amp;quot;virtual server,&amp;quot; &amp;quot;Forwarding Rules,&amp;quot; or similar. When you have found the relevant settings, you need to add a rule that forwards port 5000 to the IP address you discovered earlier. If there is a choice given, ensure it is UDP ports that are forwarded. If there is no choice, you may assume that both TCP and UDP are being forwarded. Save your configuration, and most routers will probably then need to be rebooted to apply the changes.&lt;br /&gt;
&lt;br /&gt;
{{Note|BSD users: If you are using a ADSL modem, you might have to put the port forward command into the ppp.conf file rather than firewall. This is because the firewall script will only run each time the machine is booted rather than the ppp line coming back online.}}&lt;br /&gt;
&lt;br /&gt;
Finally, start FG using the command line given right at the start (if you're using the Windows launcher you will find entry boxes for Multiplayer arguments – insert the relevant details there). You will end up with something like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;other arguments&amp;gt; --callsign=test --multiplay=in,10,192.168.0.2,5000 --multiplay=out,10,mpserver05.flightgear.org,5000 --airport=KSFO --runway=28R --aircraft=hunter &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose your own callsign, but check [https://fgtracker.ml/ this page] first to see whether your desired callsign is already in use or not. Do not pick a callsign that is already used, as that will create problems!&lt;br /&gt;
&lt;br /&gt;
Once you have started FG, you should, if others are flying, see messages in the terminal from which FG was started, similar to the following;&lt;br /&gt;
&lt;br /&gt;
 Initialising john51a using 'Aircraft/ufo/Models/ufo.xml'  &lt;br /&gt;
 FGMultiplayRxMgr::ProcessRxData - Add new player. IP: 10.0.0.36,  &lt;br /&gt;
 Call: john51a,model: Aircraft/ufo/Models/ufo.xml &lt;br /&gt;
&lt;br /&gt;
You MUST give your local, behind-the-router IP address for multiplayer to work. Trust me on this one!&lt;br /&gt;
&lt;br /&gt;
You should check that your firewall is not causing problems - either turn it off ''temporarily'' or add an exception to allow incoming connections on port 5000.&lt;br /&gt;
&lt;br /&gt;
If it's still just not working for you, ask nicely on the [[FlightGear IRC channel|IRC channel]] or the {{forum link|text=forum}} and someone should be able to assist.&lt;br /&gt;
&lt;br /&gt;
=== Multiple connections per computer ===&lt;br /&gt;
It is possible to run multiple FlightGear instances on a single computer and connect them all to the multiplayer network. However, this requires some extras to keep in mind:&lt;br /&gt;
# Both instances use the same &amp;lt;code&amp;gt;out&amp;lt;/code&amp;gt; port.&lt;br /&gt;
# One instance uses &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt; port &amp;lt;code&amp;gt;5001&amp;lt;/code&amp;gt;, the other port &amp;lt;code&amp;gt;5002&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Both instances have unique callsigns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Optional collision detection in multiplayer ===&lt;br /&gt;
&lt;br /&gt;
A patch has been added to FlightGear (since Version 3.5) to allow optional collision detection in multiplayer. To enable collision detection, start FlightGear with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
--prop:bool:/sim/multiplay/hot=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those who are able to patch FGData themselves, can download [http://sourceforge.net/p/flightgear/mailman/attachment/CAHs0wcrEwYZvXTddcUaH0ZMfmVNvEWRap8MXOrEoKybUDO58sQ%40mail.gmail.com/3/ mp-hot-fgdata.patch], which adds a checkbox to the Multiplayer Settings dialog to enable or disable the collision detection at runtime.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer chat ==&lt;br /&gt;
{{Main article|Chat Menu}}&lt;br /&gt;
&lt;br /&gt;
To chat with other pilots, go to the &amp;lt;tt&amp;gt;Multiplayer&amp;lt;/tt&amp;gt; menu and select &amp;lt;tt&amp;gt;Chat Menu&amp;lt;/tt&amp;gt; at the bottom of the menu. Note that the other pilots may not have their chat box open nor chat messages enabled, so they may not see your messages.&lt;br /&gt;
&lt;br /&gt;
The shortcut for chatting is {{Key press|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;}} (hyphen).  This will bring up some text in the upper-left of the FlightGear window.  By pressing the corresponding number keys, you can send pre-made messages.  Pressing {{Key press|1}} will let you type in a custom message, which you can send by pressing enter. By default, other people's messages are displayed at the top of FlightGear's window for a few seconds, but it will appear for a much longer time in the window at &amp;lt;tt&amp;gt;Network &amp;gt; Chat&amp;lt;/tt&amp;gt;. So if you think you have missed anything, go check there.&lt;br /&gt;
&lt;br /&gt;
== Dealing with abusive behavior ==&lt;br /&gt;
Should you become victim of abusive or annoying behavior by any pilot, you have option to ignore him or her. To activate the ignore function open the &amp;lt;tt&amp;gt;Multiplayer &amp;gt; Pilot list&amp;lt;/tt&amp;gt; dialog and click the &amp;lt;tt&amp;gt;ignore&amp;lt;/tt&amp;gt; button next to the pilot's callsign. This will prevent chat messages from the ignored pilot appearing and prevent his aircraft from appearing.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer map ==&lt;br /&gt;
[[File:MP_Server.jpg|thumb|300px|[[MPMap]] screenshot]]&lt;br /&gt;
{{Main article|MPMap}}&lt;br /&gt;
&lt;br /&gt;
There is a very nice online map which displays the location of online pilots at [http://mpmap02.flightgear.org mpmap02]. You will also find this useful to check that you are successfully connecting to the server, as well as looking up navaids, waypoints, airports, frequencies, weather, and more!&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
The multiplayer servers are interconnected.  With few exceptions you ''do not'' need to connect to a specific server in order to see other pilots who are on that server. For best performance, you should connect to the server that is either geographically closest to you, has the lowest latency (ping time), or is the least busy.&lt;br /&gt;
{{tip|Use [http://mpmap01.flightgear.org/mpstatus/ this link] to check if the MP servers are online. Page is automatically generated.  The [[#In-sim Dialog|in-sim dialog]] will only display servers that are available.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Server address&lt;br /&gt;
! Status&lt;br /&gt;
! Location &lt;br /&gt;
! Tracked (by [http://fgtracker.ml fgtracker.ml] unless otherwise specified) &lt;br /&gt;
! Maintainer &lt;br /&gt;
! Maintainer's [[IRC]] name &lt;br /&gt;
! Maintainer's {{forum link|text=forum}} name&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| mpserver01.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Germany&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Oliver Schröder&lt;br /&gt;
| os&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver02.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Los Angeles, USA&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Lloyd Stevens&lt;br /&gt;
| ls4680&lt;br /&gt;
| ls4680&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver03.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Germany &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Hergen&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| [https://mpserver03.flightgear.org mpserver03.flightgear.org]&lt;br /&gt;
|-&lt;br /&gt;
| mpserver04.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| UK&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Jon Stockill&lt;br /&gt;
| Nav&lt;br /&gt;
| {{forum link|type=member|u=738|text=JonS}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver05.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Chicago, USA&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Brant&lt;br /&gt;
| IonCannon218&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-       &lt;br /&gt;
| mpserver06.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Berlin, Germany&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Sven Teichmann&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{forum link|type=member|u=11839|text=D-SAMI}}&lt;br /&gt;
| Unlimited traffic&lt;br /&gt;
|-       &lt;br /&gt;
| mpserver07.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Wisconsin, USA&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Tom Betka&lt;br /&gt;
| TB&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Offline&lt;br /&gt;
|-       &lt;br /&gt;
| mpserver08.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Frankfurt am Main, Germany&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Roland&lt;br /&gt;
| Quix0r&lt;br /&gt;
| {{forum link|type=member|u=7512|text=Quix0r}}&lt;br /&gt;
| 10 TByte traffic, mostly short pings&lt;br /&gt;
|-&lt;br /&gt;
| mpserver09.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Köln, Germany&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Daniel Vigano&lt;br /&gt;
| Fauchi95&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Offline&lt;br /&gt;
|-&lt;br /&gt;
| mpserver10.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Montpellier, France&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{usr|Xiii|Alexis Bory}}&lt;br /&gt;
| xiii&lt;br /&gt;
| {{forum link|type=member|u=884|text=xiii}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver11.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Vilnius, Lithuania&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Darius&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{forum link|type=member|u=1122|text=ffg}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver12.org&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Amsterdam, the Netherlands&lt;br /&gt;
| {{no}} ([http://mpserver12.org mpserver12.org])&lt;br /&gt;
| Rob&lt;br /&gt;
| evilslut&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Formerly mpserver12.flightgear.org&amp;lt;ref&amp;gt;{{forum url|p=258435}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mpserver13.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Beauvais, France&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Charles Ingels&lt;br /&gt;
| charles&lt;br /&gt;
| {{forum link|type=member|u=1592|text=cbz-026}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver14.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| UK&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Pete&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver15.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| North Point, Hong Kong&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Hazuki Amamiya&lt;br /&gt;
| Hazuki&lt;br /&gt;
| {{forum link|type=member|u=8400|text=Hazuki}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver16.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Kansas City, Missouri, USA&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Rob Rozestraten&lt;br /&gt;
| truthsolo&lt;br /&gt;
| {{forum link|type=member|u=9926|text=truthsolo}}&lt;br /&gt;
| Offline&lt;br /&gt;
|-&lt;br /&gt;
| mpserver17.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Cluj, Romania&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| Marius&lt;br /&gt;
| tuxum&lt;br /&gt;
| {{forum link|type=member|u=11636|text=tuxum}}&lt;br /&gt;
| Offline&lt;br /&gt;
|-&lt;br /&gt;
| mpserver18.flightgear.org&lt;br /&gt;
| {{no|Down}}&lt;br /&gt;
| Germany&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver19.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| London, UK&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Marisa Giancarla&lt;br /&gt;
| marisag&lt;br /&gt;
| {{forum link|type=member|u=21604|text=marisag}}&lt;br /&gt;
| flightgearuk.gameplayer.club&lt;br /&gt;
|-&lt;br /&gt;
| mpserver20.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| South San Francisco, California, USA&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Marisa Giancarla&lt;br /&gt;
| marisag&lt;br /&gt;
| {{forum link|type=member|u=21604|text=marisag}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver21.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Tokyo, Japan&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Marisa Giancarla&lt;br /&gt;
| marisag&lt;br /&gt;
| {{forum link|type=member|u=21604|text=marisag}}&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver22.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Munich, Germany&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Fabian Gilgen&lt;br /&gt;
| ivelischt&lt;br /&gt;
| ivelischt&lt;br /&gt;
| {{N/a|None}}&lt;br /&gt;
|-&lt;br /&gt;
| mpserver25.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Mumbai, India&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Marisa Giancarla&lt;br /&gt;
| marisag&lt;br /&gt;
| {{forum link|type=member|u=21604|text=marisag}}&lt;br /&gt;
| flightgearin.gameplayer.club&lt;br /&gt;
|-&lt;br /&gt;
| mpserver26.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Frankfurt, Germany&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Marisa Giancarla&lt;br /&gt;
| marisag&lt;br /&gt;
| {{forum link|type=member|u=21604|text=marisag}}&lt;br /&gt;
| flightgearde.gameplayer.club&lt;br /&gt;
|-&lt;br /&gt;
| mpserver51.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Atlanta, Georgia, USA&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Marisa Giancarla&lt;br /&gt;
| marisag&lt;br /&gt;
| {{forum link|type=member|u=21604|text=marisag}}&lt;br /&gt;
| flightgearat.gameplayer.club&lt;br /&gt;
|-&lt;br /&gt;
| mpserver87.flightgear.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| London, England&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Megaf&lt;br /&gt;
| Megaf&lt;br /&gt;
| {{forum link|type=member|u=21017|text=Megaf}}&lt;br /&gt;
| 2000 nmi Range and Radar Range.&lt;br /&gt;
|-&lt;br /&gt;
| mpcn01.fgprc.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| Shanghai, China&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Weihao Lee&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
| 100 nm Range and 2000nm Radar Range.&lt;br /&gt;
|-&lt;br /&gt;
| mpcn02.fgprc.org&lt;br /&gt;
| {{yes|Up}}&lt;br /&gt;
| NewYork, US&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Sidi Liang&lt;br /&gt;
| {{N/a}}&lt;br /&gt;
|  {{forum link|type=member|u=19791|text=sidi762}}&lt;br /&gt;
| 200 nm Range and 2000nm Radar Range.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Geographic locations of the servers are also available at [http://goo.gl/maps/jBwUd Google Maps].&lt;br /&gt;
&lt;br /&gt;
If you are interested in hosting your own multiplayer server, you may want to check out [[Howto: Set up a multiplayer server]].&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
=== Fibertel (Argentina) ===&lt;br /&gt;
In December 2014, it was reported that UDP connection through port 5000 was not possible for users whose ISP was {{Wikipedia|Fibertel}} (Argentina).&lt;br /&gt;
&lt;br /&gt;
Fibertel Argentina apparently uses the port for setup purposes. &amp;quot;It should be open for the user but it might not be fully functional.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Port 5000 is a generic port, and neither FlightGear nor the {{Wikipedia|UPnP}} protocol are an &amp;quot;official&amp;quot; usage of the port.  &lt;br /&gt;
&lt;br /&gt;
A solution would be to spread the ports between the servers; e.g., mpserver01.flightgear.org → 5001, mpserver02.flightgear.org → 5002&lt;br /&gt;
&lt;br /&gt;
See also the {{forum link|t=24754|text=forum thread}} and {{issue|1617}}.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[FlightGear Multiplayer Server]]&lt;br /&gt;
* [[Howto: Set up a multiplayer server]]&lt;br /&gt;
* [[Multiplayer protocol]]&lt;br /&gt;
* [[Howto:Transmit_properties_over_MP]]&lt;br /&gt;
* [[Pilot List]] dialog&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Multiplayer]]&lt;br /&gt;
[[Category:Howto|Multiplayer]]&lt;br /&gt;
&lt;br /&gt;
[[de:Howto: Multiplayer]]&lt;br /&gt;
[[es:Howto: Multijugador]]&lt;br /&gt;
[[fr:Howto: Multijoueur]]&lt;br /&gt;
[[it:Come fare:Multiplayer]]&lt;br /&gt;
[[nl:Howto: Multiplayer]]&lt;br /&gt;
[[pl:Konfiguracja trybu multiplayer]]&lt;br /&gt;
[[pt:Tutorial de Multiplayer]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Clipboard_access_using_Nasal&amp;diff=141024</id>
		<title>Howto:Clipboard access using Nasal</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Clipboard_access_using_Nasal&amp;diff=141024"/>
		<updated>2024-11-16T20:24:13Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information, and/or may not meet the quality standards of the wiki, potentially to the point of causing confusion or frustration to readers.|day=16|month=11|year=2024}}{{Stub}}&lt;br /&gt;
&lt;br /&gt;
As of 08/2012 (i.e. in upcoming FlightGear 3.0), there's a &amp;quot;clipboard&amp;quot; hash in Nasal space which can be used to access the clipboard. There are two types of clipboards supported:&lt;br /&gt;
&lt;br /&gt;
* CLIPBOARD: Standard clipboard like on almost everything operating system&lt;br /&gt;
* SELECTION: Primary X Selection like found on X11 based systems. On non-X11 platform this clipboard is only accessible from inside FlightGear.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
# Setting/getting the contents of the given type of clipboard. If&lt;br /&gt;
# no type is specified it defaults to the standard clipboard.&lt;br /&gt;
# The return value indicates whether the operation completed&lt;br /&gt;
# successfully.&lt;br /&gt;
clipboard.setText: func(text, type = clipboard.CLIPBOARD) : bool&lt;br /&gt;
clipboard.getText: func(type = clipboard.CLIPBOARD)       : bool&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some examples of using the clipboard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Clipboard contains: &amp;quot;, clipboard.getText() );&lt;br /&gt;
print(&amp;quot;Selection contains: &amp;quot;, clipboard.getText(clipboard.SELECTION) );&lt;br /&gt;
&lt;br /&gt;
if( !clipboard.setText(&amp;quot;test&amp;quot;) )&lt;br /&gt;
  print(&amp;quot;Failed to write to clipboard&amp;quot;);&lt;br /&gt;
if( !clipboard.setText(&amp;quot;test-selection&amp;quot;, clipboard.SELECTION) )&lt;br /&gt;
  print(&amp;quot;Failed to write to selection&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
[[Category:Nasal]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Code_cleanup&amp;diff=141023</id>
		<title>Code cleanup</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Code_cleanup&amp;diff=141023"/>
		<updated>2024-11-16T20:22:08Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information, and/or may not meet the quality standards of the wiki, potentially to the point of causing confusion or frustration to readers.|day=16|month=11|year=2024}}{{Out of date}} &lt;br /&gt;
The purpose of this page is to provide a todo-list or check-list for anyone that wants to help '''clean up the [[Flightgear]] code'''. In addition to this list, you also want to try running FlightGear in [http://freshmeat.net/projects/valgrind/ Valgrind], a very powerful memory debugger and profiler. &lt;br /&gt;
&lt;br /&gt;
A list of articles related to code cleanup can be found in [[:Category:Code Cleanup]].&lt;br /&gt;
&lt;br /&gt;
''Feel free to add additional items to this page!'' &lt;br /&gt;
&lt;br /&gt;
== Keyboard reorganisation ==&lt;br /&gt;
The input settings (especially the keyboard) need some TLC. Here are the major tasks (we need to work on the first one first):&lt;br /&gt;
&lt;br /&gt;
* [[Keyboard function priority list]] — come up with a priority list of functions that need global keyboard assignments for ''all'' aircraft, without worrying about the specific keys.&lt;br /&gt;
* Local key block — decide on a block of keys to set aside for per-aircraft assignment.&lt;br /&gt;
* Global key bindings — decide what keys to assign to the functions from the opening list (not using the local key block).&lt;br /&gt;
* Refactor models — refactor all of the aircraft models so that they assign keys only from the local, per-aircraft key block.&lt;br /&gt;
* Add a GUI — add a GUI allowing users to reassign keys while the sim is running and save their changes.&lt;br /&gt;
&lt;br /&gt;
== Major Task List ==&lt;br /&gt;
* Move code out of fgMainLoop() and into separate functions or source files.&lt;br /&gt;
* Replace system() calls in simgear/io/sg_binobj.cxx to `mkdir`&lt;br /&gt;
* Replace system() call in simgear/io/sg_binobj.cxx to `gzip`&lt;br /&gt;
* Allow aircraft to be reliably changed at runtime, without requiring a restart of FlightGear&lt;br /&gt;
* Implement scenery support for dynamic LOD configuration at runtime&lt;br /&gt;
* Optimize the 3D panel code and optionally support display list usage&lt;br /&gt;
* Add OpenGL bindings to the scripting language Nasal to support scripted creation of instruments like the HUD&lt;br /&gt;
* Encourage liberal use of SGSharedPointer whereever raw pointers are currently used&lt;br /&gt;
* Split up unnecessarily large files into several separate compilation units, which should eventually also speed up compilation&lt;br /&gt;
&lt;br /&gt;
== Persistent Checklist ==&lt;br /&gt;
=== Carelessness ===&lt;br /&gt;
* Properly allocate and deallocate memory using malloc/new/new[] and free/delete/delete[]. Valgrind is helpful when looking for these.&lt;br /&gt;
* Close any open file streams when you're through with them. Take care to not write to or close streams that aren't open. Avoid this by initializing file pointers/handles with 0 before use and verify that it is not 0 before accessing/closing.&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
* Use the SG_LOG() facilities instead of cout and printf().&lt;br /&gt;
* Use the SG_USING_STD() facilities instead of explicitly using std::function.&lt;br /&gt;
* Use the STL_* variables defined in simgear/compiler.h when including STL headers.&lt;br /&gt;
* When including header files, only use double-quotes when the header is in the same directory.&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* Use C-string functions with fixed write buffers whenever possible to avoid buffer overflows.&lt;br /&gt;
* Perform range/bounds checks on all data received from remote that could cause problems, especially those that specify an amount of data to be handled.&lt;br /&gt;
&lt;br /&gt;
For example, use snprintf() instead of sprintf() and strncpy() instead of strcpy().&lt;br /&gt;
&lt;br /&gt;
And please do not forget that snprintf and strncpy does not necessarily add a trailing 0 byte.&lt;br /&gt;
&lt;br /&gt;
[[Category:Code Cleanup| ]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Cessna_172_cockpit_elements&amp;diff=141022</id>
		<title>Cessna 172 cockpit elements</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Cessna_172_cockpit_elements&amp;diff=141022"/>
		<updated>2024-11-16T20:20:28Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information, and/or may not meet the quality standards of the wiki, potentially to the point of causing confusion or frustration to readers.|day=16|month=11|year=2024}}&lt;br /&gt;
&lt;br /&gt;
Examples from the [[c172p|Cessna 172P]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
''' Summary '''&lt;br /&gt;
Total: 316 Cockpit elements&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Switches || 142&lt;br /&gt;
|-&lt;br /&gt;
| Rheostats with On/Off Switches || 7&lt;br /&gt;
|-&lt;br /&gt;
| Magnetic Encoders || 16&lt;br /&gt;
|-&lt;br /&gt;
| Incremental Encoders || 12&lt;br /&gt;
|-&lt;br /&gt;
| Indicator Movements || 32&lt;br /&gt;
|-&lt;br /&gt;
| Lighted Indicators || 38&lt;br /&gt;
|-&lt;br /&gt;
| Numbers || 57&lt;br /&gt;
|-&lt;br /&gt;
| Letters || 12&lt;br /&gt;
|}&lt;br /&gt;
''' Switches ''' &lt;br /&gt;
Total: 142&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Found in !!  !! Description !! &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;11&amp;quot; |Lower Panel Switches || rowspan=&amp;quot;11&amp;quot; | 39&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|    Six Rocker Switches for Lights and Pitot Heat || 6&lt;br /&gt;
|-&lt;br /&gt;
|    Five Circuit Breakers for Radios || 5&lt;br /&gt;
|-&lt;br /&gt;
|    Nine Circuit Breakers for instruments || 9&lt;br /&gt;
|-&lt;br /&gt;
|    One Circuit Breaker for Air Conditioning || 1&lt;br /&gt;
|-&lt;br /&gt;
|    One pull switch/Circuit Breaker for Alternators || 2&lt;br /&gt;
|-&lt;br /&gt;
|    Two Rocker Switches for Alternator and Battery || 2&lt;br /&gt;
|-&lt;br /&gt;
|    One Rotary 5 position Off, Magneto 1, 2, Both and Start Switch || 5&lt;br /&gt;
|-&lt;br /&gt;
|    One 4 Position Lever Switch for Flaps || 4&lt;br /&gt;
|-&lt;br /&gt;
|    One Toggle Switch for Avionics Power || 1&lt;br /&gt;
|-&lt;br /&gt;
|    Fuel Selector || 4 &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |Radio Stack || rowspan=&amp;quot;7&amp;quot; | 100&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| KMA20 Audio Control Panel &amp;amp; Marker Indicator Lights  &amp;lt;br&amp;gt;Three Position Rotary Switch – Com1, Com2, Extended (3)&amp;lt;br&amp;gt;Eight Speaker/Off/Phones Switches (16)&amp;lt;br&amp;gt; One Marker High, Lo, Test Switch (2)&lt;br /&gt;
| 21&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; |Two KX165 Radios &amp;lt;br&amp;gt;&lt;br /&gt;
Push Button Switches for Frequency Swap (4)&amp;lt;br&amp;gt;&lt;br /&gt;
Power Switches (2)&amp;lt;br&amp;gt;&lt;br /&gt;
Pull Test Switches (4)&amp;lt;br&amp;gt;&lt;br /&gt;
Pull 25K Switches (2)&amp;lt;br&amp;gt;&lt;br /&gt;
Pull RAD Switches (2)&amp;lt;br&amp;gt;&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
|DME &lt;br /&gt;
Three position switch (3)&amp;lt;br&amp;gt;&lt;br /&gt;
DME ON/Off (1) &amp;lt;br&amp;gt;&lt;br /&gt;
Push Button Selector Switch (1) &amp;lt;br&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; |KR87 ADF&amp;lt;br&amp;gt;&lt;br /&gt;
Five Function Push Buttons (5)&amp;lt;br&amp;gt;&lt;br /&gt;
Power Switch (1)&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; |KAP140 Autopilot&amp;lt;br&amp;gt;&lt;br /&gt;
Pushbutton Function Switches (10)&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; |KT76 Transponder&amp;lt;br&amp;gt;&lt;br /&gt;
Five Position switch (5)&amp;lt;br&amp;gt;&lt;br /&gt;
Eight Position Rotary Switches:&amp;lt;br&amp;gt;&lt;br /&gt;
- 1000s (8)&amp;lt;br&amp;gt;&lt;br /&gt;
- 100s (8)&amp;lt;br&amp;gt;&lt;br /&gt;
- 10s (8)&amp;lt;br&amp;gt;&lt;br /&gt;
- 1s (8)&amp;lt;br&amp;gt;&lt;br /&gt;
|37&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Instruments||rowspan=&amp;quot;2&amp;quot;| 3&lt;br /&gt;
|    Attitude Indicator - Pull to Cage || 1 &lt;br /&gt;
|-&lt;br /&gt;
|    Gyrocompass - Push on adjustment Knobs || 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
''' Rheostats with On/Off Switches '''&lt;br /&gt;
Total: 7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Found in  !!    !! Description !!   &lt;br /&gt;
|-&lt;br /&gt;
| Rowspan=2 | Radios || Rowspan=2| 5&lt;br /&gt;
| KX165 Radios Volume || 4&lt;br /&gt;
|-&lt;br /&gt;
| KR87 ADF Volume || 1&lt;br /&gt;
|-&lt;br /&gt;
| Rowspan=1 | Lower Panel || Rowspan=1| 2&lt;br /&gt;
| Panel and Radio Lighting || 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''' Magnetic Encoders '''&lt;br /&gt;
Total: 16&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!   Found in   !!    !! Description !!   &lt;br /&gt;
|-&lt;br /&gt;
| Rowspan=3 | Instruments || Rowspan=3 | 5&lt;br /&gt;
| Gyrocompass || 2&lt;br /&gt;
|-&lt;br /&gt;
| VOR indicators 1 &amp;amp; 2 || 2&lt;br /&gt;
|-&lt;br /&gt;
| KI225 ADF || 1&lt;br /&gt;
|-&lt;br /&gt;
| Rowspan=6 | Controls || Rowspan=6 | 13&lt;br /&gt;
| Primer, Throttle, Mixture &amp;amp; Carb Heat||  4&lt;br /&gt;
|-&lt;br /&gt;
| Cabin Air &amp;amp; Cabin Heat ||  2&lt;br /&gt;
|-&lt;br /&gt;
|Pedals - Rudder &amp;amp; Toe Brakes || 3&lt;br /&gt;
|-&lt;br /&gt;
|Yoke - Airelons &amp;amp; Elevator || 2&lt;br /&gt;
|-&lt;br /&gt;
|Trim Wheel || 1&lt;br /&gt;
|-&lt;br /&gt;
|Horizontal Trim || 1&lt;br /&gt;
|}&lt;br /&gt;
''' Incremental Encoders '''&lt;br /&gt;
Total: 12&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!   Found in   !!    !! Description !!   &lt;br /&gt;
|-&lt;br /&gt;
| Rowspan=5 | Radios || Rowspan=5 | 12&lt;br /&gt;
|-&lt;br /&gt;
| KX165 Radios Frequency Adjust || 8&lt;br /&gt;
|-&lt;br /&gt;
| KR87 ADF Frequency Adjust || 2&lt;br /&gt;
|-&lt;br /&gt;
| KAP140 Altitude/Baro Adjust|| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''' Indicator Movements '''&lt;br /&gt;
Total: 32&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Type !!  !! Description !!&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |90 degree Meter Movements || rowspan=&amp;quot;7&amp;quot; | 12&lt;br /&gt;
|    Left and Right Fuel || 2&lt;br /&gt;
|-&lt;br /&gt;
|    Oil Temp and Pressure || 2&lt;br /&gt;
|-&lt;br /&gt;
|    Amps and Volts || 2&lt;br /&gt;
|-&lt;br /&gt;
|    VOR 1 &amp;amp; VOR 2 || 4&lt;br /&gt;
|-&lt;br /&gt;
|    EGT || 1&lt;br /&gt;
|-&lt;br /&gt;
|    Atitude Indicator Pitch || 1&lt;br /&gt;
|- &lt;br /&gt;
|    Turn Coordinator Indicator Ball || 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 0 to 359 degree Center Pivot Needle Movement|| rowspan=&amp;quot;2&amp;quot; | 5&lt;br /&gt;
|    Airspeed Indicator Needle || 1&lt;br /&gt;
|-&lt;br /&gt;
|    Tachometer Needle || 1   &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | 0 to 189 &amp;amp; 0 to -189 degree Center Pivot Needle Movement|| rowspan=&amp;quot;1&amp;quot; | 1&lt;br /&gt;
|Vertical Speed Needle || 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 0 to 359 degree Dial Movement|| rowspan=&amp;quot;3&amp;quot; | 3&lt;br /&gt;
|    Altimiter Barometric Pressure || 1&lt;br /&gt;
|-&lt;br /&gt;
|    Altimiter Ground Proximity Indicator || 1&lt;br /&gt;
|-&lt;br /&gt;
|    Turn Coordinator Bank Indicator || 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Continuous Center Pivot Needle Movement|| rowspan=&amp;quot;3&amp;quot; | 6&lt;br /&gt;
|     Altimiter (100's) (1000's) || 2&lt;br /&gt;
|-&lt;br /&gt;
|    ADF Needle || 1&lt;br /&gt;
|-&lt;br /&gt;
|    Clock Hands || 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Continuous Outer Ring Compass or Indicator Movement|| rowspan=&amp;quot;4&amp;quot; | 5&lt;br /&gt;
|    Gyrocompass Compass Rose and Heading Bug ||2&lt;br /&gt;
|-&lt;br /&gt;
|    VOR 1 &amp;amp; VOR 2 Compass Rose || 1&lt;br /&gt;
|-&lt;br /&gt;
|    ADF Compass Rose || 1&lt;br /&gt;
|-&lt;br /&gt;
|    Attitude Indicator Bank || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
''' Lighted Indicators '''&lt;br /&gt;
Total: 38&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Found in !! Description !!&lt;br /&gt;
|-&lt;br /&gt;
|  KMA20 || O,M, I Marker Indicators || 3&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  VOR 1 &amp;amp; VOR 2 || From, To, GS, NAV, OBS &amp;amp; OFF Indicators || 12&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KR87 ADF || ANT ADF BFO FLT ET Indicators || 5&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KAP140 Autopilot || To, From, AP, YD, ARM(1), ARM(2) ,PT, Up, Down, ALERT, HPA, FPM, IN, FT, HG, comma, Roll Axis || 17&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
'''Letters &amp;amp; Numbers'''&lt;br /&gt;
Total: 57 Numbers, 12 Letters&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Found in !! Description !!&lt;br /&gt;
|-&lt;br /&gt;
|  KX165 Comm/Nav Radio || Digits with decimal point || 40&lt;br /&gt;
|-&lt;br /&gt;
|  KR87 ADF || Digits || 6&lt;br /&gt;
|-&lt;br /&gt;
|  DME|| Digits || 6&lt;br /&gt;
|-&lt;br /&gt;
|  KAP140 Autopilot || Digits with comma || 5&lt;br /&gt;
|-&lt;br /&gt;
|  KAP140 Autopilot || Letters  || 12&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft documentation]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FG_Add-on_FAQ&amp;diff=141021</id>
		<title>FG Add-on FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FG_Add-on_FAQ&amp;diff=141021"/>
		<updated>2024-11-16T20:19:57Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information, and/or may not meet the quality standards of the wiki, potentially to the point of causing confusion or frustration to readers.|day=16|month=11|year=2024}}&lt;br /&gt;
&lt;br /&gt;
This document attempts to answer some Frequently Asked Questions from aircraft/scenery [[Addon|add-on]] developers coming from other simulators. Click [[Frequently asked questions|here]] for general FlightGear FAQ!&lt;br /&gt;
&lt;br /&gt;
It does not cover technical details, but rather describes the overall ethos of the project. As FlightGear is quite a different environment from that which most add-on  developers are used to, this is quite important.&lt;br /&gt;
&lt;br /&gt;
Hopefully, this document will help to avoid possible misunderstandings and mis-communications and help add-on developers to develop exciting new features for FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Why FlightGear? ==&lt;br /&gt;
&lt;br /&gt;
So, why would you want to develop add-ons for FlightGear?&lt;br /&gt;
&lt;br /&gt;
The main reasons are stability and innovation. FlightGear is developed by volunteers rather than a company, and due to being released under the GPL, isn't going to disappear. Issues such as those that hit Microsoft Flight Simulator in January 2009 are simply not possible.&lt;br /&gt;
&lt;br /&gt;
FlightGear is also the most innovative desktop simulation available, again due to being released under the GPL. Recent developments include glider-towing and wild-fire simulation. Anything is possible! In recent months a developer has made an incredibly detailed model of the [[SpaceShuttle - Project Overview|Space Shuttle]], and the [[777]] and [[c172p|Cessna C172P SkyHawk]] have seen recent development..&lt;br /&gt;
&lt;br /&gt;
== How is FlightGear developed? ==&lt;br /&gt;
&lt;br /&gt;
FlightGear is developed by volunteers all over the world. The core development team (those writing the core code of the simulator) had 20-40 active contributors at one time. There are many more people developing new aircraft and scenery as well.&lt;br /&gt;
&lt;br /&gt;
FlightGear is not a commercial product owned by a company. Instead it may be described as the collective responsibility of a wide group of people.&lt;br /&gt;
&lt;br /&gt;
Development is coordinated on the flightgear-devel@lists.sourceforge.net mailing list, as well as to a limited extent, on the Official Forums [http://www.forums.flightgear.org here].&lt;br /&gt;
&lt;br /&gt;
Releases are currently bi-yearly, based around the number 17. On January 17 and June 17 the repositories on SourceForge close to new features for a month of bug -fixing. On or around February 17th or 18th and ditto for July, the next version is officially released, and the cycle starts all over again!&lt;br /&gt;
== What's the GPL? ==&lt;br /&gt;
&lt;br /&gt;
The GNU General Public License (GPL) is an open-source license that gives the user a wide variety of freedoms [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html]. FlightGear and the core data used by it are released under the GPL v2. &lt;br /&gt;
&lt;br /&gt;
Note that this is quite different from &amp;quot;freeware&amp;quot; as understood by many other simulation communities. Particular difference of note are:&lt;br /&gt;
* The source code of the simulator must be made available in a machine-readable form.&lt;br /&gt;
* The author cannot prohibit modification and subsequent distribution&lt;br /&gt;
* The end product may be used for commercial purposes.&lt;br /&gt;
&lt;br /&gt;
You may be able to release your add-ons under the GPL, and the FlightGear community would encourage you to do so for a variety of reasons:&lt;br /&gt;
* It maximizes the freedoms that the community has to enhance and maintain your add-on. This can be particularly important as the pace of FlightGear development is very high, and you may no-longer want to support the add-on yourself.&lt;br /&gt;
* It can be maintained within the FlightGear source-code repository (Git), and included in subsequent FlightGear releases.&lt;br /&gt;
* It can easily be combined with other FlightGear GPL'd components, and made greater than the sum of its parts.&lt;br /&gt;
* Most core developers prefer to work on GPL's software, as they see it as being more beneficial to the community. They may work on GPL add-ons in preference to non-GPL add-ons.&lt;br /&gt;
* Having all add-ons released under the same license simplifies life.&lt;br /&gt;
* It's a nice thing to do, as it gives something back to FlightGear.&lt;br /&gt;
&lt;br /&gt;
== I don't want to use the GPL - can I use another license? ==&lt;br /&gt;
&lt;br /&gt;
Absolutely!&lt;br /&gt;
&lt;br /&gt;
However:&lt;br /&gt;
* You need to be absolutely clear on what the GPL does, and does not allow you to do. To take an example of developing a new aircraft: you can reference a gauge elsewhere within the FG data repository, but you cannot copy it and modify it for your aircraft without releasing it under the GPL. &lt;br /&gt;
* You will need to make your own arrangements for hosting, code revisions etc.&lt;br /&gt;
* It will not be possible to including your add-on within the FlightGear release itself.&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear addons]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Blender_and_BTG&amp;diff=141019</id>
		<title>Blender and BTG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Blender_and_BTG&amp;diff=141019"/>
		<updated>2024-11-16T20:17:39Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information, or may not meet the quality standards of the wiki, potentially to the point of causing confusion or frustration to readers.|day=16|month=11|year=2024}}{{Stub}}&lt;br /&gt;
{{Infobox Software&lt;br /&gt;
|title             = Blender and BTG&lt;br /&gt;
|logo              =&lt;br /&gt;
|image             =&lt;br /&gt;
|developedby       = Lauri Peltonen&lt;br /&gt;
|initialrelease    = &lt;br /&gt;
|latestrelease     = Export: 31 Jan 2009&amp;lt;br/&amp;gt;Import: 07 Mar 2011&lt;br /&gt;
|writtenin         = Python&lt;br /&gt;
|os                =&lt;br /&gt;
|platform          =&lt;br /&gt;
|developmentstatus =&lt;br /&gt;
|type              =&lt;br /&gt;
|license           =&lt;br /&gt;
|website           =&lt;br /&gt;
}}&lt;br /&gt;
With the use of a special import&amp;amp;export script, '''[[BTG file format|BTG files]] can be opened in, and exported from [[Blender]]'''. This makes it possible to edit [[FlightGear]]'s terrain and specifically [[airport]]s in a visual editor.&lt;br /&gt;
&lt;br /&gt;
== User documentation ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Download the two scripts:&lt;br /&gt;
* [http://sourceforge.net/p/flightgear/fgscenery/tools/ci/master/tree/Blender/import_btg_v7.py?format=raw Import script]&lt;br /&gt;
* [http://sourceforge.net/p/flightgear/fgscenery/tools/ci/master/tree/Blender/export_btg.py?format=raw Export script]&lt;br /&gt;
&lt;br /&gt;
Place both files in your Blender's &amp;lt;tt&amp;gt;.blender/scripts/&amp;lt;/tt&amp;gt; directory. Common locations are:&lt;br /&gt;
* Windows: &amp;lt;tt&amp;gt;C:/Program Files/Blender Foundation/Blender/.blender/scripts&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to correct the [[$FG_ROOT]] setting in the import file, if needed. Default setting is:&lt;br /&gt;
 FG_ROOT = &amp;quot;/usr/local/share/flightgear/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Scripts should work with '''Blender 2.4x''' (latest available is Blender 2.49b), they will not work with version Blender 2.6x.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
==== Import ====&lt;br /&gt;
Import via &amp;lt;tt&amp;gt;File &amp;gt; Import &amp;gt; Simgear (.btg) v7&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' rename the &amp;lt;tt&amp;gt;[ICAO].btg.gz&amp;lt;/tt&amp;gt; file of an airport, to its corresponding &amp;lt;tt&amp;gt;[tileid].btg.gz&amp;lt;/tt&amp;gt;, in order to import it correctly. For importing [[KSFO]], we need to rename &amp;lt;tt&amp;gt;KSFO.btg.gz&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;942050.btg.gz&amp;lt;/tt&amp;gt;, for example.&lt;br /&gt;
&lt;br /&gt;
==== Export ====&lt;br /&gt;
Export to a file with a .btg.gz extension, via &amp;lt;tt&amp;gt;File &amp;gt; Export &amp;gt; Simgear (.btg)&amp;lt;/tt&amp;gt;. Make sure to enter the correct coordinates and radius, as displayed in the console (you can copy&amp;amp;paste from that one) and/or screen on import.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
* Textures are not applied automatically in Blender, altough they are loaded.&lt;br /&gt;
* Imported meshes are shrinked because Blender does/did not support huge enough models (they are loaded correctly, but you cannot zoom out enough to see the whole tile).&lt;br /&gt;
* Sometimes exported triangle has its texture coordinates in wrong order which leads to weird looking textures (e.g. on a runway).&lt;br /&gt;
* After exporting .btg files, polygon are not smooth anymore. This will result in weird looking mountains.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Programming_resources&amp;diff=141018</id>
		<title>Programming resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Programming_resources&amp;diff=141018"/>
		<updated>2024-11-16T20:17:21Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information, or may not meet the quality standards of the wiki, potentially to the point of causing confusion or frustration to readers.|day=16|month=11|year=2024}}{{Out of date}}&lt;br /&gt;
&lt;br /&gt;
Please note that as of 04/2009, the &amp;quot;aviation standards &amp;amp; information&amp;quot; section has been moved to a new page [[Aviation Standards &amp;amp; Information]].&lt;br /&gt;
This also applies to the &amp;quot;Free GIS data&amp;quot; section which can now be found at [[Scenery Development Resources]].&lt;br /&gt;
&lt;br /&gt;
As of 09/2009, there's also a new section titled [[Ground Traffic Simulation Resources]] specifically dedicated to collecting resources related to improving FlightGear's support for modeling ground traffic. As of 03/2010 the section on Shaders has been moved to a dedicated page titled [[GLSL Shader Programming Resources]]&lt;br /&gt;
&lt;br /&gt;
= Programming &amp;amp; Open Source =&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLhMnuBfGeCDNgVzLPxF9o5UNKG1b-LFY9 The Structure and Interpretation of Computer Programs (UC Berkeley CS 61A)]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLgNUCz66KaWRSVzIeT_qB2yBgHocLmRWI Data Structures (UC Berkeley CS 61B)]&lt;br /&gt;
* [http://nongnu.askapache.com/pgubook/ProgrammingGroundUp-1-0-booksize.pdf Programming from the ground up] (PDF)&lt;br /&gt;
* [http://producingoss.com/ Producing OSS]&lt;br /&gt;
* [https://skillcombo.com/courses/development/programming-languages/ Programming online courses]&lt;br /&gt;
&lt;br /&gt;
= Source Code Management =&lt;br /&gt;
* [http://www.ericsink.com/scm/source_control.html Intro to Source Control]&lt;br /&gt;
* [http://www-cs-students.stanford.edu/~blynn/gitmagic/ Git Magic - Introduction]&lt;br /&gt;
* http://git-scm.com/book&lt;br /&gt;
* http://ftp.newartisans.com/pub/git.from.bottom.up.pdf&lt;br /&gt;
&lt;br /&gt;
= Software Engineering =&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PL_pbwdIyffslgxMVyXhnHiSn_EWTvx1G- Software Engineering Playlist]&lt;br /&gt;
* [http://www.gotw.ca/publications/index.htm Guru of the Week]&lt;br /&gt;
* [http://www.gotw.ca/publications/concurrency-ddj.htm The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software]&lt;br /&gt;
* [http://www.infoq.com/presentations/effective-api-design How to Design a Good API and Why it Matters] [http://lcsd05.cs.tamu.edu/slides/keynote.pdf]&lt;br /&gt;
* [http://decoy.iki.fi/texts/filefd/filefd A brief look at file format design]&lt;br /&gt;
* http://arstechnica.com/articles/paedia/cpu/valve-multicore.ars&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
* [http://www.tcl.tk/doc/scripting.html Scripting: Higher Level Programming for the 21st Century]&lt;br /&gt;
* [http://www.osnews.com/story/7038/On_Scripting_Languages On Scripting Languages]&lt;br /&gt;
&lt;br /&gt;
== Pointer Basics ==&lt;br /&gt;
* [http://cslibrary.stanford.edu/104/ Binky Pointer Fun Video]&lt;br /&gt;
* [http://www.slideshare.net/emartinez.romero/first-look-at-pointers First Look at Pointers]&lt;br /&gt;
* [http://www.slideshare.net/emartinez.romero/general-talk-on-pointers-1317108 General Talk on Pointers]&lt;br /&gt;
* [http://www.slideshare.net/emartinez.romero/more-pointers-and-arrays Pointers and Arrays]&lt;br /&gt;
* [http://www.slideshare.net/udekel/introduction-to-pointers-and-memory-management-in-c Introduction to Pointers &amp;amp; Memory Managements]&lt;br /&gt;
* [http://andesengineering.com/OSG_ProducerArticles/RefPointers/RefPointers.html Using osg::ref_ptr]&lt;br /&gt;
&lt;br /&gt;
== Optimization ==&lt;br /&gt;
* [http://www.agner.org/optimize/optimizing_cpp.pdf Optimizing C++] (http://www.agner.org/optimize/)&lt;br /&gt;
* [http://www.tantalon.com/pete/cppopt/main.htm C++ Optimization Strategies and Techniques]&lt;br /&gt;
* [http://www.crowl.org/Lawrence/programming/Bentley82.html Writing Efficient Programs]&lt;br /&gt;
&lt;br /&gt;
= Programming - Background knowledge =&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLoCMsyE1cvdWiqgyzwAz_uGLSHsuYZlMX Programming Abstraction in C++ (CS106B Stanford University)](~ 27 videos teaching programming and C++)&lt;br /&gt;
&lt;br /&gt;
== C++ Courses ==&lt;br /&gt;
* http://www.learncpp.com/&lt;br /&gt;
* http://www.cprogramming.com/&lt;br /&gt;
* http://www.cplusplus.com&lt;br /&gt;
* http://www.thefreecountry.com/documentation/onlinecpp.shtml&lt;br /&gt;
* http://www.cpp4u.com/&lt;br /&gt;
* C++ related presentations:&lt;br /&gt;
** [http://www.slideshare.net/reachanil/c-memory-management Memory Management in C++]&lt;br /&gt;
** http://www.slideshare.net/reachanil/static-and-dynamic-polymorphism-in-c/&lt;br /&gt;
** http://www.slideshare.net/emery/automatically-tolerating-and-correcting-memory-errors&lt;br /&gt;
&lt;br /&gt;
* Youtube Contents:&lt;br /&gt;
** [https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb C++ (Yan Chernikov)]&lt;br /&gt;
** [http://youtube.com/user/reconnetworks A number of introductory C++ Tutorials]&lt;br /&gt;
** [http://youtube.com/watch?v=mrvAqvtWYb4 Getting C++ Threads right]&lt;br /&gt;
** [http://youtube.com/watch?v=3JUXPaovfzw Advanced Topics in Programming Languages Series: C++ Threads]&lt;br /&gt;
&lt;br /&gt;
== C++ eBooks ==&lt;br /&gt;
* http://www.mycplus.com/c.asp?ID=15&lt;br /&gt;
* [http://en.wikibooks.org/wiki/C%2B%2B C++ Wikibook]&lt;br /&gt;
* http://www.techbooksforfree.com/ccpp.shtml&lt;br /&gt;
* [http://www.pragsoft.com/books/CppEssentials.pdf C++ Essentials]&lt;br /&gt;
&lt;br /&gt;
== C++ References ==&lt;br /&gt;
* [http://www.parashift.com/c%2B%2B-faq-lite/ C++ FAQ Lite]&lt;br /&gt;
* [http://yosefk.com/c++fqa/ C++ Frequently Questioned Answers]&lt;br /&gt;
* http://www-h.eng.cam.ac.uk/help/tpl/languages/C++.html&lt;br /&gt;
* [http://www.ericbrasseur.org/cppcen.html?i=1 C++ for C users]&lt;br /&gt;
&lt;br /&gt;
== C++/STL ==&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLZ9NgFYEMxp5oH3mrr4IlFBn03rjS-gN1 C++ Standard Template Library by Example]&lt;br /&gt;
* http://www.yolinux.com/TUTORIALS/LinuxTutorialC++STL.html&lt;br /&gt;
* http://www.halpernwightsoftware.com/stdlib-scratch/quickref.html&lt;br /&gt;
&lt;br /&gt;
== Graphics Programming ==&lt;br /&gt;
* [https://www.gamedev.net/reference/articles/article1698.asp Graphics Programming Black Book]&lt;br /&gt;
&lt;br /&gt;
== Game Programming related ==&lt;br /&gt;
* [http://www.gpwiki.org Game Programming Wiki]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT Build a Game Engine in C++ (Yan Chernikov)]&lt;br /&gt;
* [https://lazyfoo.net/tutorials/SDL/ Beginning Game Programming with C &amp;amp; Simple DirectMedia Layer]&lt;br /&gt;
* http://www.gamedev.net/reference/list.asp?categoryid=45&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== General [[OpenGL]] Resources ==&lt;br /&gt;
* [https://learnopengl.com Learn OpenGL Graphics Programming]&lt;br /&gt;
* [https://www.glprogramming.com/red/ OpenGL Programming Guide (Red Book)]&lt;br /&gt;
* [https://www.glprogramming.com/blue/ OpenGL Reference Manual (Blue Book)]&lt;br /&gt;
* [http://www.falloutsoftware.com/tutorials/gl/gl8.htm OpenGL Light and Polygon Surface Tutorials]&lt;br /&gt;
* http://en.wikibooks.org/wiki/Opengl&lt;br /&gt;
* Youtube Introductions to OpenGL:&lt;br /&gt;
** [https://www.youtube.com/playlist?list=PLlrATfBNZ98foTJPJ_Ev03o2oq3-GGOS2 OpenGL (Yan Chernikov)]&lt;br /&gt;
** [http://www.youtube.com/watch?v=apxdcHwBcZY Graphics Programming]&lt;br /&gt;
** [http://www.youtube.com/watch?v=lTN7bDyHrfE Graphics Programming Using OpenGL]&lt;br /&gt;
** http://youtube.com/watch?v=oVwH8KV1xnY&lt;br /&gt;
** [http://youtube.com/user/mittrekkie Various introductory OpenGL tutorials]&lt;br /&gt;
* Columns&lt;br /&gt;
** [http://www.sjbaker.org/steve/omniv/opengl_lighting.html OpenGL Lighting]&lt;br /&gt;
** [http://www.sjbaker.org/steve/omniv/alpha_sorting.html alpha sorting]&lt;br /&gt;
** [http://www.sjbaker.org/steve/omniv/eulers_are_evil.html Euler Angles are evil]&lt;br /&gt;
** [http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html Learning to Love your Z-Buffer]&lt;br /&gt;
** [http://www.sjbaker.org/steve/omniv/matrices_can_be_your_friends.html matrices can be your friend]&lt;br /&gt;
&lt;br /&gt;
== 3D Maths ==&lt;br /&gt;
&lt;br /&gt;
* http://home.clara.net/iancgbell/maths/index.htm&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLSMz_Hxrv-C2bh5UGOE8n3fYpviD9q2gx Linear Algebra]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLW3Zl3wyJwWNWsJIPZrmY19urkYHXOH3N Math for Game Developers]&lt;br /&gt;
&lt;br /&gt;
== OSG/[[OpenSceneGraph]] related ==&lt;br /&gt;
* https://www.openscenegraph.com/index.php/documentation/getting-started&lt;br /&gt;
* [https://joshuaburkholder.com/documents/OpenSceneGraph_2.0_Quick_Start_Guide.pdf OSG Quick Start Guide]&lt;br /&gt;
* http://thermalpixel.github.io/osg/2014/02/15/rtt-with-slave-cameras.html&lt;br /&gt;
* http://www.vis-sim.com/osg/osg_faq_1.htm&lt;br /&gt;
* http://andesengineering.com/OSG_ProducerArticles/RefPointers/RefPointers.html&lt;br /&gt;
* http://beefdev.blogspot.de/2012/01/render-to-texture-in-openscenegraph.html&lt;br /&gt;
&lt;br /&gt;
== Communities ==&lt;br /&gt;
(Forums, Newsgroups, Mailing Lists &amp;amp; Chat rooms)&lt;br /&gt;
* https://www.gamedev.net/forums/&lt;br /&gt;
* https://www.reddit.com/r/gamedev/&lt;br /&gt;
* https://cboard.cprogramming.com/cplusplus-programming/&lt;br /&gt;
&lt;br /&gt;
= Networking =&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej's Guide to Network Programming]&lt;br /&gt;
* http://courses.cs.vt.edu/~cs4254/spring06/slides/IO_Multiplexing_4.pdf&lt;br /&gt;
* http://irl.eecs.umich.edu/jamin/courses/eecs494/fall06/lectures/lecture9-socket.pdf&lt;br /&gt;
* http://ece.ut.ac.ir/Classpages/S84/Network/unix/Npc13.ppt&lt;br /&gt;
* [https://www.isi.edu/~hussain/TEACH/Spring2014/notes/Steven00a.pdf TCP/IP Illustrated, Volume 1]&lt;br /&gt;
* [http://www.linuxhowtos.org/C_C++/socket.htm Sockets Tutorial]&lt;br /&gt;
== Unix Sockets ==&lt;br /&gt;
* [http://users.actcom.co.il/~choo/lupg/tutorials/internetworking/internet-theory.html Network Programming under Unix Systems]&lt;br /&gt;
* [http://www.kohala.com/start/unpv12e.html Unix Network Programming]&lt;br /&gt;
* [http://www.catb.org/esr/writings/taoup/html/ The Art of Unix Programming (HTML)]&lt;br /&gt;
* [https://nakamotoinstitute.org/static/docs/taoup.pdf The Art of Unix Programming (PDF)]&lt;br /&gt;
== Windows Sockets ==&lt;br /&gt;
* [http://www.tangentsoft.net/wskfaq/ Windosck Programmer's FAQ]&lt;br /&gt;
&lt;br /&gt;
== Protocol Design ==&lt;br /&gt;
* [http://xmpp.org/extensions/xep-0134.html#guidelines Protocol Design Guidelines]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4101 Writing Protocol Models]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Design &amp;amp; Programming ==&lt;br /&gt;
=== Basics ===&lt;br /&gt;
* [http://www.gamedev.net/reference/articles/article721.asp Introduction: Designing Multiplayer Games]&lt;br /&gt;
* [http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ UDP vs. TCP]&lt;br /&gt;
* [http://www.gamedev.net/reference/articles/article1138.asp Networking for Games 101]&lt;br /&gt;
* [http://gafferongames.com/networking-for-game-programmers/ Networking for game programmers]&lt;br /&gt;
* [http://books.google.com/books?id=Zm8AtSWjLwkC&amp;amp;printsec=frontcover&amp;amp;source=gbs_summary_r&amp;amp;cad=0 Programming Multiplayer Games - ebook]&lt;br /&gt;
&lt;br /&gt;
=== State Management &amp;amp; Prediction ===&lt;br /&gt;
* [http://www.gamedev.net/reference/articles/article914.asp Defeating Lag With Cubic Splines]&lt;br /&gt;
* [http://www.gamedev.net/reference/articles/article1948.asp Distributed Gaming]&lt;br /&gt;
* [http://www.gamedev.net/reference/articles/article876.asp Statistical Client Prediction]&lt;br /&gt;
* [http://gafferongames.com/game-physics/networked-physics/ Networked Physics]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [http://www.gamasutra.com/features/19970707/security.htm Security in Online Games]&lt;br /&gt;
* [http://www.gamedev.net/reference/articles/article2062.asp Security Issues of Online Gaming]&lt;br /&gt;
* [http://www.gamedev.net/reference/articles/article722.asp The Essentials of Multiplayer Games ]&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
* https://wiki.ogre3d.org/Home&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Aircraft Information Resources]]&lt;br /&gt;
* [[Modeling Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lists]]&lt;br /&gt;
[[Category:Resources]]&lt;br /&gt;
[[Category:Core developer documentation]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Category:Articles_considered_for_deletion_as_of_November_2024&amp;diff=141016</id>
		<title>Category:Articles considered for deletion as of November 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Category:Articles_considered_for_deletion_as_of_November_2024&amp;diff=141016"/>
		<updated>2024-11-16T20:13:37Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Interprocess_Communication_(IPC)&amp;diff=141014</id>
		<title>FlightGear Interprocess Communication (IPC)</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Interprocess_Communication_(IPC)&amp;diff=141014"/>
		<updated>2024-11-16T20:08:15Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information and/or may not meet the quality standards of the wiki.|day=16|month=11|year=2024}}{{Stub}}&lt;br /&gt;
&lt;br /&gt;
The flightgear supports the following interprocess communication interfaces: &lt;br /&gt;
&lt;br /&gt;
* [[Howto:Create a generic protocol|generic protocols]]&lt;br /&gt;
* [[Telnet usage|telnet/props]]&lt;br /&gt;
* [[Property Tree/Web Server|httpd/mongoose]] (Phi)&lt;br /&gt;
* [[Emesary]]&lt;br /&gt;
* custom hard-coded protocols (netfdm stuff, links)&lt;br /&gt;
* [[High-Level Architecture]] (WIP)&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Aircraft_metadata_checklist&amp;diff=141012</id>
		<title>Aircraft metadata checklist</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Aircraft_metadata_checklist&amp;diff=141012"/>
		<updated>2024-11-16T20:07:22Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information and/or may not meet the quality standards of the wiki.|day=16|month=11|year=2024}}&lt;br /&gt;
&lt;br /&gt;
This list is various simple checks and modifications to improve user experience with aircraft. &lt;br /&gt;
&lt;br /&gt;
(For each of these items, we need to show an example of the XML changes required)&lt;br /&gt;
&lt;br /&gt;
== Metadata / -set.xml ==&lt;br /&gt;
Checking / fixing these items should take about 30 minutes per aircraft (maybe a little longer the first time)&lt;br /&gt;
&lt;br /&gt;
For full description of each item, see [[Aircraft-set.xml|aircraft -set.xml description]]&lt;br /&gt;
&lt;br /&gt;
* Ensure the aircraft ratings are set and not wildly inaccurate.&lt;br /&gt;
* Ensure any tags are from the official list of tags: {{fgmeta source|path=python3-flightgear/flightgear/meta/aircraft_catalogs/catalogTags.py|text=catalogTags.py}}&lt;br /&gt;
* Ensure the aircraft has a suitable name and description&lt;br /&gt;
* For multi-variant aircraft, ensure the primary aircraft is a sensible choice (for example not a copilot or floats/skis variant), and that other variants declare a 'variant-of' referencing the primary&lt;br /&gt;
&lt;br /&gt;
In the primary (for example in &amp;lt;code&amp;gt;f16-block-52-set.xml&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sim&amp;gt;&lt;br /&gt;
   &amp;lt;primary-set type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/primary-set&amp;gt;&lt;br /&gt;
&amp;lt;/sim&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the variants: (for example in &amp;lt;code&amp;gt;f16-block-10-set.xml&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sim&amp;gt;&lt;br /&gt;
    &amp;lt;variant-of&amp;gt;f16-block-52&amp;lt;/variant-of&amp;gt;&lt;br /&gt;
&amp;lt;/sim&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add new-style preview images&lt;br /&gt;
* Ensure the thumbnail is the correct size and follows the guidelines (not a logo, not a photograph) (Insert the basic thumbnail size here)&lt;br /&gt;
* Set &amp;lt;code&amp;gt;minimum-fg-version&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;compatible-fg-version&amp;lt;/code&amp;gt; values in the &amp;lt;code&amp;gt;-set.xml&amp;lt;/code&amp;gt; if required&lt;br /&gt;
* Review the 'catalog generator' error messages for the aircraft (for example XML formatting errors)&lt;br /&gt;
* Ensure any development files are excluded from the generated &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; (for example XCF or PSD files)&lt;br /&gt;
* Examine the console log and resolve any reported aircraft issues (for example PNG bad color profile, missing files, etc.) (Need to document options to do this)&lt;br /&gt;
* Add an appropriate MP fallback model&lt;br /&gt;
&lt;br /&gt;
== Code changes ==&lt;br /&gt;
* Ensure the aircraft uses the global property for enabling/disabling the pilot model.&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft enhancement]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=SGModule_-_standalone_SGSubsystems&amp;diff=141009</id>
		<title>SGModule - standalone SGSubsystems</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=SGModule_-_standalone_SGSubsystems&amp;diff=141009"/>
		<updated>2024-11-16T20:04:50Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information and/or may not meet the quality standards of the wiki.|day=16|month=11|year=2024}}{{Affected by HLA}}&lt;br /&gt;
{{Multicore}}&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
Increasingly, FlightGear developers are talking about splitting up the FlightGear design such that it may use multiple processes or threads for particular subsystems (i.e. using the ongoing HLA work: [[FlightGear HLA support (High Level Architecture)]]), this requires a subsystem design such that certain subsystems can be optionally run as different threads or processes, possibly using different binaries or the same fgfs binary (started in a different startup mode), while still being 100% compatible with the standard way of being run in the sequential FG main loop, as a SGSubsystem.&lt;br /&gt;
&lt;br /&gt;
The [[FGPanel]] project illustrates some of the issues and challenges related to duplicating parts of the FlightGear code base in order to run parts of FlightGear in a standalone fashion, with the [[Canvas]] subsystem being a more recent example of a subsystem that shall eventually support a standalone runtime mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We need to find a clever system to come up with some interface class like SGSubsystem&lt;br /&gt;
that can be run in standalone mode, something like &amp;quot;SGStandalone&amp;quot; - which implements&lt;br /&gt;
the full SGSubsystem interface (subclass), but which can also be run directly &lt;br /&gt;
in a non-fgfs main loop, with just the subsystems required by the corresponding subsystem&lt;br /&gt;
- for the canvas, this would probably mean looking at the fgpanel code: XML processing&lt;br /&gt;
(private property tree) and a network connection to the main FG process, so that &lt;br /&gt;
properties can be exchanged and updated.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initially, it would probably be easier to introduce a specific command line argument (or even just a property like --prop:/startup-mode=foo) so that FlightGear doesn't run the main initialization, but just initializes a particular module which is designed to be run in a standalone fashion.&lt;br /&gt;
&lt;br /&gt;
Basically, you would start FG using a specific switch like ./fgfs --startup-mode=canvas&lt;br /&gt;
Initially, this could be implemented with a custom property: ./fgfs --prop:/startup-mode=canvas&lt;br /&gt;
&lt;br /&gt;
This is also the approach taken by the google chrome and firefox browsers: the same binary is used, but different startup modes are used.&lt;br /&gt;
&lt;br /&gt;
The bootstrapping code (fg_init.cxx) would then need to be modified to disable all the unneeded stuff, and make FG start up without FDM, SOUND etc. and just run a single SGSubsystem (Canvas) in the main loop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ideally, it should be possible to also link subsystems as standalone binaries, so that the linking/library dependencies of the main fgfs executable are not automatically inherited to modules which may not need all of the FG libraries, so that modules like the FDM or the [[Canvas]] don't automatically link in OpenAL or OSG dependencies.&lt;br /&gt;
&lt;br /&gt;
= Objective =&lt;br /&gt;
Establish the requirements to implement an abstract interface that satisfies the standard SGSubsystem interface, while allowing such subsystems to be run as different threads or processes, using the same code base, and supporting the code to be run as part of the same fgfs binary, while providing an option to create separate binaries for specific modules, so that these don't introduce any unneeded fgfs-related dependencies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{cquote|The trick is that each of these threads must be done in a way that you &lt;br /&gt;
can just compile that alternatively in a single standalone binary and run the &lt;br /&gt;
same component in a networked rti - the LinuxTag booth for example.|Mathias Fröhlich (FlightGear Devel mailing list)&amp;lt;ref&amp;gt;{{cite web |url=http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg32973.html&lt;br /&gt;
 |title=FlightGear Manager...|author=Mathias Fröhlich |date=25 June 2011 }}&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Model_import_and_export&amp;diff=141008</id>
		<title>Model import and export</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Model_import_and_export&amp;diff=141008"/>
		<updated>2024-11-16T20:03:38Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information and/or may not meet the quality standards of the wiki.|day=16|month=11|year=2024}}{{Out of date}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
When you create an aircraft model, generally an object like a wing is composed of other parts. A wing may consist of the wing body, the aileron, the flap and perhaps a wingtip. There may be hardware such as stays, guidelines, actuators, etc. It is desirable to export the entire wing with all its parts intact and _independent_. Some export or import tools may not support independent 'sub-objects' and will merge all the parts of a wing into single object (or 'mesh' as objects consisting of polygons are generally called in the 3d world).&lt;br /&gt;
&lt;br /&gt;
What happens if you export or import using a tool that does not support sub objects? You get a wing with all its parts 'welded' together so they cannot be individually manipulated. This is not a good thing.&lt;br /&gt;
&lt;br /&gt;
== FlightGear Import/Export ==&lt;br /&gt;
In FlightGear, a utility called '3dconvert' is bundled with the source (Windows binary available  [ftp://ftp.ihg.uni-duisburg.de/FlightGear/Win32/old/3dconvert-win32.zip here]), which has the ability to convert a number of 3d file formats. Exporting and importing 3d files for FlightGear can involve using the bundled '3dconvert', although it does not have to, given there are a number of third-party converters and import/export tools for 3d modeling applications.&lt;br /&gt;
&lt;br /&gt;
It depends on a library called PLIB for making conversions between formats. As of this writing, _3dconvert_ can only open or save in formats supported by PLIB with any restrictions PLIB places on them.&lt;br /&gt;
&lt;br /&gt;
This utility is dependent on the PLIB library. If you dig deep enough into PLIB documentation, you may find in a very obscure page&lt;br /&gt;
&lt;br /&gt;
Non-class Functions&lt;br /&gt;
http://plib.sourceforge.net/ssg/non_class.html&lt;br /&gt;
(subject to change)&lt;br /&gt;
&lt;br /&gt;
containing a table of formats PLIB is capable of opening and saving. Not all features of certain formats are supported in a given version of the library. This chart explains which formats PLIB recognizes and what features it supports. It also can tell you which features some formats lack.&lt;br /&gt;
&lt;br /&gt;
The problem to solve is getting an aircraft model from GMAX's proprietary binary 3d format into a format more in keeping with the FlightGear community. Moreover, it is desirable to store 3d models in a format that has some longevity and is human readable. Those are two good reasons to get your model out from GMAX's trap.&lt;br /&gt;
&lt;br /&gt;
Two major 3d design applications are AC3D and Blender. AC3D is the format FlightGear uses 'natively' for aircraft models. It is good that FlightGear uses a non-binary format for aircraft models. The AC3D model files are in 'ac' format and have an '.ac' file extension. Blender is another popular 3d modeling application, its files are in Blender format and have a '.blend' extension. Blender can import or export a number of 3d formats using Python scripts (don't worry, the scripts are easy to use and bundled with the latest version of Blender).&lt;br /&gt;
&lt;br /&gt;
This tutorial will focus on Blender, because I am currently using it for my modeling.&lt;br /&gt;
&lt;br /&gt;
== Getting Your Model Out of GMAX ==&lt;br /&gt;
&lt;br /&gt;
An intermediate format is needed to get our model from GMAX into Blender, because GMAX cannot export non-binary 3d files. This is our first problem to solve. Fortunately, others have found a workaround for this situation. Data can be extracted from GMAX objects by writing a Maxscript (the native scripting language used in GMAX) program that collects the data and prints it to the conveniently provided &amp;quot;script listener&amp;quot; which listens to the output of scripts and displays it in a text window. The clever person can then copy the data from the window and paste into a text editor, which can then save the data into a file.&lt;br /&gt;
&lt;br /&gt;
(I will not go into using GMAX plugins. These are issued by game companies that partner with GMAX and distributed software you can plug in to GMAX to export to a particular 3d format used by the game. Feel free to search for these and use them if you can find them and get them to work.)&lt;br /&gt;
&lt;br /&gt;
This file can then be fed into another conversion or import tool. Either directly into a 3d modeling application or another conversion tool.&lt;br /&gt;
&lt;br /&gt;
I found only one workable script for GMAX, one that displays object data in Wavefront OBJ format in the listener window. It is called {NAME HERE} and you can possibly get it {HERE} before it disappears. (See below)&lt;br /&gt;
&lt;br /&gt;
Or you can try my own script that displays AC3D data in in the window.&lt;br /&gt;
&lt;br /&gt;
In any case, you must go through the tedious task of copying and pasting the data. The listener window has some limit on the number of characters you can copy to the clipboard, so you will need to carefully break up the copying into several small selections for large objects.&lt;br /&gt;
&lt;br /&gt;
Sorry.&lt;br /&gt;
&lt;br /&gt;
Note: You may encounter a problem where the script reports an error. This is typically caused by a &amp;quot;grouped&amp;quot; object. You need to select any compound grouped objects and &amp;quot;ungroup&amp;quot; them before export.&lt;br /&gt;
&lt;br /&gt;
== SketchUp ==&lt;br /&gt;
&lt;br /&gt;
'''See this page:''' [[Modelling - SketchUp]] for importing from SketchUp.&lt;br /&gt;
&lt;br /&gt;
== Blender ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Getting Your Objects into Blender ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now that you've got your objects into an intermediate format, you need to get them into your 3d modeling application. I will focus on Blender, but it applies to other applications as well.&lt;br /&gt;
&lt;br /&gt;
If you have the latest version of Blender {version} you _should_ have at least one script for importing Wavefront (.obj) format files. The scripts can be found on the File --&amp;gt; Import or File --&amp;gt; Export menus. Any import or export scripts installed should show up on these menus. Naturally, you will want to look on the Import menu. There is another OBJ filter you may encounter. I found this one limited, so skipped it for the one that seemed more full featured. The one you want is called Wavefront (.obj) and is authored by {author}.&lt;br /&gt;
&lt;br /&gt;
The only step left is to import the OBJ files created by your cutting and pasting into Blender.&lt;br /&gt;
&lt;br /&gt;
Each independent object in your GMAX 'scene' should be there in Blender. Try selecting a part, say the aileron. It should be separately manipulable.&lt;br /&gt;
&lt;br /&gt;
=== Getting your objects out of Blender and into Flightgear ===&lt;br /&gt;
&lt;br /&gt;
Suppose your object was an entire aircraft (you have a strong constitution, doing all that copying and pasting, I disassembled by aircraft into parts, exported them and reassembled them to avoid too much copying at once) or you have created one in Blender from your imported parts.&lt;br /&gt;
&lt;br /&gt;
To use the aircraft in FlightGear, you export in AC3D format. See here for main page about this subject: [[Blender AC3D import and export]]&lt;br /&gt;
&lt;br /&gt;
== Exporting in AC from GMAX ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This discusses a little script I wrote to export objects from GMAX into AC3D format.&lt;br /&gt;
&lt;br /&gt;
[[gMax2AC]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Additional Issues ==&lt;br /&gt;
&lt;br /&gt;
Suppose the scripts to import additional 3d file formats did not exist in Blender. It only natively recognizes three formats (at time of writing), VRML 1.0, DXF, Videoscape and STL. Most are not widely in use today for 3d modeling (in my experience). DXF is a widely used standard format for CAD, but it lacks sub-object support. As far as I know, you cannot use DXF as an intermediate format and have your parts survive unmerged. (According to PLIB chart).&lt;br /&gt;
&lt;br /&gt;
Here are some failed attempts:&lt;br /&gt;
&lt;br /&gt;
GMAX-&amp;gt;AC3D-&amp;gt;VRML 1.0&lt;br /&gt;
using _threedeconvert_ merges objects.&lt;br /&gt;
&lt;br /&gt;
Of course, if you have the Blender AC3D importer, this is unnecessary and not an issue.&lt;br /&gt;
&lt;br /&gt;
GMAX-OBJ-&amp;gt;VRML 2.0&lt;br /&gt;
&lt;br /&gt;
Here I used a third-party file converter. Unfortunately, it only outputs VRML 2.0 and vanilla Blender only imports VRML1.0, which meant this is not a good path.&lt;br /&gt;
&lt;br /&gt;
It just makes clear that you must be careful about which conversion tool or import/export tool you use, be sure it supports sub-objects.&lt;br /&gt;
&lt;br /&gt;
What happens if objects are merged? Have fun picking all the parts of of a complex landing gear out of a single merged object!&lt;br /&gt;
&lt;br /&gt;
== Why Export from GMAX? ==&lt;br /&gt;
&lt;br /&gt;
Several reasons:&lt;br /&gt;
&lt;br /&gt;
* GMAX is a &amp;quot;dead end&amp;quot;, an application developed as a &amp;quot;crippled&amp;quot; version of a high end 3d design suite, deployed for game modding. This year (2005) all support by its make has been dropped. GMAX will only be distributed and supported within individual game environments, if at all.&lt;br /&gt;
&lt;br /&gt;
* GMAX 3d files are in a proprietary binary format, which means humans cannot read them, it makes it difficult to translate to other formats because the format is only known to the developer. This reduces the &amp;quot;longevity&amp;quot; and ability to share your files.&lt;br /&gt;
&lt;br /&gt;
Both of these issues add up to a situation that can leave your files &amp;quot;orphaned.&amp;quot; I put hundreds of hours into my models and do not want them trapped on a &amp;quot;sinking ship&amp;quot; platform that I cannot get them out again to work on.&lt;br /&gt;
&lt;br /&gt;
The official gmax website now points to the parent company AutoDesk, which apparently has discontinued or dropped support for the application.&lt;br /&gt;
&lt;br /&gt;
If you go to the Discreet website (the company that released and managed GMAX)&lt;br /&gt;
&lt;br /&gt;
http://www.discreet.com/products/gmax/&lt;br /&gt;
&lt;br /&gt;
it takes you to&lt;br /&gt;
&lt;br /&gt;
http://usa.autodesk.com/adsk/servlet/index?id=5562445&amp;amp;siteID=123112&lt;br /&gt;
&lt;br /&gt;
which states&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As of October 6, 2005, Autodesk will no longer offer Gmax® software as a stand-alone product. If you are interested in other 3D animation, modeling, and rendering applications from Autodesk please check out Autodesk® 3ds Max® software. You can download a free 30-day trial, view product demonstrations, read customer success stories, and get more information about this powerful, versatile product.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Maxscript Resources ==&lt;br /&gt;
&lt;br /&gt;
There appears very little Maxscript material online. No tutorials, instructions, specifications, other than the official 3ds Maxscript help file I got somewhere. Many of the Maxscript sites are down, gone, password protected or otherwise unavailable. There were several versions of GMAX released, I find that many plugins and scripts are incompatible. I just don't have the time or interest for such a scattered set of resources and community, when there exist strong communities around open source applications such as Blender.&lt;br /&gt;
&lt;br /&gt;
I will not be responsible for the chaotic state of these resources or their applicability or availability, but here are some helpful ones if they still exist by the time you go to them.&lt;br /&gt;
&lt;br /&gt;
Chris Cookson was the author of several important Maxscript import/export scripts, which are no longer easily available.&lt;br /&gt;
&lt;br /&gt;
See this thread&lt;br /&gt;
&lt;br /&gt;
http://www.turbosquid.com/Forum/Index.cfm/stgAct/PostList/intThreadID/16045&lt;br /&gt;
&lt;br /&gt;
for current 2005 status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The OBJ importers are&lt;br /&gt;
&lt;br /&gt;
v1.1&lt;br /&gt;
http://www.turbosquid.com/Forum/Index.cfm/stgAct/PostList/intThreadID/16045&lt;br /&gt;
&lt;br /&gt;
v1.1a&lt;br /&gt;
http://pages.videotron.com/browser/Downloads/GMAX/scripts/importobj.ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://tutorials.city-of-doors.com/gmax.html&lt;br /&gt;
&lt;br /&gt;
Mentions the 10kb limit on cut and paste from script listener.&lt;br /&gt;
&lt;br /&gt;
The script mentioned here for working around this for at least one file format is here&lt;br /&gt;
&lt;br /&gt;
http://nwvault.ign.com/View.php?view=Other.Detail&amp;amp;id=148&lt;br /&gt;
&lt;br /&gt;
and still available at the time of writing. It was last updated in 2003. Perhaps you can adapt it. Good luck.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* http://nwvault.ign.com/View.php?view=other.Detail&amp;amp;id=149&lt;br /&gt;
&lt;br /&gt;
This is a GMax-compatible Maxscript which will import and export (via the listener) ASCII mdl files...&lt;br /&gt;
&lt;br /&gt;
* http://nwvault.ign.com/View.php?view=other.Detail&amp;amp;id=290&lt;br /&gt;
&lt;br /&gt;
This Maxscript © utility will import/export Bioware's © mdl model files for Neverwinter Nights ©.&lt;br /&gt;
&lt;br /&gt;
* http://nwvault.ign.com/View.php?view=other.Detail&amp;amp;id=604&lt;br /&gt;
DLA presents 'Aurora Importer' by Joco. This maxscript utility serves one function: it imports an as...&lt;br /&gt;
==Notes==&lt;br /&gt;
https://github.com/majic79/Blender-AC3D&lt;br /&gt;
&lt;br /&gt;
{{3d}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Decrease_the_number_of_faces&amp;diff=141007</id>
		<title>Howto:Decrease the number of faces</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Decrease_the_number_of_faces&amp;diff=141007"/>
		<updated>2024-11-16T20:02:58Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information and/or  may not meet the quality standards of the wiki.|day=16|month=11|year=2024}}&lt;br /&gt;
&lt;br /&gt;
This short article is designed to show you, the prospective modeller some very good tips when creating models for use within [[FlightGear]] or any other situation which is dependant on ''face count''. &lt;br /&gt;
&lt;br /&gt;
Lets start with telling you why the face count is important. Every time you connect 3 or more lines together you get a what is known as a ''face''. Whenever you place your model in FlightGear the more faces a model has, the more bytes of memory that model will use up of your computer. The more memory that your computer uses to load a model, the less it has to keep the simulation at a good frame rate. So...&lt;br /&gt;
&lt;br /&gt;
It stands to reason that the less faces we use within a model the better it will integrate with FlightGear when you eventually place it in the [[FlightGear Scenery Database|Objects Database]]. For this demonstration we will use some simple models, used in the [[Princess Juliana International Airport]] scenery.&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |My new 3D model has significantly more (perhaps 4 to 5 times as many) polygons than the one I am replacing and I am seeing, at most, a 1 FPS difference in frame rate that I can attribute to the new 3D model.  Fact is that the scenery with clouds and other features will tend to have way MORE polygons than any reasonable aircraft model and modern graphics cards can handle millions of polygons at any given time so the aircraft model's complexity, if with in reason, is only a minor part of what the graphics card has to handle.   On modern hardware you don't see much difference in frame rates in an aircraft with 150K polygons than one with 10K if they are otherwise very similar feature wise. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=213272#p213272&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: What to expect from FlightGear 3.2?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;hvengel&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Jun 24&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
Below you can see three beach umbrellas. Each of these is different in face count numbers, the one on the right having the most and the one to the far left the least.&lt;br /&gt;
&lt;br /&gt;
I’m sure you will agree that they look to all intents and purpose as they are designed to look you can see just from the picture the face count is bound to be different, but lets look a bit closer at them. Here you can see them without a texture or paint applied&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_0.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Have a look at the number underlined in red in the image above. This tells us that there are 136 faces in the image. That’s quite a lot for an object that is 2 meters high and the average pilot will fly over at between 80 - 140 knots at over 100ft. Yes sure, most players will go to explore this beautiful scenery with [[helicopter]]s, cars or [[UFO]], but after a while most of them will perform “only” takeoffs and landings. Taking into consideration those facts I think, we can still model this umbrella with quite nice level of detail using only 20 triangles (left image). Or, if you really want to make your scenery to take as low resources as possible you can build it using only 12 triangles.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_1.jpg|400px]] [[File:Decrease_the_number_of_faces_2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
The same goes for other models too. Take a look at the two recliners here. The one on the left has 68 faces the one on the right 20! and in my opinion the one on the right looks better.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_3.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Heres how they all look in Flightgear from ground level.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_4.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
As you can see, you can achieve good result using only 15% of triangles to model umbrella (middle one), or even 9% by sacrificing some details (left one) and 29% in case of recliner.&lt;br /&gt;
&lt;br /&gt;
== Decreasing the amount of faces (in SketchUp) ==&lt;br /&gt;
The main cause of such high number of faces in some models when using [[SketchUp]] and its simplified interface is the fact that this software was not produced with making low poly models for 3D games in mind. But you can still reduce the number of faces in models. Here is an example on how to make a low poly umbrella.&lt;br /&gt;
&lt;br /&gt;
Let's start by making a pole for our umbrella. First, place a polygon on the ground. Before clicking, type the number of sides your polygon should have (six here) and press {{Key press|Enter}}.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_5.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Then using the push/pull tool extrude the polygon to the desired height and delete the faces at both ends of your pole, we don’t need them as they wont be seen.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_11.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Next we will smooth out the edges by first left clicking three times on the pole which highlights the whole object, then going to the Window menu at the top (or right clicking) select soften/smooth edges.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_6.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
A new pop up window will appear with a slider. This should be moved passed the 60 degree mark and you will see the pole soften considerably.&lt;br /&gt;
And that’s it for the pole. Let's make the actual umbrella. &lt;br /&gt;
&lt;br /&gt;
We start with a polygon. Using the pencil tool we will connect the centre spot with it edges. Quick tip: to make your pencil go straight to the centre point run the tool around the outside of the polygon then move it towards the centre, it will snap straight to the centre point. &lt;br /&gt;
&lt;br /&gt;
Connect all the hexagons “points” to make six nice triangles.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_7.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Using the move tool grab the centre point and move it upwards to the desired height. Holding the shift key down whilst moving up on the axis will hold it on that axis.&lt;br /&gt;
&lt;br /&gt;
Click on the umbrella three times again to highlight it all, and again using the move tool place it over the pole.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_8.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
As you can see the umbrella is showing the purple face to the outside. If we were to leave it like this we would not be able to see the outside of the umbrella from above. But if we want to see the underneath we would be able to do so. To reverse the faces simply highlight one face and right click. You will see the window appear again. Select reverse faces and the correct face is to the outside. Then right click again and select Orient faces. This brings all the faces to the correct way.&lt;br /&gt;
&lt;br /&gt;
And that’s it, we have low poly umbrella made with (if I count correctly) only 18 triangles. &lt;br /&gt;
&lt;br /&gt;
=== Placing the object on a surface ===&lt;br /&gt;
If you'd like to place the umbrella on some other surface within your model, make sure to create a group containing the umbrella first. You can do so by selecting the umbrella and pole and then choose &amp;lt;tt&amp;gt;Right mouseclick &amp;gt; Create group&amp;lt;/tt&amp;gt;. To edit it again, double click the object to enter the group. Doing this will prevent SketchUp from connecting the umbrella with the floor (and adding extra vertices to do so!). &lt;br /&gt;
&lt;br /&gt;
For instance when first making the beach area for TNCM, I simply made the beach and then placed the umbrella polygon on the beach and extruded it upwards. Do not make this mistake. As you can see in the picture on the left it makes the face count jump sky high. Placing the umbrella(s) in a group decrease the face count dramatically, as shown in the right image.&lt;br /&gt;
&lt;br /&gt;
[[File:Decrease_the_number_of_faces_9.jpg|400px]] [[File:Decrease_the_number_of_faces_10.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Results? ===&lt;br /&gt;
Ok lets see what difference these few helpful hints can make to your model. For the first beach scene created in FlightGear up 13133 faces were used, making it around 1.93 MB, which is huge. After redoing the beach using these great tips it came out at 2421 faces! &lt;br /&gt;
&lt;br /&gt;
Todays beach at TNCM? 4.95Kb That’s it. Use these tips and you will be pleased to find your face count drops enormously.&lt;br /&gt;
&lt;br /&gt;
'''My greatest of thanks go to Robert ‘erobo’ Leda firstly for helping me with the above information and secondly for allowing me to use his information and images for this short tutorial.'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|Decrease the number of faces]]&lt;br /&gt;
[[Category:Modeling|Decrease the number of faces]]&lt;br /&gt;
[[Category:Scenery enhancement|Decrease the number of faces]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Canvas_Troubleshooting&amp;diff=141006</id>
		<title>Howto:Canvas Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Canvas_Troubleshooting&amp;diff=141006"/>
		<updated>2024-11-16T20:02:07Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This article either contains out of date information and/or  may not meet the quality standards of the wiki.|day=16|month=11|year=2024}}{{Stub}}{{Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
== Event Handling ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |please keep in mind that you need to set up your z-index properly, or the corresponding group may not even receive any events due to overlapping stuff.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=215395#p215395&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Event Click Listener on SVG element&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sat Jul 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Using Online Imagery ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I'd try to troubleshoot this step-by-step, e.g.:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; use a static LOCAL raster image (on disk/in fgdata - e.g. a splash screen -if this doesn't work, your Canvas/Image isn't set up properly, check visibility and z-index)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; use a http URL (e.g. the google/flightgear logo - if this doesn't work, check for errors/networking issues)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; use a dynamically-built URL - if this doesn't work, check your URL building scheme&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=216309#p216309&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Displaying Remote Images (from URL/API) on canvas/MapStr&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sat Aug 09&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Textures not shown properly ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, I'd suggest to work with textures that can be more easily recognized, i.e. some checker pattern or red as a color, to see what could be going on -  otherwise, there's too much guessing involved, which is tedious for us given that we don't have access to your aircraft. So if you are hoping for more specific advice, open the texture in GIMP/photoshop and use some pattern for each different face that we can more easliy identify to see what's going on&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=218785#p218785&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'd just copy the livery texture to a new file and fill each part with a separate pattern/color to see what's going on - that will tell us if we can work around the issue by editing the model, the texture, the Nasal code - or if we need to look at the C++ code&amp;lt;br/&amp;gt;&lt;br /&gt;
So far, this could be just a simple matter of changing scale/transforming the texture a bit (hopefully)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=218787#p218787&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Canvas]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=NavDisplay_Refactoring&amp;diff=141004</id>
		<title>NavDisplay Refactoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=NavDisplay_Refactoring&amp;diff=141004"/>
		<updated>2024-11-16T19:59:29Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=Article was created and left incomplete several years ago|day=16|month=11|year=2024}}{{Stub}}&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
{{See also|Howto:Prototyping a new NavDisplay Style}}&lt;br /&gt;
&lt;br /&gt;
We need to clean up the ND code, this page is intended to keep a list of items pending.&lt;br /&gt;
&lt;br /&gt;
== Switch handling ==&lt;br /&gt;
* move switches into the aircraft-specific style hash&lt;br /&gt;
* rename value to default_value&lt;br /&gt;
* add an optional values:[] vector&lt;br /&gt;
* add a UI hash to contain UI specific fields (legend/tooltip)&lt;br /&gt;
* also use the UI hash for placement info (top/bottom, i.e. above/below the ND)&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Realism&amp;diff=141003</id>
		<title>Realism</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Realism&amp;diff=141003"/>
		<updated>2024-11-16T19:58:41Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=Article does not meet quality standards and is out of date.|day=16|month=11|year=2024}}{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
Many newcomers may wonder just how realistic [[FlightGear]]'s [[aircraft]] and environment are. Many novices may wonder what is needed to get more realism and immersion from the FlightGear environment.&lt;br /&gt;
&lt;br /&gt;
== Aircraft ==&lt;br /&gt;
&lt;br /&gt;
[[File:DR400_Dauphin_Rembrandt_02.jpg|800px|center|The [[DR400|DR400 Dauphin]].]]&lt;br /&gt;
&lt;br /&gt;
The underlying instrumentation models are very accurate, with many physical effects accounted for.&lt;br /&gt;
&lt;br /&gt;
* The heading indicator has a small delay when it is slewing to the desired heading.&lt;br /&gt;
* The artificial horizon can tumble.&lt;br /&gt;
* The magnetic compass will rotate in all three axes and get stuck if the aircraft is tilted.&lt;br /&gt;
* The altimeter uses air pressure to determine altitude; if the sea level air pressure is set incorrectly, it will display the wrong altitude as in real life.&lt;br /&gt;
* All of the instruments that need engine power in real life are tied to the virtual engine; if the engine is not running, all vacuum-powered instruments (such as the artificial horizon and the heading indicator) will not function properly.&lt;br /&gt;
* Some aircraft feature accurate electrical systems with batteries that will drain over time and instruments that need electricity.&lt;br /&gt;
&lt;br /&gt;
Many aircraft have quite complete cockpits; several effects make cockpits look much better, including ALS shadows.&lt;br /&gt;
== Flight dynamics ==&lt;br /&gt;
&lt;br /&gt;
Since FlightGear uses many [[FDM|flight dynamics models]] under the hood, including [[YASim]] and [[JSBSim]], the realism of an aircraft depends on its FDM. Both of these support winds and turbulence; YASim generally has more realistic ground interactions with different surfaces, while JSBSim FDMs are generally truer to the real-life aircraft. It's important to note that both of these can produce similar results if the FDM is worked on enough.&lt;br /&gt;
&lt;br /&gt;
== Scenery==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Southwest04.jpg&lt;br /&gt;
File:Kansas_Scenery_Two.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* Many buildings, landmarks, windmills, chimneys, pylons, and skyscrspers represented where appropriate&lt;br /&gt;
* Over 20,000 real world airports included in the full [[scenery]] set. The recent world scenery version 2 brought many major improvements, including more detailed heightmaps and man-made features such as roads, rivers, and train tracks. &lt;br /&gt;
* Correct runway markings including skid marks, runway lighting, and approach lighting.&lt;br /&gt;
* Detailed taxiways available for many airports.&lt;br /&gt;
* Sloping runways.&lt;br /&gt;
* Airport beacon lights with rotating beacons.&lt;br /&gt;
* Accurate worldwide terrain based on the most recently released SRTM terrain data. 3 arc second resolution (about 90m spacing) for North and South America, Europe, Asia, Africa, and Australia. United States used the more accurate 1 arc second (30m) data.&lt;br /&gt;
* Roads, rivers, and train tracks.&lt;br /&gt;
* Realistic night lighting with lit urban areas and headlights on roads.&lt;br /&gt;
&lt;br /&gt;
Real world tower registration data was used to locate towers in the United States. The data was sourced from the United States Federal Communications Commission tower registration database.&lt;br /&gt;
&lt;br /&gt;
Over one million objects have been added to the [http://scenemodels.flightgear.org/ FlightGear Scenery Database].&lt;br /&gt;
&lt;br /&gt;
To download scenery for the entire world as you fly over it, open the File &amp;gt; Scenery Download menu and check &amp;quot;Enable automatic download/update&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Weather ==&lt;br /&gt;
&lt;br /&gt;
[[File:Local_weather_1.00_06.jpg|center|[[Advanced weather]].|800px]]&lt;br /&gt;
&lt;br /&gt;
With [[Advanced weather]], cloud patterns and winds will change throughout the day. With [[atmospheric light scattering]] enabled, fog and clouds are more realistic, and lighting changes throughout the day and during overcast periods. Advanced weather can be driven with live [[METAR]] data or manually configured for specific weather scenarios.&lt;br /&gt;
&lt;br /&gt;
Enable advanced weather in the Environment &amp;gt; Weather dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Cloud patterns with ALS lighting.png|Advanced weather creates realistic cloud patterns that mimic the real world weather&lt;br /&gt;
File:Moist air and haze seen from a Boeing 707 cockpit.png|Haze and dust particles with realistic blue color in distance&lt;br /&gt;
File:Morning flight.jpg|Few remaining clouds in morning sunlight, looks like it will be a nice flying day!&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rendering ==&lt;br /&gt;
&lt;br /&gt;
[[Atmospheric light scattering]], or ALS, features a realistic skydome and properly lit terrain, in addition to detailed terrain texturing and trees swaying in the wind. With advanced weather enabled as well, cloud shadows and volumetric fog are also fully supported. It can be enabled via the View &amp;gt; Rendering Options menu. Be sure to check out the quality slider, and if you're adventurous, enable custom settings.&lt;br /&gt;
&lt;br /&gt;
[[Rembrandt]] is FlightGear's shadow and lighting engine; with Rembrandt enabled, realistic shadows and lighting are possible. Note that not all aircraft support Rembrandt yet. In addition, it's not possible to use Rembrandt in conjunction with ALS. Rembrant is enabled with the &amp;lt;tt&amp;gt;--enable-rembrandt&amp;lt;/tt&amp;gt; [[Command line options|command line option]].&lt;br /&gt;
&lt;br /&gt;
== Sky ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Southwest09.jpg&lt;br /&gt;
File:Water-sky01.jpg&lt;br /&gt;
File:Rayleigh_blue.jpg&lt;br /&gt;
File:Tree02.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FlightGear's night sky features accurate placement and lighting of stars, planets, and the moon.&lt;br /&gt;
&lt;br /&gt;
Atmospheric light scattering features accurate lighting of the sky and terrain; in addition, oceans and rivers are realistically shaded with ripples and sun reflections. Rayleigh scattering of distant terrain is supported, tinting the ground blue or red depending on the sun angle. With random trees, tree shadows are available; experimental aircraft ground shadows are also available.&lt;br /&gt;
&lt;br /&gt;
The sun is quite realisticslly textured in the sky, and has such effects as sun dogs and rings.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
James Turner at one point started creating some properties under /sim/realism (mostly booleans for the moment), with the expectation that at some point we could create a GUI, and also use some Nasal to batch-configure the individual settings for different applications - flight trainer, game mode, kiosk, etc, etc. He remarked that he would be happy to add a /sim/realism/start-parked and /sim/realism/start-dark (though the latter involves aircraft designer help to hook the optional autostart functions of each aircraft). One concern relsting to this matter is touching the dreaded position init code, which is already baroque and complex. There's also the question of guessing a parking position when we don't have parking stand data - eg picking a point some distance away from the runway centerline (runway width * 5, maybe?), level with the threshold - but like all heuristics, this one has problems.&lt;br /&gt;
&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  | url    = http://sourceforge.net/p/flightgear/mailman/message/24944091/&lt;br /&gt;
  | title  = &amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Issue with default starting scenario&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  | author = &amp;lt;nowiki&amp;gt;James Turner&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  | date   = Apr 6th, 2010&lt;br /&gt;
  | added   = Apr 6th, 2010&lt;br /&gt;
  | script_version = 0.25&lt;br /&gt;
  }}&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Nvidia_Windows&amp;diff=140999</id>
		<title>Nvidia Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Nvidia_Windows&amp;diff=140999"/>
		<updated>2024-11-16T19:42:12Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=Article is incomplete and contains out of date information|day=16|month=11|year=2024}}{{Stub}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The goal of this article is to document which settings in the [https://www.nvidia.dk/ NVIDIA] Control Panel seem to work best for [[Osm2city.py|osm2city]] with Atmosperic Light Scattering ([[Atmospheric_light_scattering|ALS]]) on Windows.&lt;br /&gt;
&lt;br /&gt;
The configuration has been tested on:&lt;br /&gt;
* Windows 10 Home 64bit&lt;br /&gt;
* NVIDIA GeForce GTX 1060 6GB&lt;br /&gt;
* Driver version 385.69 (note that it is highly recommended to use NVIDIA drivers and to use recent versions)&lt;br /&gt;
* FlightGear 2017.3.1&lt;br /&gt;
&lt;br /&gt;
The configuration and configuration choices might differ for different NVIDIA cards etc.&lt;br /&gt;
&lt;br /&gt;
==Accessing the NVIDIA Control Panel==&lt;br /&gt;
The settings discussed in this article relate to Tab &amp;quot;Program Settings&amp;quot; in &amp;quot;Manage 3D Settings&amp;quot; in the NVIDIA Control Panel. The NVIDIA control Panel can be started by right-clicking on the Windows Desktop. &lt;br /&gt;
&lt;br /&gt;
It requires to select or add a program to customize. You have to point to &amp;quot;bin\fgfs.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Nvidia Control Panel on Windows 10.png|thumb|NVIDIA Control Panel on Windows 10 showing program specific 3D settings]]&lt;br /&gt;
&lt;br /&gt;
==Tested Settings==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature !! Setting !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Anisotropic filtering || Application-controlled || There does not seem to be any difference to &amp;quot;Off&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Antialiasing - FXAA || Off || Setting this to &amp;quot;On&amp;quot; gives odd results. E.g. transparent parts of tree textures are green, antialiasing of thin lines gets broken&lt;br /&gt;
|-&lt;br /&gt;
| Antialiasing - Gamma correction || Off ||&lt;br /&gt;
|-&lt;br /&gt;
| Antialiasing - Mode || Application-controlled || &lt;br /&gt;
|-&lt;br /&gt;
| Antialiasing - Setting || Application-controlled ||&lt;br /&gt;
|-&lt;br /&gt;
| Antialiasing - Transparency || Off || There does not seem to be any difference to &amp;quot;On&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| CUDO - GPUs || Use global setting (All) ||&lt;br /&gt;
|-&lt;br /&gt;
| Low Latency Mode || Off ||&lt;br /&gt;
|-&lt;br /&gt;
| Multi-Frame Sampled AA (MFAA) || Off ||&lt;br /&gt;
|-&lt;br /&gt;
| OpenGL rendering GPU || GeForce GTX 1060 6GB ||&lt;br /&gt;
|-&lt;br /&gt;
| Power management mode || Prefer maximum performance ||&lt;br /&gt;
|-&lt;br /&gt;
| Shader Cache || On ||&lt;br /&gt;
|-&lt;br /&gt;
| Texture filtering - Anisotropic sample optimization || Off || There does not seem to be any difference to &amp;quot;On&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Texture filtering - Negative LOD bias || Allow || There does not seem to be any difference to &amp;quot;CLAMP&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Texture filtering - Quality || Quality ||&lt;br /&gt;
|-&lt;br /&gt;
| Texture filtering - Trilinear optimization || On || There does not seem to be any difference to &amp;quot;Off&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Threaded optimization || Auto ||&lt;br /&gt;
|-&lt;br /&gt;
| Triple buffering || Off ||&lt;br /&gt;
|-&lt;br /&gt;
| Vertical sync || Use the 3D application setting ||&lt;br /&gt;
|-&lt;br /&gt;
| Veritual Reality pre-rendered frames || 1 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Antialias Settings in FlightGear==&lt;br /&gt;
You might want to use the following properties to get antialias in FlightGear:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;--prop:/sim/rendering/multi-sample-buffers=true&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;--prop:/sim/rendering/multi-samples=4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_and_OpenGL_Core_Profile&amp;diff=140998</id>
		<title>FlightGear and OpenGL Core Profile</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_and_OpenGL_Core_Profile&amp;diff=140998"/>
		<updated>2024-11-16T19:40:58Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Out of date}}{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = &lt;br /&gt;
|name        = OpenGL ES compatible subset of FlightGear&lt;br /&gt;
|started     = 04/2020 &lt;br /&gt;
|description = identify, patch and build a subset of FlightGear compatible with GLES&lt;br /&gt;
|status      = RFC&lt;br /&gt;
|developers  = talks&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Portability Navbar}}&lt;br /&gt;
{{See also|Howto:Build and run FlightGear on Raspberry Pi 4}}&lt;br /&gt;
&lt;br /&gt;
Some FG users are very interested in seeing how FlightGear runs on lower end/embedded hardware (think RPi-style) using {{Wikipedia|OpenGL ES}}.&lt;br /&gt;
&lt;br /&gt;
With other contributors, and core developers, wanting to use a more recent version of OpenGL to make use of more modern OpenGL features (e.g. in effects and shaders).&lt;br /&gt;
To do so, this entails porting FlightGear to OpenGL Core Profile.&lt;br /&gt;
&lt;br /&gt;
The bigger issue here is we need to ditch [[PUI]] (which is in progress) and some OpenGL 1.0 code (HUD, 2D panels especially - can be #ifdef for now) so we can enable Core profile on Mac - since Mac 4.x support (we only hit about 4.3 alas, but with some extensions to get in sight of 4.5) is Core profile only, no Compatability mode.&lt;br /&gt;
&lt;br /&gt;
I *believe* the new open-source Intel-Mesa drivers on Linux (which are supposed to decent quality, and even fast) might be in the same situation.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36341578/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably to do it initially, GLES1 would have to be used - I think GLES2 has no fixed function - and simgear/flightgear would have to be patched to use only OSG calls (if possible), e.g. by excluding features/subsystems that still use legacy OpenGL code incompatible with GLES.&lt;br /&gt;
&lt;br /&gt;
OSG can have GLES{1,2} support without windowing compiled in.&lt;br /&gt;
&lt;br /&gt;
OpenGL 1 and 2 can be mixed but OpenGL ES 1 and OpenGL ES 2 can't. There is a performance price to pay for this backward compatibility. For this reason, we should get rid of PLib because this (old) code is all OpenGL 1 that may slowdown the all rendering pipeline.&lt;br /&gt;
&lt;br /&gt;
For historical reasons, Flightgear and Simgear are mixing OpenGL 1&lt;br /&gt;
(old code) and OpenGL 2 (more recent code).&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36980923/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{Main article|Howto:Optimizing FlightGear for mobile devices}}&lt;br /&gt;
&lt;br /&gt;
The OpenSceneGraph port initiated in 2006 has never been fully completed, so that there is a certain amount of code making use of legacy OpenGL calls, which complicates modernizing the renderer. &lt;br /&gt;
&lt;br /&gt;
In particular, this means that [[Supporting multiple renderers]] is unnecessarily complicated, [[Unifying the 2D rendering backend via canvas|unifying the 2D rendering back-end]] is a long standing challenge. It's only since just very recently, that supporting different renderers is being worked on thanks to the [[Compositor]] effort.&lt;br /&gt;
&lt;br /&gt;
But even then, phasing out legacy code or porting it, still needs to be addressed sooner or later.&lt;br /&gt;
&lt;br /&gt;
Being able to run fgfs on such, comparatively low-powered, systems using OpenGL ES can actually be a good thing for fgfs as a whole - it can help us understand bottlenecks that are hardly visible on typical gaming/developer rigs, but that may still show up over time (think leaking listeners/memory) - this sort of thing can also be considered the prerequisite for people wanting to target/build/run fgfs on other embedded hardware, such as thin clients with integrated GPUs or even mobile phones/tablets (think Android)&lt;br /&gt;
&lt;br /&gt;
we need to remove PUI and change the Canvas not to use Shiva, to be ES2 compatible or Core-profile compatible.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36194973/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other words, if the right people were to team up to specifically target such hardware, this could also mean significant performance improvements for people on powerful gaming rigs.&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
{{See also|Unifying the 2D rendering backend via canvas}}&lt;br /&gt;
&lt;br /&gt;
For starters, we can try the [[FlightGear Headless]] option to build a fgfs version without showing any graphics at all.&lt;br /&gt;
&lt;br /&gt;
The next step will be identifying and excluding problematic sources (those containing legacy/raw OpenGL code, e.g. using &amp;lt;code&amp;gt;glBegin()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;glEnable()&amp;lt;/code&amp;gt; respectively):&lt;br /&gt;
&lt;br /&gt;
https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Cockpit/render_area_2d.cxx&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void RenderArea2D::RenderQuad( const SGVec2f *p) {&lt;br /&gt;
    glBegin(GL_QUADS);&lt;br /&gt;
        glNormal3f(0.0f, 0.0f, 0.0f);&lt;br /&gt;
        glVertex2fv( p[0].data() );&lt;br /&gt;
        glVertex2fv( p[1].data() );&lt;br /&gt;
        glVertex2fv( p[2].data() );&lt;br /&gt;
        glVertex2fv( p[3].data() );&lt;br /&gt;
    glEnd();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Whenever FlightGear sources contain such or similar code, it is pretty safe to assume that we will need to port/exclude such modules from compilation to ensure that no legacy OpenGL code is executed at runtime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Instrumentation/HUD/HUD_runway.cxx&lt;br /&gt;
Instrumentation/HUD/HUD_tbi.cxx&lt;br /&gt;
Instrumentation/HUD/HUD.hxx&lt;br /&gt;
Instrumentation/HUD/HUD_instrument.cxx&lt;br /&gt;
Instrumentation/HUD/HUD_ladder.cxx&lt;br /&gt;
Instrumentation/HUD/HUD_dial.cxx&lt;br /&gt;
Instrumentation/HUD/HUD_tape.cxx&lt;br /&gt;
Cockpit/render_area_2d.cxx&lt;br /&gt;
Cockpit/panel.cxx&lt;br /&gt;
GUI/WaypointList.cxx&lt;br /&gt;
GUI/CanvasWidget.cxx&lt;br /&gt;
GUI/MapWidget.cxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means, we'll need to review/disable the compilation of the following folders in $FG_SRC and patch up all hard-coded references to these systems:&lt;br /&gt;
* Instrumentation/HUD&lt;br /&gt;
* Cockpit&lt;br /&gt;
* GUI&lt;br /&gt;
&lt;br /&gt;
In addition, there's Viewer/PUICamera.cxx which references glEnable()&lt;br /&gt;
&lt;br /&gt;
== Example: Disabling PUI ==&lt;br /&gt;
{{Main article|Developing using CMake}}&lt;br /&gt;
&lt;br /&gt;
We should add separate build options to explicitly disable certain features individually.&lt;br /&gt;
&lt;br /&gt;
The bigger issue here is we need to ditch PUI (which is in progress) and some OpenGL 1.0 code (HUD, 2D panels especially - can be #ifdef for now) so we can enable Core profile on Mac - since Mac 4.x support (we only hit about 4.3 alas, but with some extensions to get in sight of 4.5) is Core profile only, no Compatability mode.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36341578/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing that [[PUI]] contains legacy OpenGL code and knowing it's scheduled to be removed anyway because it isn't compatible with modern OpenGL, we will disable it completely without &lt;br /&gt;
reviewing/porting individual PUI files. This means opening $FG_SRC/CMakeLists.txt to add a new option to disable PUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Successfully disabling a feature means primarily:&lt;br /&gt;
* adding a corresponding new build option to the top-level CMakeLists.txt (e.g. DISABLE_PUI)&lt;br /&gt;
* opening fg_init.cxx and navigating to the lines where the feature/subsystem is initialized&lt;br /&gt;
* wrapping the corresponding code in between &amp;lt;code&amp;gt;#ifdef...#endif&amp;lt;/code&amp;gt; blocks&lt;br /&gt;
* locating any remaining references to the subsystem in question and repeating the last step there to ensure that removed subsystems are not accessed at runtime&lt;br /&gt;
&lt;br /&gt;
https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/CMakeLists.txt&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
option(SYSTEM_CPPUNIT    &amp;quot;Set to ON to build Flightgear with the system's CppUnit library&amp;quot;)&lt;br /&gt;
option(DISABLE_PUI    &amp;quot;Set to ON to build Flightgear without PUI support&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if(DISABLE_PUI)&lt;br /&gt;
      add_definitions(-DDISABLE_PUI)&lt;br /&gt;
endif(DISABLE_PUI)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will be adding &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt; macros to the sources in question, and update CMakeLists.txt accordingly.&lt;br /&gt;
&lt;br /&gt;
Ideally, in conjunction with a feature-specific build option to disable the corresponding feature (think [[PUI]] or the [[HUD]]).&lt;br /&gt;
&lt;br /&gt;
Thus, after editing CMakeLists.txt, we need to open fg_init.cxx to prevent initalization of PUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Main/fg_init.cxx#l1043&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
    ////////////////////////////////////////////////////////////////////&lt;br /&gt;
    // Create and register the XML GUI.&lt;br /&gt;
    ////////////////////////////////////////////////////////////////////&lt;br /&gt;
#ifndef DISABLE_PUI&lt;br /&gt;
    globals-&amp;gt;add_subsystem(&amp;quot;gui&amp;quot;, new NewGUI, SGSubsystemMgr::INIT);&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, after editing fg_init.cxx to prevent the PUI GUI from getting initialized by FlightGear, we will need to find remaining hard-coded references to it, to fix those up and deal with PUI not being available. This means grepping $FG_SRC for any references to &amp;lt;code&amp;gt;&amp;quot;pui&amp;quot;&amp;lt;/code&amp;gt; to locate remaining get_subsystem() calls. (FIXME: new subsystem lookups use templates), this will include code in unrelated modules, e.g. fgcommands (think menu bindings) accessing the GUI via something like &amp;lt;code&amp;gt;get_subsystem(&amp;quot;gui&amp;quot;);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Main/fg_scene_commands.cxx#l277&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
    NewGUI * gui = (NewGUI *)globals-&amp;gt;get_subsystem(&amp;quot;gui&amp;quot;);&lt;br /&gt;
    if (!gui) {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, it makes sense to intercept registration of these fgcommands at the bottom of the file by wrapping these inside ifdef macros:&lt;br /&gt;
&lt;br /&gt;
https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/src/Main/fg_scene_commands.cxx#l497&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Table of built-in commands.&lt;br /&gt;
 *&lt;br /&gt;
 * New commands do not have to be added here; any module in the application&lt;br /&gt;
 * can add a new command using globals-&amp;gt;get_commands()-&amp;gt;addCommand(...).&lt;br /&gt;
 */&lt;br /&gt;
static struct {&lt;br /&gt;
  const char * name;&lt;br /&gt;
  SGCommandMgr::command_t command;&lt;br /&gt;
} built_ins [] = {&lt;br /&gt;
    { &amp;quot;exit&amp;quot;, do_exit },&lt;br /&gt;
    { &amp;quot;reset&amp;quot;, do_reset },&lt;br /&gt;
    { &amp;quot;reposition&amp;quot;, do_reposition },&lt;br /&gt;
    { &amp;quot;switch-aircraft&amp;quot;, do_switch_aircraft },&lt;br /&gt;
    { &amp;quot;panel-load&amp;quot;, do_panel_load },&lt;br /&gt;
    { &amp;quot;preferences-load&amp;quot;, do_preferences_load },&lt;br /&gt;
    { &amp;quot;toggle-fullscreen&amp;quot;, do_toggle_fullscreen },&lt;br /&gt;
    { &amp;quot;screen-capture&amp;quot;, do_screen_capture },&lt;br /&gt;
    { &amp;quot;hires-screen-capture&amp;quot;, do_hires_screen_capture },&lt;br /&gt;
    { &amp;quot;tile-cache-reload&amp;quot;, do_tile_cache_reload },&lt;br /&gt;
#ifndef DISABLE_PUI&lt;br /&gt;
    { &amp;quot;dialog-new&amp;quot;, do_dialog_new },&lt;br /&gt;
    { &amp;quot;dialog-show&amp;quot;, do_dialog_show },&lt;br /&gt;
    { &amp;quot;dialog-close&amp;quot;, do_dialog_close },&lt;br /&gt;
    { &amp;quot;dialog-update&amp;quot;, do_dialog_update },&lt;br /&gt;
    { &amp;quot;dialog-apply&amp;quot;, do_dialog_apply },&lt;br /&gt;
    { &amp;quot;open-browser&amp;quot;, do_open_browser },&lt;br /&gt;
    { &amp;quot;gui-redraw&amp;quot;, do_gui_redraw },&lt;br /&gt;
#endif&lt;br /&gt;
    { &amp;quot;add-model&amp;quot;, do_add_model },&lt;br /&gt;
    { &amp;quot;presets-commit&amp;quot;, do_presets_commit },&lt;br /&gt;
    { &amp;quot;press-cockpit-button&amp;quot;, do_press_cockpit_button },&lt;br /&gt;
    { &amp;quot;release-cockpit-button&amp;quot;, do_release_cockpit_button },&lt;br /&gt;
    { &amp;quot;dump-scenegraph&amp;quot;, do_dump_scene_graph },&lt;br /&gt;
    { &amp;quot;dump-terrainbranch&amp;quot;, do_dump_terrain_branch },&lt;br /&gt;
    { &amp;quot;print-visible-scene&amp;quot;, do_print_visible_scene_info },&lt;br /&gt;
    { &amp;quot;reload-shaders&amp;quot;, do_reload_shaders },&lt;br /&gt;
    { &amp;quot;reload-materials&amp;quot;, do_materials_reload },&lt;br /&gt;
    { &amp;quot;open-launcher&amp;quot;, do_open_launcher },&lt;br /&gt;
    { 0, 0 }			// zero-terminated&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will ensure that fgcommands that are PUI related won't be available in a non-PUI build.&lt;br /&gt;
&lt;br /&gt;
We will also need to look for other files accessing the &amp;quot;NewGUI&amp;quot; subsystem &amp;lt;code&amp;gt;grep -nr &amp;quot;NewGUI&amp;quot; -l&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Main/subsystemFactory.cxx&lt;br /&gt;
Main/fg_scene_commands.cxx&lt;br /&gt;
ATC/atcdialog.cxx&lt;br /&gt;
ATC/atcdialog.hxx&lt;br /&gt;
Autopilot/route_mgr.cxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we have excluded $FG_ROOT/GUI from the build and updated fg_init.cxx, we will only need to review/patch these files to ensure that there are no hard-coded references to PUI if it's not available, using the same ifdef based approach.  &lt;br /&gt;
&lt;br /&gt;
Obviously, fgdata level resources like menu bindings and/or Nasal code may still try to execute such bindings.&lt;br /&gt;
&lt;br /&gt;
Finally, there may still be other PUI specific references in the source tree ($FG_SRC), so that it does help to check the other folders next: &amp;lt;code&amp;gt;grep -nr &amp;quot;PUI&amp;quot; -l&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we have excluded $FG_SRC/GUI from the compilation, we can safely ignore any references to that folder, with the remaining ones being:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Input/FGMouseInput.cxx&lt;br /&gt;
Main/fg_os.hxx&lt;br /&gt;
Main/bootstrap.cxx&lt;br /&gt;
Viewer/renderer_compositor.hxx&lt;br /&gt;
Viewer/PUICamera.cxx&lt;br /&gt;
Viewer/renderer_legacy.cxx&lt;br /&gt;
Viewer/CMakeLists.txt&lt;br /&gt;
Viewer/PUICamera.hxx&lt;br /&gt;
Viewer/renderer_compositor.cxx&lt;br /&gt;
Viewer/renderer_legacy.hxx&lt;br /&gt;
Viewer/GraphicsWindowQt5.cpp&lt;br /&gt;
Canvas/canvas_mgr.hxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The renderer is basically just referencing the PUI camera so that the GUI can be drawn, whereas canvas_mgr merely acccesses the PUI subsystem to be able to render canvas based textures. In other words, both references can be easily removed for testing purposes.&lt;br /&gt;
&lt;br /&gt;
== Affected features and sources ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature !! Directory !! Notes !! Status &lt;br /&gt;
|-&lt;br /&gt;
| [[HUD]] || $FG_SRC/HUD || One of the longterm development items we have is to [[Unifying_the_2D_rendering_backend_via_canvas#HUD|replace the hardcoded HUD with one built on canvas]].  As well as allowing us to remove anothe piece of plib, it would allow simple overlays like this as well.  So I think the answer here is to do that work, and then implement a canvas HUD for this overlay.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37606344/&amp;lt;/ref&amp;gt;  || {{Progressbar|10}}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[PUI]] || $FG_SRC/GUI || trivial to disable, can be replaced via [[Phi]]. Is in the process of being replaced by a Canvas based UI || {{Progressbar|70}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Post_FlightGear_2020.2_LTS_changes#2D_Panels|2D Panels]] || $FG_SRC/Cockpit || see {{Merge-request|project=flightgear|id=217|text=Populate /canvas property tree for the 2D panel}}&lt;br /&gt;
&lt;br /&gt;
There's also a [https://sourceforge.net/p/flightgear/flightgear/ci/topics/panel-hacking/~/tree/ branch] (which is a few of years old) contains WIP on implementing 2D panels as canvas. It uses the same loading / updating logic in C++ (for 100% compatibility), but rather than building custom rendering, it builds up a Canvas element hierarchy in C++.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36980724/&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37042351/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|| {{Progressbar|80}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Canvas Path]] (Shiva) || $SG_SRC/canvas || &amp;lt;!-- needs some thinking, probably native OpenVG on RPi &amp;lt;ref&amp;gt;https://github.com/ajstarks/openvg&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;http://mindchunk.blogspot.com/2012/09/openvg-on-raspberry-pi.html&amp;lt;/ref&amp;gt; or an OpenGL based implementation like nanovg &amp;lt;ref&amp;gt;https://www.raspberrypi.org/forums/viewtopic.php?t=247586#p1516785&amp;lt;/ref&amp;gt; [https://sourceforge.net/p/flightgear/mailman/search/?q=Skia+AND+Canvas&amp;amp;mail_list=all James mentioned Skia repeatedly], but that's only an option for Qt-enabled builds obviously.--&amp;gt;see [[Shiva Alternatives]], and Scott's and James' comments: {{See also|2022.X Release Plan#Rendering}} || {{Progressbar|20}} (02/2022)&lt;br /&gt;
|-&lt;br /&gt;
| [[Effects]] || $FG_ROOT/Effects || will include [[Shader]]s and probably involve a custom [[Compositor]] pipeline, for current Status refer to [[OpenGL#Status]] || {{Progressbar|70}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
|-&lt;br /&gt;
| [[OSGText Issues]] || ... || If you have a chance to replace OSGText by canvas - do so. OSGText (even with the custom OSG repository) does not play nice with our Effects and Shaders framework and will continue to have issues for all eternity.&amp;lt;ref&amp;gt;https://forum.flightgear.org/viewtopic.php?f=37&amp;amp;t=36287&amp;amp;p=353351&amp;amp;#p353351&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/codetickets/2199/#f702&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37042476/&amp;lt;/ref&amp;gt;|| {{Progressbar|10}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition, [[SimGear]] needs special treatment, too &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36978098/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
Using the same heuristics as before (based on grepping [[$SG_SRC]] for &amp;lt;code&amp;gt;glBegin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;glEnable&amp;lt;/code&amp;gt;, we end up with the following sources (ignoring [[Canvas Path ]]/shivavg, which is dealt with already above):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
simgear/scene/tgdb/SGVasiDrawable.cxx:42:    glBegin(GL_POINTS);&lt;br /&gt;
simgear/scene/model/shadanim.cxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature !! Directory !! Notes !! Status &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Porting ==&lt;br /&gt;
{{Wikipedia|OpenGL ES}}&lt;br /&gt;
&lt;br /&gt;
=== Vertex buffer objects ===&lt;br /&gt;
{{See also|Uniform Buffer Objects}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas.Path (OpenVG) ===&lt;br /&gt;
{{Main article|Canvas Path}}&lt;br /&gt;
{{Note|For the patch adding explicit Canvas.Path level synchronization, refer to this forum thread from 08/2021&amp;lt;ref&amp;gt;https://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=39535&amp;amp;hilit=path+osg+canvas&amp;amp;start=60#p390834&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{WIP}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will likely need to replace shiva vg with an OpenGL 2.0 based implementation like nanovg &amp;lt;ref&amp;gt;https://github.com/memononen/nanovg&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As part of the Core profile migration, we need to replace ShivaVG (which is the functional guts of Path.cxx) with a shader based implementation, ideally NanoVG, although Scott has indicated this might not be as easy as originally hoped. &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37605458/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, there are segfaults/race conditions that are reportedly related to Canvas Path: Based on what we've seen and discussed so far, I still think that it's primarily Canvas.Path (specifically ShivaVG) that we need to look at - aggressive OSG threading is ... aggressive. &amp;lt;ref&amp;gt;https://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=39535&amp;amp;hilit=path+osg+canvas&amp;amp;start=30#p390529&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which is to say, the Canvas.Path element is not even using native OSG code, and the flickering shown in the screen shots, suggests that it's something related to Canvas.Path handling. &lt;br /&gt;
&lt;br /&gt;
Inside a gdb session, you'll probably see something related to $SG_SRC/canvas/elements/shiva - which is where the 3rd party sources related to ShivaVG reside:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://github.com/ileben/ShivaVG/blob/master/README&lt;br /&gt;
No multi-threading support has been implemented yet.&lt;br /&gt;
&lt;br /&gt;
This also pointed out in the Qt 4 docs, when shiva was used:&lt;br /&gt;
&lt;br /&gt;
https://doc.qt.io/archives/qt-4.8/openvg.html&lt;br /&gt;
The paint engine is not yet thread-safe, so it is not recommended for use in threaded Qt applications that draw from multiple threads. Drawing should be limited to the main GUI thread.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i.e. the shiva stuff is called by C++ code from multiple threads - otherwise, seeing flickering specific to map elements implemented via OpenVG (Canvas.Path) would not make sense&lt;br /&gt;
&lt;br /&gt;
Shiva itself cannot be considered thread-safe, but may be invoked from multiple threads in fgfs, once fgfs is being used in conjunction with compositeviewer:&lt;br /&gt;
&lt;br /&gt;
So, what the OP in 08/2021 was probably seeing is this:&lt;br /&gt;
&lt;br /&gt;
# setting up multiple windows (using CV or not, probably irrelevant, since both options share the same CameraGroup back-end)&lt;br /&gt;
# using OSG multi-threading (i.e. no Singlethreaded)&lt;br /&gt;
# OSG will implicitly try to run some stuff asynchronously using worker threads&lt;br /&gt;
# this is why shiva gets called from multiple OSG threads, despite shiva itself not being thread-safe&lt;br /&gt;
&lt;br /&gt;
This is neither specific to the Canvas ND, nor to the CompositeViewer mode.&lt;br /&gt;
&lt;br /&gt;
As far as I can tell right now, it's due to ShivaVG - which some core devs have been wanting to replace/update for years anyway, see for example James' comments on &amp;quot;Skia&amp;quot;: [[Canvas_news#Skia_talks]].&lt;br /&gt;
&lt;br /&gt;
{{Note|It's important to highlight that the issue is apprently not specific to Qt5 and neither to the CompositeViewer or the Compositor - it's a bug that people can probably also trigger when using aggressive OSG threading and a single window, since the shiva back-end may get called from multiple OSG threads.&lt;br /&gt;
People using single-threaded mode, will still have the same issue built into the binary, but won't trigger it.&lt;br /&gt;
People using multi-screen setups or the CompositeViewer mode, will use additional OSG threads which will run into the ShivaVG related issue.&lt;br /&gt;
&lt;br /&gt;
For the time being, the workaround is using single-threaded.&lt;br /&gt;
A &amp;quot;fix&amp;quot; would be porting/fixing Canvas.Path to get rid of Shiva or use a different back-end.&lt;br /&gt;
&lt;br /&gt;
An interim solution would be using explicit synchronization (locks/mutexes) to tell OSG not to use threading for Canvas.Path based drawables - according to the docs, that should be possible by setting the data variance to osg::Object::DYNAMIC - but for the drawable itself that is already being done, thus CanvasPath.cxx will probably need a review to add explicit OSG/OpenThread based synchronization (which is probably something best discussed with Fernando, Richard and James on the devel list/issue tracker).&lt;br /&gt;
&amp;lt;ref&amp;gt;https://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=39535&amp;amp;hilit=path+osg+canvas&amp;amp;start=45#p390657&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
it does make sense that the OP can trigger this issue reliably, because he happens to be creating 3 different windows (=threads) - whereas I have been testing with a single additional window, which is why the issue probably takes time to show up. With multiple concurrent threads, the shiva code may get called from different threads, so that it will probably segfault rather &amp;quot;reliably&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In the meantime, there is no &amp;quot;fix&amp;quot; per se - the workaround is to use single-threaded mode when using canvas/shiva related features.&lt;br /&gt;
&lt;br /&gt;
Alternatively, we could look at reworking the CanvasPath drawable implementation so that it's using explicit synchronization, to ensure it never gets called from multiple OSG threads.&amp;lt;ref&amp;gt;https://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=39535&amp;amp;hilit=path+osg+canvas&amp;amp;start=45#p390533&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It seems, the current analysis is spot-on, and seems to be in line with comments found in the osg-users archives:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://groups.google.com/g/osg-users/c/nH-73NNFw4A&lt;br /&gt;
&lt;br /&gt;
when using DrawThreadPerContext or CullThreadPerCameraDrawThreadPerContext threading models the StateSet and Drawable DataVariance is used to prevent dynamic leaves of the scene graph being updated and rendered at the same time - the draw traversal holds back the main thread till all the dynamic objects have been dispatched.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/g/osg-users/c ... CkzY9geHEJ&lt;br /&gt;
The thread safety provided by the OSG isn't quite what you are&lt;br /&gt;
assuming, just setting the DataVariance to DYNAMIC only affects&lt;br /&gt;
whether the update, event and cull traversals of the current frame can&lt;br /&gt;
be run multi-thread the draw traversal of the previous frame, and this&lt;br /&gt;
hint is only applicable to StateSet and Drawable and is used to&lt;br /&gt;
prevent multi-threading where objects are that are being modified by&lt;br /&gt;
the update or event traversals running concurrently with the draw&lt;br /&gt;
thread that is reading from them. This threading model is&lt;br /&gt;
light-weight in that it avoids the need to large numbers of mutex&lt;br /&gt;
locks or multi-buffering, but it doesn't provide an means for general&lt;br /&gt;
multi-threading. The OSG's multi-threading also can handle running&lt;br /&gt;
cull or draw threads on multiple contexts in parallel, and with&lt;br /&gt;
database paging, again this is done a light-weight manner than scales&lt;br /&gt;
well and has a small overhead. The design is very much geared towards&lt;br /&gt;
the needs of high performance graphics applications rather than&lt;br /&gt;
general purpose multi-threading.&lt;br /&gt;
&lt;br /&gt;
So... you'll need to take a step back and work on how to work best&lt;br /&gt;
with the design of the OSG. The OSG is designed to allow single&lt;br /&gt;
threaded updates of the scene graph during the update and event&lt;br /&gt;
traversals. If you do wish to do some work multi-thread preparing new&lt;br /&gt;
scene graph elements these can be done as a separate subgraph in a&lt;br /&gt;
separate thread then merged with the main scene graph during the&lt;br /&gt;
update phase - this is how the osgDB::DatabasePager works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/g/osg-users/c ... YJEx_jcAYJ&lt;br /&gt;
Modifying the scene graph outside of the frame call is safe in&lt;br /&gt;
SingleThreader, and CullDrawThreadPerCamera threading models as they&lt;br /&gt;
don't leave any threads active after the end of the&lt;br /&gt;
renderingTraversals() method (called from frame()).&lt;br /&gt;
&lt;br /&gt;
With DrawThreadPerContext and CullThreadPerCamewraDrawThreadPerContext&lt;br /&gt;
the draw threads will still be active on completion of the&lt;br /&gt;
renderingTraversals(), so if you modifying drawables and state that&lt;br /&gt;
the thread is still reading from in the draw traversal you will end up&lt;br /&gt;
with problems - and potential crashes. There is a standard mechanism&lt;br /&gt;
to deal with this issue - and that is the renderingTraversals() method&lt;br /&gt;
to block till all dynamic objects in the draw traversals have been&lt;br /&gt;
dispatched. The way you tell the draw traversal that an drawable or&lt;br /&gt;
stateset will be modified dynamically is to set its data variance to&lt;br /&gt;
DYNAMIC.&lt;br /&gt;
&lt;br /&gt;
drawable-&amp;gt;setDataVariance(osg::Object::DYNAMIC);&lt;br /&gt;
stateset-&amp;gt;setDataVariance(osg::Object::DYNAMIC);&lt;br /&gt;
&lt;br /&gt;
This is mentioned in the &amp;quot;Quick Start Guide&amp;quot; book, as well as many&lt;br /&gt;
times on the osg-users mailing list so have a look through the&lt;br /&gt;
archives if you want more background reading.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OBJECT::DYNAMIC is already being set on the drawable itself (via the interface of sc::Element), but probably not yet on the StateSet (?) - so that might be worth trying next, but other than that, there's probably no &amp;quot;real fix&amp;quot;, other than telling OSG not to execute shiva code from multiple threads - short of fixing Shiva, which seems unlikely since a number of core devs have been wanting to get rid of it anyway&lt;br /&gt;
&lt;br /&gt;
So far however everything points at canvas, and looking at canvas code, it seems that there's a lot of stuff going on in update and&lt;br /&gt;
cull callbacks that looks to me like it shouldn't. I don't really understand the architecture well enough to tell for sure though, or to&lt;br /&gt;
figure out how to fix it.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37605328/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From a quick eyeball just now, the code in CanvasPath.cxx looks /mostly/ to me:&lt;br /&gt;
&lt;br /&gt;
* all setXYZ methods set a dirty flag&lt;br /&gt;
* there is an OSG updateCallback which updates the custom drawable&lt;br /&gt;
* drawImplementation calls the rendering commands, with some extra work to synchronise the current OSG state with the Shiva use of state.&lt;br /&gt;
&lt;br /&gt;
Importantly, the vgPath is created inside update, but this /should/ only touch CPU state. Whereas if the attributes are dirty for say fill or colour or opacity, the vgPaint is re-created, and this likely touches OpenGL commands inside Shiva, so it’s done inside drawImplementation.&lt;br /&gt;
&lt;br /&gt;
So, I don’t see anything grossly incorrect here, with my understanding of what OSG expects, and what Shiva does. Importantly, I don’t see anything special related to culling at all. My recollection is that even in the most aggressive threading modes, OSG won’t update a node at the same time as drawing it, which is why there’s no internal locking: if this guarantee did not hold, I think almost every OSG Group/Node would need to internally lock its state, with enormous overhead.&lt;br /&gt;
&lt;br /&gt;
(There is a complication here around STATIC vs DYNAMIC nodes, but the Path node is tagged DYNAMIC, so the above guarantee should still be correct)&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37605758/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community talks ==&lt;br /&gt;
* [https://forum.flightgear.org/viewtopic.php?f=45&amp;amp;t=36922&amp;amp;p=364937#p364937 Download_and_compile.sh &amp;amp; Raspberry Pi4]&lt;br /&gt;
* [https://sourceforge.net/p/flightgear/mailman/search/?q=%22opengl+es%22 OpenGL ES (devel list)]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[FlightGear Headless]]&lt;br /&gt;
* [[Howto:Optimizing FlightGear for mobile devices]]&lt;br /&gt;
* [[Graphics card profiles]]&lt;br /&gt;
* [[Canvas and OpenGL ES]]&lt;br /&gt;
* [[FlightGear and old Hardware]]&lt;br /&gt;
* [[Compositor]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rendering roadblocks]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FG_Int_Objects_Modules&amp;diff=140997</id>
		<title>FG Int Objects Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FG_Int_Objects_Modules&amp;diff=140997"/>
		<updated>2024-11-16T19:39:27Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Propose merge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Merge|FG interface}}{{FG Int Objects Modules sidebar}}&lt;br /&gt;
Modules in FG interface are Object Class , as like a map, to build a new object. You have learned about '''HT16K33''' and '''MCP23017''' classes, they are Modules, special Modules named in FG Interface world '''Devices'''. I made this difference to split and make the difference between switch , displays .. etc and the hardware driver chip.&amp;lt;br /&amp;gt;&lt;br /&gt;
All Modules Classes are loaded into the interface, ready to be used and can be requested with the '''getModule()''' Interface Method.&lt;br /&gt;
&lt;br /&gt;
To be loaded, the module need to be declared.&lt;br /&gt;
For memory, the main config file : &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[INT]&lt;br /&gt;
intname=RADIOPANEL&lt;br /&gt;
deviceconf=/opt/fgint/Config/RadioPanel/devices.cfg&lt;br /&gt;
&lt;br /&gt;
[MODULES]&lt;br /&gt;
module01=FGIntHT16K33,HT16K33&lt;br /&gt;
module02=FGIntMCP23017,MCP23017&lt;br /&gt;
module03=FGIntSegDisplay,SegDisplay&lt;br /&gt;
module04=FGIntSwDisplay,SwitchLight&lt;br /&gt;
module05=FGIntSwitch,Switch&lt;br /&gt;
module06=FGIntSwitch,ToogleSwitch&lt;br /&gt;
module07=RotaryEncoder,RotaryEncoder&lt;br /&gt;
&lt;br /&gt;
[AUXCONF]&lt;br /&gt;
displays=/opt/fgint/Config/RadioPanel/displays.cfg&lt;br /&gt;
swlights=/opt/fgint/Config/RadioPanel/swlights.cfg&lt;br /&gt;
switches=/opt/fgint/Config/RadioPanel/switches.cfg&lt;br /&gt;
tglswitches=/opt/fgint/Config/RadioPanel/tglswitches.cfg&lt;br /&gt;
encoders=/opt/fgint/Config/RadioPanel/rotenc.cfg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the '''MODULES''' section, you can see all modules that will be loaded.&lt;br /&gt;
Here We are loading '''HT16K33''' from module file '''FGIntHT16K33.py'''. Same thing for the '''MCP23017''' Module in the '''FGIntMCP23017.py''', '''FGIntSegDisplay.py''' with the '''SegDisplay''' Class&lt;br /&gt;
&lt;br /&gt;
Some Module file can handle more than one Class, as like '''FGIntSwitch.py''' where you can find different Class for different switch types.&lt;br /&gt;
'''FGIntSwitch.py''' own the folling classes : &lt;br /&gt;
* '''Switch''' : Single switch 2 states&lt;br /&gt;
* '''DoubleSwitch''' : Single switch 3 states&lt;br /&gt;
* '''RotarySwitch''' : Use to manage a rotary switch (variable nb position)&lt;br /&gt;
* '''ToogleSwitch''' : Single Push button that will switch between 2 states at each push&lt;br /&gt;
&lt;br /&gt;
[[Category:FG Interface]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Developing_a_DSL_interpreter_in_Nasal&amp;diff=140996</id>
		<title>Howto:Developing a DSL interpreter in Nasal</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Developing_a_DSL_interpreter_in_Nasal&amp;diff=140996"/>
		<updated>2024-11-16T19:35:59Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Propose deletion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Delete|reason=This is a work-in-progress article created several years ago that was never written.|day=16|month=11|year=2024}}{{Template:Nasal Navigation}}&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Document how to develop a [http://en.wikipedia.org/wiki/Domain-specific_language Domain Specific Language] in Nasal, i.e. for creating scripted pilots, scripted ATC controllers &amp;lt;ref&amp;gt;www.rvs.uni-bielefeld.de/publications/Papers/ATC-grammar.ps&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;www.rvs.uni-bielefeld.de/publications/Papers/hillermann-parser.pdf&amp;lt;/ref&amp;gt; or scripted weather patterns.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;[Callsign]: MAINTAIN PRESENT SPEED.&amp;quot;&lt;br /&gt;
* &amp;quot;[Callsign]: DO NOT EXCEED 250 KNOTS&amp;quot;&lt;br /&gt;
* &amp;quot;[Callsign]: turn left heading 185&amp;quot;&lt;br /&gt;
* &amp;quot;[Callsign]: Climb and maintain 5000&amp;quot;&lt;br /&gt;
* &amp;quot;[Callsign]: hold north-west of the SFO VOR on the 330 degrees radial, left turns, maintain 8000 feet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|QEZVpY_PCOY}}&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
* tokens&lt;br /&gt;
* lexing&lt;br /&gt;
* parsing&lt;br /&gt;
* code generation&lt;br /&gt;
* [[Howto talk:Implementing a simple bytecode interpreter in Nasal|code execution]]&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* http://www.theenterprisearchitect.eu/archive/2009/05/06/dsl-development-7-recommendations-for-domain-specific-language-design-based-on-domain-driven-design&lt;br /&gt;
* http://www.mailsend-online.com/blog/a-dsl-in-javascript.html&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Changelog_2024.1&amp;diff=140913</id>
		<title>Changelog 2024.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Changelog_2024.1&amp;diff=140913"/>
		<updated>2024-11-08T18:54:59Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft}}&lt;br /&gt;
&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
== World Scenery 3.0 ==&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
* Improve translations for the following languages:&lt;br /&gt;
** French&lt;br /&gt;
** Spanish&lt;br /&gt;
** Polish&lt;br /&gt;
** Italian&lt;br /&gt;
** German&lt;br /&gt;
** Dutch&lt;br /&gt;
** Slovak&lt;br /&gt;
** Georgian&lt;br /&gt;
** Russian&lt;br /&gt;
&lt;br /&gt;
== Hardware Device Support ==&lt;br /&gt;
Support for the following hardware devices has been added or updated:&lt;br /&gt;
&lt;br /&gt;
* Honeycomb Alpha Flight Controls&lt;br /&gt;
* Honeycomb Bravo Throttle Quadrant&lt;br /&gt;
* Saitek Pro Flight Rudder Pedals &lt;br /&gt;
* Saitek Pro Flight Switch Panel&lt;br /&gt;
* CH Combatstick&lt;br /&gt;
* Logitech G25 Racing Wheel&lt;br /&gt;
* Thrustmaster T-Flight Rudder Pedals&lt;br /&gt;
&lt;br /&gt;
== AI Traffic &amp;amp; Liveries ==&lt;br /&gt;
Traffic and/or liveries have been added for the following airlines:&lt;br /&gt;
&lt;br /&gt;
* Delta Airlines&lt;br /&gt;
* United Airlines&lt;br /&gt;
* AeroUnion Mexico&lt;br /&gt;
* AeroMexico&lt;br /&gt;
* AeroMexicoConnect&lt;br /&gt;
* Amerijet Cargo&lt;br /&gt;
* Airest Cargo&lt;br /&gt;
* Air Caraibes&lt;br /&gt;
* DHL&lt;br /&gt;
* Amazon Air&lt;br /&gt;
* EuroWings&lt;br /&gt;
* Polar Air Cargo&lt;br /&gt;
* Northern Air Cargo&lt;br /&gt;
* Eastern Airways UK&lt;br /&gt;
* ANA Wings&lt;br /&gt;
* Ibex Japan&lt;br /&gt;
* Solaseed Japan&lt;br /&gt;
* AirHongKong &lt;br /&gt;
* AirHongKong Cargo&lt;br /&gt;
* AirChina&lt;br /&gt;
* UNI Air Japan&lt;br /&gt;
* Southern Air Cargo&lt;br /&gt;
* SATA Air Acores&lt;br /&gt;
* Azores Airlines&lt;br /&gt;
* European Air Transport Leipzig&lt;br /&gt;
* SykyLeaseCargo&lt;br /&gt;
* Blue Air&lt;br /&gt;
* Cyprus Airways&lt;br /&gt;
* DirectFlight Airtask Shetland&lt;br /&gt;
*&lt;br /&gt;
* Corsair&lt;br /&gt;
* LOT Polish Airlines&lt;br /&gt;
* Braethens&lt;br /&gt;
* Transavia NL&lt;br /&gt;
* Transavia France&lt;br /&gt;
* Tunisair Group&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Traffic and/or liveries have been removed for the following airlines:&lt;br /&gt;
&lt;br /&gt;
* GermanWings (defunct)&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
fc16b827a Fix OSM imagery in the canvas map (fixes #2912)**&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;f0a740333 Remove OpenAIP map support from Canvas Map (see #2913)**&lt;br /&gt;
&lt;br /&gt;
== FG1000 ==&lt;br /&gt;
&lt;br /&gt;
== Nasal ==&lt;br /&gt;
&lt;br /&gt;
== Phi ==&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;7b36d498f Fix a variety of broken or unsupported maps in Phi&lt;br /&gt;
&lt;br /&gt;
725ce7d3f Phi: Add map option to disable repositioning own aircraft by dragging&lt;br /&gt;
&lt;br /&gt;
fc3b7b8b5 Phi: Highlight &amp;quot;follow aircraft&amp;quot; button if enabled&lt;br /&gt;
&lt;br /&gt;
5626dc51f Phi: Remove unused css rule&lt;br /&gt;
&lt;br /&gt;
88788dc6a Fix attributes for multiplayer and AI airplanes in Phi (fix #2274)&lt;br /&gt;
&lt;br /&gt;
660fda829 Phi: automatically use latest AIRAC cycle for OpenFlightMaps&lt;br /&gt;
&lt;br /&gt;
57483a999 Phi: fix midnight time offset&lt;br /&gt;
&lt;br /&gt;
== Aircraft Carriers ==&lt;br /&gt;
The following [[Aircraft carrier|Aircraft carriers]] have been added:&lt;br /&gt;
&lt;br /&gt;
* Admiral Kuznetsov&lt;br /&gt;
* Liaoning&lt;br /&gt;
&lt;br /&gt;
== Misc. ==&lt;br /&gt;
f9ad4124f Route manager add total dist, dist remaining, ete, flight time&lt;br /&gt;
&lt;br /&gt;
== Legacy ==&lt;br /&gt;
&lt;br /&gt;
* Remove [[Rembrandt]] command-line options&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Changelog_2024.1&amp;diff=140912</id>
		<title>Changelog 2024.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Changelog_2024.1&amp;diff=140912"/>
		<updated>2024-11-08T18:13:54Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Create page skeleton&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft}}&lt;br /&gt;
&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
== World Scenery 3.0 ==&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
* Improve translations for the following languages:&lt;br /&gt;
** French&lt;br /&gt;
** Polish&lt;br /&gt;
** Italian&lt;br /&gt;
** German&lt;br /&gt;
** Dutch&lt;br /&gt;
** Slovak&lt;br /&gt;
** Georgian&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
== FG1000 ==&lt;br /&gt;
&lt;br /&gt;
== Nasal ==&lt;br /&gt;
&lt;br /&gt;
== Phi ==&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140877</id>
		<title>User:Ranguli</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140877"/>
		<updated>2024-11-06T15:05:52Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there,&lt;br /&gt;
&lt;br /&gt;
I'm a fan of Flight Gear and have joined the Wiki to tidy things up as I come across them. If I don't fix them then and there on the spot, they'll go into the list below.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:30, 20 August 2020 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear (WIP Article) ==&lt;br /&gt;
&lt;br /&gt;
== Why this article exists (and why good build documentation is paramount) ==&lt;br /&gt;
The long-term health and growth of open-source projects is directly tied to the size and quality of the community that is built around it. One of the most important groups of people within these communities are developers. Developers are like the worker bees of a bee colony, and are the lifeblood of a project. Much like the world-wide shortage of bees, there are more open-source projects needing help than there are developers to help them. So it stands to reason that it is in any open-source projects best interest to retain the developers that take an interest in the project. The art of making developers lives easier is called '''developer experience''' (DX), and projects may live or die by it, with or without knowing it was a factor. Quite simply, developers who have a bad experience with a project will not contribute. Can you blame them?&lt;br /&gt;
&lt;br /&gt;
The first place a developer is liable to have a bad experience with a project (and then move on) is when they first come face to face with documentation. The first impression a developer will get of a project will be from its README or equivalent documentation, particularly, the instructions for '''building the software'''. Many a developer has been eager to contribute to a project only to find a lack of documentation, and (rightfully so), moved on to other, less frustrating pursuits in the open-source world.&lt;br /&gt;
&lt;br /&gt;
There are three guiding principles for not sending developers for the hills:&lt;br /&gt;
&lt;br /&gt;
# There is '''one''' way to build the project, using '''one''' build system, following '''one''' set of instructions, that are easy to follow and consist of only a few steps&lt;br /&gt;
# The build process, code quality, and quality of documentation all work together to provide a '''low-friction''', '''low barrier to entry''' for '''new contributors'''.&lt;br /&gt;
# If a developer has a bad experience, '''that is a bug.'''&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear on Ubuntu and derivatives ==&lt;br /&gt;
FlightGear requires a large number of dependencies to build. In a terminal, you can install all necessary dependencies by using the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SimGear ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Dependency&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|Boost&lt;br /&gt;
|libboost1.74-dev&lt;br /&gt;
|libboost1.83-dev&lt;br /&gt;
|-&lt;br /&gt;
|Open Audio Library (OpenAL)&lt;br /&gt;
|libopenal-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenSceneGraph (OSG)&lt;br /&gt;
|libopenscenegraph-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|liblzma-dev&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
cmake&lt;br /&gt;
&lt;br /&gt;
git&lt;br /&gt;
&lt;br /&gt;
build-essential&lt;br /&gt;
&lt;br /&gt;
pkg-config&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
&lt;br /&gt;
gcc&lt;br /&gt;
&lt;br /&gt;
g++&lt;br /&gt;
&lt;br /&gt;
libboost1.74-dev&lt;br /&gt;
&lt;br /&gt;
libopenal-dev&lt;br /&gt;
&lt;br /&gt;
libopenscenegraph-dev&lt;br /&gt;
&lt;br /&gt;
libcurl4-openssl-dev&lt;br /&gt;
&lt;br /&gt;
24.04LTS&lt;br /&gt;
 sudo apt install git gcc g++ build-essential cmake &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
22.04LTSFlightGear also has a dependency on another part of the FlightGear project, [[SimGear]]. So in order to build FlightGear we must first build SimGear.&lt;br /&gt;
&lt;br /&gt;
Obtain the SimGear source code by cloning from [[Git]]:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://git.code.sf.net/p/flightgear/simgear&amp;lt;/nowiki&amp;gt; flightgear-simgear&lt;br /&gt;
Next, follow the standard procedure for building a CMake project:&lt;br /&gt;
 cd flightgear-simgear&lt;br /&gt;
 &lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake .. -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
 &lt;br /&gt;
 make -jX # Where X is the number of cores on your system&lt;br /&gt;
 &lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear ==&lt;br /&gt;
DRAFT&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Dependency&lt;br /&gt;
!Hard dependency?&lt;br /&gt;
!Required for&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|libplib&lt;br /&gt;
|Yes&lt;br /&gt;
|Legacy joystick support&lt;br /&gt;
|&amp;lt;code&amp;gt;libplib-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|libudev&lt;br /&gt;
|Yes&lt;br /&gt;
|Peripheral / input support&lt;br /&gt;
|&amp;lt;code&amp;gt;libudev-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Base&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtbase5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 SVG&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;libqt5svg5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Declarative&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtdeclarative5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev-tools, qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Quick&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtquickcontrols2-5-dev&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;qml-module-qtquick2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 QML&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qml-module-qtquick-controls2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|libevent-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|Yes&lt;br /&gt;
|File compression/decompression&lt;br /&gt;
|&amp;lt;code&amp;gt;zlib1g-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|&amp;lt;code&amp;gt;libdbus-1-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenXR&lt;br /&gt;
|No&lt;br /&gt;
|Virtual Reality (VR) support&lt;br /&gt;
|&amp;lt;code&amp;gt;libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt installlibplib-dev qtbase5-dev libqt5svg5-dev qtdeclarative5-dev qttools5-dev-tools qttools5-dev libevent-dev libdbus-1-dev libudev-dev qml-module-qtquick2-controls2 libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev libavcodec-dev libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
== Other notes ==&lt;br /&gt;
# [https://web.archive.org/web/20170118212558/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Checklist/TM_1-1520-240-CL.pdf Chinook Operators Checklist TM 1-1520-240-CL]&lt;br /&gt;
# Incredibly useful, Chinook CH-47D manual: [https://web.archive.org/web/20170118213215/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Manual/TM_1-1520-240-10.pdf Chinook Operators Manual TM 1-1520-240-10]&lt;br /&gt;
# [https://web.archive.org/web/20170118215340/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Maintenance_Test_Flight_Manual/TM_1-1520-240-MTF.pdf Chinook Maintenance Test Flight Manual TM 1-1520-240-MTF]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140876</id>
		<title>User:Ranguli</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140876"/>
		<updated>2024-11-06T15:05:06Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there,&lt;br /&gt;
&lt;br /&gt;
I'm a fan of Flight Gear and have joined the Wiki to tidy things up as I come across them. If I don't fix them then and there on the spot, they'll go into the list below.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:30, 20 August 2020 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a list of pull requests and bug reports / code tickets I've filed in order to keep track of what I'm working on as well as the status of bugs.&lt;br /&gt;
&lt;br /&gt;
== Merge Requests ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Progress&lt;br /&gt;
!Merge Request&lt;br /&gt;
!Date Created&lt;br /&gt;
!Repository&lt;br /&gt;
!Ticket&lt;br /&gt;
!Title&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=100}}&lt;br /&gt;
|#331&lt;br /&gt;
|Sept. 6th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Fix OSM imagery in the canvas map (fixes #2912)&lt;br /&gt;
|Merged without changes&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=80}}&lt;br /&gt;
|#332&lt;br /&gt;
|Sept. 6th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Remove OpenAIP map support from Canvas Map&lt;br /&gt;
|Blocked, awaiting review from FG1000 maintainer&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=100}}&lt;br /&gt;
|#333&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Fix or remove broken Phi map layers&lt;br /&gt;
|Merged without changes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bug Reports ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Bug Report&lt;br /&gt;
!Date Created&lt;br /&gt;
!Title&lt;br /&gt;
!Status&lt;br /&gt;
!Remarks&lt;br /&gt;
!Assignee&lt;br /&gt;
|-&lt;br /&gt;
|{{Issue|2917}}&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|Saitek Pro rudder pedals not working on next branch&lt;br /&gt;
|Limbo (Sept. 16th 2024)&lt;br /&gt;
|&lt;br /&gt;
|No-one, waiting for a reply from&amp;lt;code&amp;gt;jsb1658&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{{Issue|2916}}&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|Missing Qt dependency should be caught at compile-time instead of run-time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{Ticket|2914}}&lt;br /&gt;
|Sept. 5th 2024&lt;br /&gt;
|Auto-hide menu bar requires mouse click to hide&lt;br /&gt;
|Unacknowledged. This may become irrelevant with the migration away from PUI.&lt;br /&gt;
|&lt;br /&gt;
|No-one&lt;br /&gt;
|-&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Sept. 5th 2024&lt;br /&gt;
|Breaking OpenAIP API changes causing issues in Canvas Map and Phi&lt;br /&gt;
|I made PRs to fix the bugs. Two are merged, one is blocked awaiting review from the FG1000 maintainer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Plan ==&lt;br /&gt;
Some hypothetical or experimental development ideas for improving flightgear:&lt;br /&gt;
&lt;br /&gt;
- Port the launcher to Qt 6&lt;br /&gt;
&lt;br /&gt;
- Work on Nasal intepreter, Nasal specification, grammar, and tooling&lt;br /&gt;
&lt;br /&gt;
- Migrate simgear and flightgear to use vcpkg instead of dlls from a repo&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Contributions ==&lt;br /&gt;
=== House-keeping ===&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|100}} Update the article on the [[AC3D_file_format]]&lt;br /&gt;
# {{progressbar|100}} Mark [[FG_Interface_schematics_and_PCBs]] incomplete&lt;br /&gt;
# {{progressbar|100}} Mark [[Deperdussin_Monocoque]] as stub&lt;br /&gt;
# {{progressbar|100}} Mark [[Schleicher_ASK_13]] as stub&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Technik_Museum_Speyer]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[ATR_72-500]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Blender]] &lt;br /&gt;
# {{progressbar|70}} Cleanup [[AC3D]] needs software infobox&lt;br /&gt;
# {{progressbar|50}} Cleanup of [[Flying_Warbirds]]&lt;br /&gt;
# {{progressbar|50}} Cleanup [[Altitude]]&lt;br /&gt;
# {{progressbar|10}} Flesh out [[QNH]]&lt;br /&gt;
# {{progressbar|0}} Mark [[KFreeFlight]] as abandoned/old&lt;br /&gt;
# {{progressbar|0}} Cleanup of [[Flight_rules]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_information_resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Avionics_Development_Resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_Manuals]]&lt;br /&gt;
# {{progressbar|0}} [[SVG]] fix quote syntax&lt;br /&gt;
# {{progressbar|0}} [[Kelpie_Flight_Planner]] needs software infobox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Screenshot Improvements ===&lt;br /&gt;
Quite a number of articles have screenshots which are 10 years old or more! While their historical staying power is impressive, their lower resolution and old graphics don't quite live up to modern expectations. Here are some articles I intend to take better screenshots for:&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|0}} [[Flying_Warbirds]] &lt;br /&gt;
&lt;br /&gt;
== Larger Projects  ==&lt;br /&gt;
# {{progressbar|100}} Rewrite [[Mailing lists]] article&lt;br /&gt;
# {{progressbar|50}} [[Howto:Working_with_the_AC3D_file_format_in_Blender]]  This article needs new sections about exporting, saving, caveats, etc.&lt;br /&gt;
# {{progressbar|0}} [[User:Ranguli/List of file formats]] This article needs a good deal of cleanup, but could also be a ton of work depending on how far I'd want to take documenting file formats used by FlightGear.&lt;br /&gt;
# {{progressbar|0}} [[Howto:Edit_a_livery]] unfortunately this article is really a &amp;quot;How to draw an owl&amp;quot; type of tutorial, and was of no use to me while trying to learn how to work with liveries. Once I get a better understanding of the concepts personally I'd like to redo this from the ground up.&lt;br /&gt;
# FlightGear Academy articles that need heavy reformatting:&lt;br /&gt;
## {{progressbar|100}} [[Normal_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Emergency_Approach]] &lt;br /&gt;
## {{progressbar|0}} [[Emergency_Descent]]&lt;br /&gt;
## {{progressbar|0}} [[S-Turns]]&lt;br /&gt;
## {{progressbar|0}} [[Go_Around]]&lt;br /&gt;
## {{progressbar|0}} [[Rectangular_Course]]&lt;br /&gt;
## {{progressbar|0}} [[Turns_About_a_Point]]&lt;br /&gt;
## {{progressbar|0}} [[Take_Off]]&lt;br /&gt;
## {{progressbar|0}} [[Stalls_and_Spin_Awareness]]&lt;br /&gt;
## {{progressbar|0}} [[Soft_Field_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Slow_Flight_(Minimum_Controllable_Airspeed)]]&lt;br /&gt;
## {{progressbar|0}} [[Short_Field_Landing]]&lt;br /&gt;
# {{progressbar|0}} [[JSBSim_Commander]] add software infobox and mark as abandoned&lt;br /&gt;
# {{progressbar|0}} [[Conversion]] add some tables, formulas, rename to Aeronautical conversions&lt;br /&gt;
# {{progressbar|0}} [[Airports.txt]]&lt;br /&gt;
# {{progressbar|0}} [[Howto:Create_WebPanel_instrument]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear (WIP Article) ==&lt;br /&gt;
&lt;br /&gt;
== Why this article exists (and why good build documentation is paramount) ==&lt;br /&gt;
The long-term health and growth of open-source projects is directly tied to the size and quality of the community that is built around it. One of the most important groups of people within these communities are developers. Developers are like the worker bees of a bee colony, and are the lifeblood of a project. Much like the world-wide shortage of bees, there are more open-source projects needing help than there are developers to help them. So it stands to reason that it is in any open-source projects best interest to retain the developers that take an interest in the project. The art of making developers lives easier is called '''developer experience''' (DX), and projects may live or die by it, with or without knowing it was a factor. Quite simply, developers who have a bad experience with a project will not contribute. Can you blame them?&lt;br /&gt;
&lt;br /&gt;
The first place a developer is liable to have a bad experience with a project (and then move on) is when they first come face to face with documentation. The first impression a developer will get of a project will be from its README or equivalent documentation, particularly, the instructions for '''building the software'''. Many a developer has been eager to contribute to a project only to find a lack of documentation, and (rightfully so), moved on to other, less frustrating pursuits in the open-source world.&lt;br /&gt;
&lt;br /&gt;
There are three guiding principles for not sending developers for the hills:&lt;br /&gt;
&lt;br /&gt;
# There is '''one''' way to build the project, using '''one''' build system, following '''one''' set of instructions, that are easy to follow and consist of only a few steps&lt;br /&gt;
# The build process, code quality, and quality of documentation all work together to provide a '''low-friction''', '''low barrier to entry''' for '''new contributors'''.&lt;br /&gt;
# If a developer has a bad experience, '''that is a bug.'''&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear on Ubuntu and derivatives ==&lt;br /&gt;
FlightGear requires a large number of dependencies to build. In a terminal, you can install all necessary dependencies by using the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SimGear ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Dependency&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|Boost&lt;br /&gt;
|libboost1.74-dev&lt;br /&gt;
|libboost1.83-dev&lt;br /&gt;
|-&lt;br /&gt;
|Open Audio Library (OpenAL)&lt;br /&gt;
|libopenal-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenSceneGraph (OSG)&lt;br /&gt;
|libopenscenegraph-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|liblzma-dev&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
cmake&lt;br /&gt;
&lt;br /&gt;
git&lt;br /&gt;
&lt;br /&gt;
build-essential&lt;br /&gt;
&lt;br /&gt;
pkg-config&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
&lt;br /&gt;
gcc&lt;br /&gt;
&lt;br /&gt;
g++&lt;br /&gt;
&lt;br /&gt;
libboost1.74-dev&lt;br /&gt;
&lt;br /&gt;
libopenal-dev&lt;br /&gt;
&lt;br /&gt;
libopenscenegraph-dev&lt;br /&gt;
&lt;br /&gt;
libcurl4-openssl-dev&lt;br /&gt;
&lt;br /&gt;
24.04LTS&lt;br /&gt;
 sudo apt install git gcc g++ build-essential cmake &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
22.04LTSFlightGear also has a dependency on another part of the FlightGear project, [[SimGear]]. So in order to build FlightGear we must first build SimGear.&lt;br /&gt;
&lt;br /&gt;
Obtain the SimGear source code by cloning from [[Git]]:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://git.code.sf.net/p/flightgear/simgear&amp;lt;/nowiki&amp;gt; flightgear-simgear&lt;br /&gt;
Next, follow the standard procedure for building a CMake project:&lt;br /&gt;
 cd flightgear-simgear&lt;br /&gt;
 &lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake .. -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
 &lt;br /&gt;
 make -jX # Where X is the number of cores on your system&lt;br /&gt;
 &lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear ==&lt;br /&gt;
DRAFT&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Dependency&lt;br /&gt;
!Hard dependency?&lt;br /&gt;
!Required for&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|libplib&lt;br /&gt;
|Yes&lt;br /&gt;
|Legacy joystick support&lt;br /&gt;
|&amp;lt;code&amp;gt;libplib-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|libudev&lt;br /&gt;
|Yes&lt;br /&gt;
|Peripheral / input support&lt;br /&gt;
|&amp;lt;code&amp;gt;libudev-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Base&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtbase5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 SVG&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;libqt5svg5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Declarative&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtdeclarative5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev-tools, qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Quick&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtquickcontrols2-5-dev&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;qml-module-qtquick2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 QML&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qml-module-qtquick-controls2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|libevent-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|Yes&lt;br /&gt;
|File compression/decompression&lt;br /&gt;
|&amp;lt;code&amp;gt;zlib1g-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|&amp;lt;code&amp;gt;libdbus-1-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenXR&lt;br /&gt;
|No&lt;br /&gt;
|Virtual Reality (VR) support&lt;br /&gt;
|&amp;lt;code&amp;gt;libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt installlibplib-dev qtbase5-dev libqt5svg5-dev qtdeclarative5-dev qttools5-dev-tools qttools5-dev libevent-dev libdbus-1-dev libudev-dev qml-module-qtquick2-controls2 libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev libavcodec-dev libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
== Other notes ==&lt;br /&gt;
# [https://web.archive.org/web/20170118212558/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Checklist/TM_1-1520-240-CL.pdf Chinook Operators Checklist TM 1-1520-240-CL]&lt;br /&gt;
# Incredibly useful, Chinook CH-47D manual: [https://web.archive.org/web/20170118213215/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Manual/TM_1-1520-240-10.pdf Chinook Operators Manual TM 1-1520-240-10]&lt;br /&gt;
# [https://web.archive.org/web/20170118215340/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Maintenance_Test_Flight_Manual/TM_1-1520-240-MTF.pdf Chinook Maintenance Test Flight Manual TM 1-1520-240-MTF]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Changelog_2020.3&amp;diff=140811</id>
		<title>Changelog 2020.3</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Changelog_2020.3&amp;diff=140811"/>
		<updated>2024-10-22T21:29:40Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Update &amp;quot;Next changelog&amp;quot; link to 2024.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{changelogs|prev=2020.1|next=2024.1}}&lt;br /&gt;
&lt;br /&gt;
Available in: [[Changelog_2020.3|English]], [[Pl/Changelog_2020.3|Polish]], [[Zh/2020.3|Chinese]]&lt;br /&gt;
&lt;br /&gt;
Please help us translate into other languages!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
The FlightGear development team is delighted to announce the v2020.3 LTS release of FlightGear, the free, open-source flight simulator. This is the second Long Term Support release for FlightGear, since the project changed to offering both Long Term Support releases, and more cutting-edge Preview releases.  This release represents the culmination of two years of development effort by a worldwide group of volunteers, brought together by a shared ambition to create the most realistic flight simulator possible that is free to use, modify and distribute. FlightGear is used all over the world by desktop flight simulator enthusiasts, for research in universities and for interactive exhibits in museums.&lt;br /&gt;
&lt;br /&gt;
Major enhancements since the v2020.3 LTS include: &lt;br /&gt;
* a developer preview of the upcoming Compositor graphical rendering framework as a separate pre-built binary, &lt;br /&gt;
* enhancements to both the JSBSim and YASim flight dynamics models&lt;br /&gt;
* DDS texture caching to reduce load times&lt;br /&gt;
* faster loading and more memory efficient buildings&lt;br /&gt;
* improved aircraft carrier support&lt;br /&gt;
&lt;br /&gt;
Additionally 30 completely new aircraft have been added to the official hangar, and a further 71 have received major updates.&lt;br /&gt;
&lt;br /&gt;
{{Disclaimer|id=final-fixed-function-release}}&lt;br /&gt;
&lt;br /&gt;
Founded in 1997, FlightGear features more than 700 aircraft, a worldwide scenery database, a multiplayer environment, detailed sky modelling, a flexible and open aircraft modelling system, varied networking options, multiple display support, a powerful scripting language, and an open architecture. Best of all, being open-source, the simulator is owned by the community and everyone is encouraged to contribute.&lt;br /&gt;
&lt;br /&gt;
FlightGear - Fly Free! &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Launcher ==&lt;br /&gt;
* Addition of a welcome screen on first launch, providing helpful information to first time users.&lt;br /&gt;
* Aircraft can now be marked as Favourites, and filtered, making it easier to see find your favourite aircraft out of the hundreds available.&lt;br /&gt;
* The launcher now supports aircraft carriers, including selecting a carrier and setting a start position.&lt;br /&gt;
* {{key press|Ctrl|F}} shortcut for when you just want to Fly!&lt;br /&gt;
* Improved support for helipads and seaports, including detection of current aircraft type.&lt;br /&gt;
* Numerous bugfixes and stability improvements, in particular for the aircraft and addons tabs.&lt;br /&gt;
&lt;br /&gt;
== Graphics ==&lt;br /&gt;
* To provide a developer preview, the [[Compositor]] renderer is included as part of this release.  It provides a fully XML-configurable multi-pass rendering pipeline that is compatible with ALS and includes clustered shading.&lt;br /&gt;
* Support for DDS Texture Cache, improving loading times for texture files.&lt;br /&gt;
* Star visibility is configurable based on magnitude of star and atmospheric conditions.&lt;br /&gt;
* Use of non-directional point sprites as a fallback for drivers that do not support triangles of point sprites is now supported by setting &amp;lt;code&amp;gt;/rendering/triangle-directional-lights=false&amp;lt;/code&amp;gt;.&lt;br /&gt;
* A new Tower AGL view has been added.  This is similar to Tower View, except that it keeps both the aircraft and the ground immediately below the aircraft in view, zooming and panning smoothly as the aircraft moves. Good for viewing landings.&lt;br /&gt;
* Improved airport grass textures&lt;br /&gt;
* Implemented tidal movement for littoral areas.&lt;br /&gt;
* Updated regional material definitions for California, Asia, Northern Brazil, Iceland, Jan Mayen island.&lt;br /&gt;
* Active volcanoes - Katla, Eyjafjallajokull, Surtsey.  &lt;br /&gt;
* Instanced-based random and OpenStreetMap buildings, improving performance and graphical quality significantly.&lt;br /&gt;
* Improvements to the Wingflex Shader.&lt;br /&gt;
* Users may enable/disable the pilot model from the View Options dialog.&lt;br /&gt;
&lt;br /&gt;
== JSBSim ==&lt;br /&gt;
* Added the ability to set up the starter and acceleration times of a turbine (parameters &amp;lt;code&amp;gt;&amp;lt;n1spinup&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;n2spinup&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;n1startrate&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;n2startrate&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
* The &amp;lt;code&amp;gt;&amp;lt;integrator&amp;gt;&amp;lt;/code&amp;gt; filter can now be reset to 0.0 by setting its &amp;lt;code&amp;gt;&amp;lt;trigger&amp;gt;&amp;lt;/code&amp;gt; property to a negative value.&lt;br /&gt;
* The integration scheme of the &amp;lt;code&amp;gt;&amp;lt;integrator&amp;gt;&amp;lt;/code&amp;gt; filter can now be chosen among &amp;lt;code&amp;gt;rect&amp;lt;/code&amp;gt; (Euler), &amp;lt;code&amp;gt;trap&amp;lt;/code&amp;gt; (Trapezoidal), &amp;lt;code&amp;gt;ab2&amp;lt;/code&amp;gt; (2nd order Adams-BashForth) and &amp;lt;code&amp;gt;ab3&amp;lt;/code&amp;gt; (3rd order Adams-Bashforth)&lt;br /&gt;
* The following functions can now be used in &amp;lt;code&amp;gt;&amp;lt;function&amp;gt;&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;floor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ceil&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fmod&amp;lt;/code&amp;gt;. Their functionalities are the same than the corresponding C/C++ functions.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;function&amp;gt;&amp;lt;/code&amp;gt; now checks the number of its arguments.&lt;br /&gt;
* New system component linear_actuator&lt;br /&gt;
* Export the fuel density to the property tree&lt;br /&gt;
* Added cyclic clipping for FCS components&lt;br /&gt;
* Added the ability to control the turbine engines spin down factor&lt;br /&gt;
* [Backward compatibility breakage] Gyros are now measuring rotation rates instead of rotational accelerations. Gyros that measure rotational accelerations do not exist in the real world.&lt;br /&gt;
* Output properties of flight control elements are no longer tied. This saves a lot of spurious warning messages and allows direct references of the same properties among several flight controls.&lt;br /&gt;
* Water vapor in the atmosphere is now managed through its mass fraction rather than its partial pressure. The former being the physical quantity that is conserved when pressure and temperature vary.&lt;br /&gt;
* Check that there are at least 3 contacts before trying to trim on ground.&lt;br /&gt;
* Added optional transmission of the simulation time for FG UDP interface&lt;br /&gt;
* The existence of the property that is used for table independent vars is now checked during execution rather than when the XML definition is parsed. This relaxes the order in which filters, table and more generally flight controls need to be declared in the XML definition files.&lt;br /&gt;
* Electric engines RPM is now exported in UDP sockets.&lt;br /&gt;
* The parameter &amp;lt;code&amp;gt;&amp;lt;ignitionn2&amp;gt;&amp;lt;/code&amp;gt; now affects N2 rather than N1. &lt;br /&gt;
* A warning is now given when max &amp;lt; min in a &amp;lt;code&amp;gt;&amp;lt;clipto&amp;gt;&amp;lt;/code&amp;gt; rather than throwing an exception&lt;br /&gt;
* Added the ability to log properties in a CSV file with the new fgfs executable argument &amp;lt;code&amp;gt;--jsbsim-output-directive-file&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== YASim ==&lt;br /&gt;
* Ground friction (stiction) changes&lt;br /&gt;
* Support for transonic flow effects.&lt;br /&gt;
* Control initial gear state directly by setting &amp;lt;code&amp;gt;/fdm/yasim/respect-external-gear-state=true&amp;lt;/code&amp;gt;, rather then YASim settings this depending on whether the aircraft is in the air or on the ground.&lt;br /&gt;
* Electric engines are now supported.&lt;br /&gt;
&lt;br /&gt;
== Weather and Environment ==&lt;br /&gt;
* Increased turbulence will be encountered near active volcanoes.&lt;br /&gt;
* Configurable METAR URL.&lt;br /&gt;
* METAR strings are decoded and displayed in a human-readable form in the weather dialog.&lt;br /&gt;
&lt;br /&gt;
== Carriers ==&lt;br /&gt;
* Two new carrier-specific starting options are supported in the launcher: &amp;lt;code&amp;gt;carrier-takeoff&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;carrier-approach&amp;lt;/code&amp;gt;.&lt;br /&gt;
* A new &amp;lt;code&amp;gt;--carrier-position&amp;lt;/code&amp;gt; command-line argument has been added.  This can be used to select the aircraft start position on an aircraft carrier.  Either a catapult (e.g. &amp;lt;code&amp;gt;cat-1&amp;lt;/code&amp;gt;), a parking position (e.g. &amp;lt;code&amp;gt;park-1&amp;lt;/code&amp;gt;), on final approach on the FLOLS (&amp;lt;code&amp;gt;flols&amp;lt;/code&amp;gt;) or abeam the carrier (&amp;lt;code&amp;gt;abeam&amp;lt;/code&amp;gt;).&lt;br /&gt;
* MPCarrier can now be detected by the GUI even if not available on startup.  To enable this feature set &amp;lt;code&amp;gt;/sim/mp-carriers/auto-attach=true&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== AI ==&lt;br /&gt;
* New fgcommands &amp;lt;code&amp;gt;add-aiobject&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;remove-aiobject&amp;lt;/code&amp;gt; for adding/removing objects to the AI subsystem.&lt;br /&gt;
* New AI aircraft, including 747 Freighter, CRJ900, SR-71, Saab 340.&lt;br /&gt;
* Numerous updates to AI traffic schedules and airline liveries.&lt;br /&gt;
* Space Shuttle TAEM and approach at KEDW scenario.&lt;br /&gt;
* Accurate Britten-Norman Islander performance data, from an Islander pilot.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer ==&lt;br /&gt;
* Connection to VATSIM via swift is now available via the GUI.&lt;br /&gt;
* FGCom now supports both COM1 and COM2, as well as volume settings.&lt;br /&gt;
* The views defined by the user's aircraft (Pilot view, Helicopter view, Tower view etc) can now be used with multiplayer aircraft.  Viewing a particular multiplayer aircraft is done by clicking in the Pilot List dialogue's &amp;quot;view' column (see the &amp;quot;Multiplayer/Pilot List&amp;quot; menu).&lt;br /&gt;
* &amp;lt;code&amp;gt;--disable-hold-short&amp;lt;/code&amp;gt; option which allows the user to force a start on the runway when multiplayer is enabled.  This option should be used with caution - it can give other pilots and ATC a nasty fright to find an aircraft materialize on the runway!&lt;br /&gt;
* Support for recording multiplayer data&lt;br /&gt;
&lt;br /&gt;
== Nasal Scripting ==&lt;br /&gt;
* Configurable load order for core Nasal modules.&lt;br /&gt;
* Improvements and bug fixes to Emesary, the messaging interface.&lt;br /&gt;
* Improvements to the core libraries.&lt;br /&gt;
* Garbage collection improvements to reduce frame stuttering&lt;br /&gt;
* Re-loadable Nasal modules&lt;br /&gt;
* Canvas EFIS framework&lt;br /&gt;
* New methods in Canvas Image to set colors of pixels in the image.&lt;br /&gt;
&lt;br /&gt;
== Aircraft == &lt;br /&gt;
* FG1000 Glass Panel improvements include user-configurable VFR transponder codes, volume controls, new fascia, UI is now resizeable, support for custom SVG files (e.g. for a G500).  The FG1000 is now available on the Cessna 182T, J3 Cub, Diamond DA40.&lt;br /&gt;
* Improved glider vario instrument.&lt;br /&gt;
* New Aircraft: &lt;br /&gt;
** Airbus A320 - airliner&lt;br /&gt;
** Alisport Silent2Electro - glider with electric sustainer motor&lt;br /&gt;
** Bombardier Q400 DHC8-402 - shorthaul turboprop airliner&lt;br /&gt;
** Breguet Atlantic BR 1150 - long-range maritime patrol aircraft&lt;br /&gt;
** Cessna 140 - GA aircraft&lt;br /&gt;
** Cessna 208B Caravan - short range passenger, freighter and utility aircraft&lt;br /&gt;
** Cirrus SR22T - GA aircraft&lt;br /&gt;
** Diamond DA40 NG - GA aircraft, including FG1000 glass panel cockpit&lt;br /&gt;
** Diamond DA62 Twinstar- Twin engine GA aircraft&lt;br /&gt;
** Diamond HK36 Super Dimona - motorglider&lt;br /&gt;
** Dornier DO 28 Skyservant - Twin engine STOL utility aircraft&lt;br /&gt;
** Douglas TBD Devastator - WWII Torpedo bomber&lt;br /&gt;
** Draco Wilga - turboprop taildragger bush plane&lt;br /&gt;
** Fokker T.V - twin engine bomber&lt;br /&gt;
** Glasfluegel H201B Standard Libelle - glider&lt;br /&gt;
** Grumman F11-Tiger - carrier-based fighter&lt;br /&gt;
** Grumman HU-16A Albatross - twin engine amphibian&lt;br /&gt;
** McDonnell Douglas MD-11 - a glass-cockpit widebody trijet&lt;br /&gt;
** Petliakov PE-8 (Ant-42/TB-7) - WWII bomber&lt;br /&gt;
** Piper PA28-161 Warrior II - GA aircraft&lt;br /&gt;
** Pipistrel Alpha Electro - electric training aircraft&lt;br /&gt;
** Pipistrel Taurus Electro G2.5 - glider with electric sustainer motor&lt;br /&gt;
** Rolladen Schneider LS8sc neo - standard glider with electric sustainer motor&lt;br /&gt;
** Robin DR400 Ecoflyer - GA Aircraft&lt;br /&gt;
** Scheibe Bergfalke II/55 - training glider&lt;br /&gt;
** Schempp-Hirth Arcus S - high performance glider&lt;br /&gt;
** Schleicher Ka6(CR) &amp;quot;Rhoensegler&amp;quot; - training glider&lt;br /&gt;
** SEPECAT Jaguar GR.1 - jet attack aircraft&lt;br /&gt;
** SUMPAC - Human powered airplane&lt;br /&gt;
** Supermarine Swift - jet fighter&lt;br /&gt;
** Yak 52 - training aircraft&lt;br /&gt;
* Major updates to over 70 aircraft.  Including 737-100, 737-300, 777, A-26-Invader, AR-234, ASG29, ASK13, ASK21, Aero-Commander, Aichi-D3A, B-17, B-24-Liberator, B-25, Bombardier-415, CH750STOL, CRJ700-family, Cessna-208-Caravan, Cessna Citation II, Cessna-L19, Cirrus-SR22, Concorde, DO-228, DO-335, Diamond-Da40, Diamond-Da42, Dragonfly, Embraer-ERJ-145, F-15, Fairchild-Metroliner, Falcon-50, Fokker-S-11, Fw200, H4-Hercules, Harrier-GR3, Horten-Ho-IX, Hughes-XF11, J3Cub, JA37, JAS39-Gripen, Jaguar, LS4, Lancair-235, Lionceau, Lockheed-NF104A, Lockheed-P38, ME-262, Mirage-2000, MirageIV, Northrop-xb35, PC-12, Piaggio-P166, Piper-PA-28, Potez-630, R44, Ryan-Navion, SIAI-Marchetti-SF.260, Socata-ST10, SpaceShuttle, Starship, Tecnam-P2006T, UH-1, Yak-18T, Zlin-50lx, an24b, bluebird, c182s, dhc1, f-14b, f16.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
* Updated Chinese, Dutch, French, German, Italian, Polish and Slovak translations.&lt;br /&gt;
* Map dialog displays heliports and allows configurable cursor key panning&lt;br /&gt;
* Faster Terrasync:  Download a tarball of airport information on first start and only check for updates every 24 hours rather than every simulator run.&lt;br /&gt;
* GPS fly-by mode&lt;br /&gt;
* Sentry.io integration to provide centralized crash reporting.&lt;br /&gt;
* Change screenshot filename to have date and time&lt;br /&gt;
* New thread safe particle manager -- should reduce random crashes around particles.&lt;br /&gt;
&lt;br /&gt;
=Updates since 2020.1=&lt;br /&gt;
Changes since the 2020.1 preview release include:&lt;br /&gt;
* Various launcher improvements including a Welcome screen and a keyboard shortcut ({{key press|Ctrl|F}}) to Fly!&lt;br /&gt;
* Improved regional definitions for California, Iceland and Northern Brazil and better grass textures.&lt;br /&gt;
* Implemented tidal movement for littoral areas.&lt;br /&gt;
* New AI model for the 747 Freighter, and numerous AI livery and traffic updates.&lt;br /&gt;
* Updates to the FG1000 glass panel display including configurable VFR transponder codes, volume controls, a new fascia, resizeable UI and support for custom SVG files.&lt;br /&gt;
* A hangar full of new aircraft: HU-16A-Albatross, LS8, Embraer-ERJ-145, Cessna 208B Caravan, PZL 104 wilga 2000 Draco, Scheibe Bergfalke, Taurus, f16, Dornier Do 28 Skyservant, Petliakov Pe 8 (Ant 42/DB 7), Grumman F.11 Tiger&lt;br /&gt;
* Updates to a large number of aircraft including CRJ700, Dragonfly, Mirage 2000, Jaguar GR1, H4 Hercules, JA37, Supermarine Swift, A320, Cirrus-SR22, Cessna Citation, J3Cub&lt;br /&gt;
* Updated Chinese, Dutch, French, German, Italian, Polish and Slovak translations.&lt;br /&gt;
* Faster Terrasync:  Download a tarball of airport information on first start and only check for updates every 24 hours rather than every simulator run.&lt;br /&gt;
* GPS fly-by mode&lt;br /&gt;
* Sentry.io integration to provide centralized crash reporting.&lt;br /&gt;
* New thread safe particle manager -- should reduce random crashes around particles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Updates since 2020.3.0=&lt;br /&gt;
&lt;br /&gt;
As 2020.3 is a long term supported release, there are ongoing bug-fixes and small improvements happening, based on user feedback and automatic reporting of crashes and issues. Significant fixes are listed below:&lt;br /&gt;
&lt;br /&gt;
==2020.3.1==&lt;br /&gt;
* Add help page to the launcher&lt;br /&gt;
* Fix handling of helipads at heliports&lt;br /&gt;
* Migrate installed aircraft packages, when migrating to the new stable catalog&lt;br /&gt;
* TerraSync: improve startup performance on Windows&lt;br /&gt;
&lt;br /&gt;
==2020.3.2==&lt;br /&gt;
* TerraSync waits for Models to be completely sync-ed, to avoid missing models when starting&lt;br /&gt;
* First-run screen: add a 'scroll to the bottom' hint icon&lt;br /&gt;
* Tides fixes from Erik Hofman&lt;br /&gt;
* Use nicer scrollbar for the launcher, fixes some issue with long aircraft lists&lt;br /&gt;
* Support Apt.dat v1000 comm frequencies&lt;br /&gt;
* Fix an ATC crash when repositioning&lt;br /&gt;
* Many translations fixes identified by Michael Danilov&lt;br /&gt;
* Greatly improve the Brazilian cerradio areas (near SBMQ)&lt;br /&gt;
* Russian translation updates&lt;br /&gt;
* Iceland materials fixes&lt;br /&gt;
&lt;br /&gt;
==2020.3.3==&lt;br /&gt;
* Fix accidental mouse picks while using a right-mouse-drag to look around&lt;br /&gt;
* Fix the download location we recommend in the 'setup root' dialog&lt;br /&gt;
&lt;br /&gt;
==2020.3.4==&lt;br /&gt;
* Handle more METAR strings correctly, including wind sensor failures&lt;br /&gt;
* Fix airmass velocity being applied to sub-models twice (eg, when dropping payloads in a cross-wind)&lt;br /&gt;
* Fix crash on shutdown in the properties code&lt;br /&gt;
* Spanish translation updates &lt;br /&gt;
* Disable flights to EGEL to avoid crashes in traffic code&lt;br /&gt;
&lt;br /&gt;
==2020.3.5==&lt;br /&gt;
* Change default Windows download location to %USERS%\FlightGear\Downloads, to avoid problems with Windows Defender blocking un-trusted applications from writing to Documents, which was the previous location.&lt;br /&gt;
* Fix a crash when returning to FlightGear from another application and scrolling or clicking&lt;br /&gt;
* Avoid crashing with UIUC-based aircraft such as the Wright Flyer&lt;br /&gt;
* Fix a crash on macOS when a joystick failed to open&lt;br /&gt;
* Update the macOS application icon&lt;br /&gt;
* Fix Nasal crash on reset&lt;br /&gt;
* Canvas: allow anisotropic filtering&lt;br /&gt;
* Larger, improved moon texture&lt;br /&gt;
* UFO speed goes to 11&lt;br /&gt;
* Fix taxiway markings disappearing in specific graphics settings&lt;br /&gt;
&lt;br /&gt;
==2020.3.6==&lt;br /&gt;
* Fixed crash downloading the default aircraft catalog&lt;br /&gt;
* Fix a hang starting at scenery in the ocean&lt;br /&gt;
* Fix incorrect sky &amp;amp; cockpit rendering with certain METAR values&lt;br /&gt;
* Add getting-started hints to the launcher (English only for now)&lt;br /&gt;
* Fix Shuttle AI scenarios&lt;br /&gt;
* Improvements to flight-planning mode&lt;br /&gt;
* Sun / moon scaling fixes&lt;br /&gt;
* Fix initial position of submodels&lt;br /&gt;
* macOS: warn if running with app translocation&lt;br /&gt;
* Windows: detect missing OpenGL drivers&lt;br /&gt;
* Fix UIUC FDM crashes&lt;br /&gt;
* Fix crash with invalid view numbers&lt;br /&gt;
* Catch FDM NaN errors more gracefully&lt;br /&gt;
* KAP-140 approach mode improvements&lt;br /&gt;
* Traffic+AI livery updates&lt;br /&gt;
&lt;br /&gt;
== 2020.3.7 ==&lt;br /&gt;
* Enable OSM2City buildings via TerraSync for the whole planet&lt;br /&gt;
* C172 bug-fixes and updates&lt;br /&gt;
* Improved regional material definitions for Europe, California&lt;br /&gt;
* Allow chat box to be re-positioned&lt;br /&gt;
* Fix crashes related to particle systems&lt;br /&gt;
* Fix selection of time-zone around Beijing&lt;br /&gt;
* Fix display of non-Latin1 strings in Canvas displays&lt;br /&gt;
* Fix Multi-player mode runway-start logic to select hold-short position correctly&lt;br /&gt;
* macOS: fix crash on text with certain fonts&lt;br /&gt;
* Fix launcher language selection when the UI language include a script specifier (eg zh-Hans-CN)&lt;br /&gt;
* Fix aircraft-id property when loading from a hangar ( https://sourceforge.net/p/flightgear/codetickets/2502/ )&lt;br /&gt;
* Improve checks for out-of-date Intel Graphics drivers on Windows&lt;br /&gt;
&lt;br /&gt;
== 2020.3.8 ==&lt;br /&gt;
* Fix behaviour of &amp;lt;code&amp;gt;&amp;lt;local&amp;gt;&amp;lt;/code&amp;gt; particle systems &lt;br /&gt;
* Fix autumn tree appearance&lt;br /&gt;
&lt;br /&gt;
== 2020.3.9 ==&lt;br /&gt;
* Fix crash in Swift&lt;br /&gt;
* Corrections to MP protocol timing&lt;br /&gt;
* Correct URL to FGData&lt;br /&gt;
* Fix bug in cache reload dialog&lt;br /&gt;
* Improvements to ATC dialog to display frequencies with 3 decimal places correctly&lt;br /&gt;
* Improve material definitions for Africa, Mediterranean regions&lt;br /&gt;
* Add updated ocean and water visual effects&lt;br /&gt;
&lt;br /&gt;
== 2020.3.10 ==&lt;br /&gt;
* Transponder: make standby mode work&lt;br /&gt;
* Launcher: pick up scenery and aircraft paths from the command line&lt;br /&gt;
* Launcher: store locations differently, to avoid problems when running multiple FlightGear versions and switching between them.&lt;br /&gt;
* Launcher: add 'restart on quit' option&lt;br /&gt;
* Fix NavCache errors loading ShapeFile data&lt;br /&gt;
* Fix NavCache errors when running multiple copies of FlightGear&lt;br /&gt;
&lt;br /&gt;
== 2020.3.11 ==&lt;br /&gt;
* Fix a crash introduced in 2020.3.10&lt;br /&gt;
* Improve error message when no aircraft search paths are available&lt;br /&gt;
* Fix a crash with misconfigured traffic taxi routes&lt;br /&gt;
* Update AI traffic schedules&lt;br /&gt;
&lt;br /&gt;
== 2020.3.12 ==&lt;br /&gt;
* Add aircraft directory name validation &lt;br /&gt;
* Add an extra step of antialiasing (8x)&lt;br /&gt;
* Add feature allowing aircraft to define custom fonts for osg::Text&lt;br /&gt;
* Add generic combined ALS procedural lights and Compositor lights&lt;br /&gt;
* Add new regional materials for Australia&lt;br /&gt;
* Fix Basic Weather producing invalid pressure altitudes&lt;br /&gt;
* Fix bug in path searching for previews&lt;br /&gt;
* Fix bug in sound system when approaching max-dist range&lt;br /&gt;
* Fix crashes after reset&lt;br /&gt;
* Fix crash when AI aircraft has invalid destination runway&lt;br /&gt;
* Fix Mapstructure error in RTE layer&lt;br /&gt;
* Fix &amp;lt;code&amp;gt;--view-offset&amp;lt;/code&amp;gt; to use the correct property&lt;br /&gt;
* HUD: make vertical gauges look the same as horizontal ones&lt;br /&gt;
* Improved Russian and Spanish translations&lt;br /&gt;
* Miscellaneous improvements to weather dialog&lt;br /&gt;
* Property browser: display values for folders in verbose mode &lt;br /&gt;
* Route manager: select correct waypoint when duplicate waypoints exist&lt;br /&gt;
* Update AI traffic schedules and add new AI models&lt;br /&gt;
&lt;br /&gt;
== 2020.3.13 ==&lt;br /&gt;
* Fix for the disappearing MP pilot list&lt;br /&gt;
* Fix JSBsim linear actuators behaving badly in certain conditions&lt;br /&gt;
&lt;br /&gt;
== 2020.3.14 ==&lt;br /&gt;
* Support for add-on paths&lt;br /&gt;
* Instant audio queue&lt;br /&gt;
* Allow canvas dialogs to not grab focus away from FG (more like how focus in PUI dialogs behaves)&lt;br /&gt;
&lt;br /&gt;
== 2020.3.15 ==&lt;br /&gt;
* Fix radio audio morse issue.&lt;br /&gt;
&lt;br /&gt;
== 2020.3.16 ==&lt;br /&gt;
* Fix audio indent issue.&lt;br /&gt;
&lt;br /&gt;
== 2020.3.17 ==&lt;br /&gt;
* Navradio: disable low-pass filter when changing selected freq or leaving GPS slave mode. When the selected frequency is changed or when leaving GPS slave mode, disable the low-pass filter applied to signal quality.&lt;br /&gt;
* Navradio: fix regression and optimize older code. Fix a little regression introduced in previous commit. Add: changing the standby frequency disabled the low-pass filter for the next call to updateReceiver(); this must happen when the selected frequency is changed but not when the standby frequency is changed.&lt;br /&gt;
* AP input: add property-path support to Inputs. Allow making the AP source indirect (via a string property), so that the actual source property can be configured or adjusted from a -set.xml, or at runtime.&lt;br /&gt;
* Replace displaying in Launcher `--on-ground=false` to `--in-air` for on final. The option`--on-ground=false` doesn't exist which can be misleading.&lt;br /&gt;
&lt;br /&gt;
== 2020.3.18 == &lt;br /&gt;
&amp;lt;!-- Just for placeholder, someone will need to fix this --&amp;gt;&lt;br /&gt;
* Added photoscenery capability.&lt;br /&gt;
* New basic autopilot system.&lt;br /&gt;
* Fix crash with a 'between' type constraint in Navigraph procedure files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2020.3.19 == &lt;br /&gt;
* Add AI submodel collision&lt;br /&gt;
* Fix crash with invalid METAR strings&lt;br /&gt;
* Fix rendering bug where OSM buildings appeared blue under certain graphics settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear changelogs‎]]&lt;br /&gt;
[[pl:Changelog_2020.3]]&lt;br /&gt;
[[Zh:2020.3]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140506</id>
		<title>User:Ranguli</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140506"/>
		<updated>2024-09-22T11:41:10Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there,&lt;br /&gt;
&lt;br /&gt;
I'm a fan of Flight Gear and have joined the Wiki to tidy things up as I come across them. If I don't fix them then and there on the spot, they'll go into the list below.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:30, 20 August 2020 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a list of pull requests and bug reports / code tickets I've filed in order to keep track of what I'm working on as well as the status of bugs.&lt;br /&gt;
&lt;br /&gt;
== Merge Requests ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Progress&lt;br /&gt;
!Merge Request&lt;br /&gt;
!Date Created&lt;br /&gt;
!Repository&lt;br /&gt;
!Ticket&lt;br /&gt;
!Title&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=100}}&lt;br /&gt;
|#331&lt;br /&gt;
|Sept. 6th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Fix OSM imagery in the canvas map (fixes #2912)&lt;br /&gt;
|Merged without changes&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=80}}&lt;br /&gt;
|#332&lt;br /&gt;
|Sept. 6th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Remove OpenAIP map support from Canvas Map&lt;br /&gt;
|Blocked, awaiting review from FG1000 maintainer&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=100}}&lt;br /&gt;
|#333&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Fix or remove broken Phi map layers&lt;br /&gt;
|Merged without changes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bug Reports ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Bug Report&lt;br /&gt;
!Date Created&lt;br /&gt;
!Title&lt;br /&gt;
!Status&lt;br /&gt;
!Remarks&lt;br /&gt;
!Assignee&lt;br /&gt;
|-&lt;br /&gt;
|{{Issue|2917}}&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|Saitek Pro rudder pedals not working on next branch&lt;br /&gt;
|Limbo (Sept. 16th 2024)&lt;br /&gt;
|&lt;br /&gt;
|No-one, waiting for a reply from&amp;lt;code&amp;gt;jsb1658&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{{Issue|2916}}&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|Missing Qt dependency should be caught at compile-time instead of run-time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{Ticket|2914}}&lt;br /&gt;
|Sept. 5th 2024&lt;br /&gt;
|Auto-hide menu bar requires mouse click to hide&lt;br /&gt;
|Unacknowledged. This may become irrelevant with the migration away from PUI.&lt;br /&gt;
|&lt;br /&gt;
|No-one&lt;br /&gt;
|-&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Sept. 5th 2024&lt;br /&gt;
|Breaking OpenAIP API changes causing issues in Canvas Map and Phi&lt;br /&gt;
|I made PRs to fix the bugs. Two are merged, one is blocked awaiting review from the FG1000 maintainer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Plan ==&lt;br /&gt;
Some hypothetical or experimental development ideas for improving flightgear:&lt;br /&gt;
&lt;br /&gt;
- Port the launcher to Qt 6&lt;br /&gt;
&lt;br /&gt;
- Work on Nasal intepreter, Nasal specification, grammar, and tooling&lt;br /&gt;
&lt;br /&gt;
- Migrate simgear and flightgear to use vcpkg instead of dlls from a repo&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Contributions ==&lt;br /&gt;
=== House-keeping ===&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|100}} Update the article on the [[AC3D_file_format]]&lt;br /&gt;
# {{progressbar|100}} Mark [[FG_Interface_schematics_and_PCBs]] incomplete&lt;br /&gt;
# {{progressbar|100}} Mark [[Deperdussin_Monocoque]] as stub&lt;br /&gt;
# {{progressbar|100}} Mark [[Schleicher_ASK_13]] as stub&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Technik_Museum_Speyer]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[ATR_72-500]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Blender]] &lt;br /&gt;
# {{progressbar|70}} Cleanup [[AC3D]] needs software infobox&lt;br /&gt;
# {{progressbar|50}} Cleanup of [[Flying_Warbirds]]&lt;br /&gt;
# {{progressbar|50}} Cleanup [[Altitude]]&lt;br /&gt;
# {{progressbar|10}} Flesh out [[QNH]]&lt;br /&gt;
# {{progressbar|0}} Mark [[KFreeFlight]] as abandoned/old&lt;br /&gt;
# {{progressbar|0}} Cleanup of [[Flight_rules]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_information_resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Avionics_Development_Resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_Manuals]]&lt;br /&gt;
# {{progressbar|0}} [[SVG]] fix quote syntax&lt;br /&gt;
# {{progressbar|0}} [[Kelpie_Flight_Planner]] needs software infobox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Screenshot Improvements ===&lt;br /&gt;
Quite a number of articles have screenshots which are 10 years old or more! While their historical staying power is impressive, their lower resolution and old graphics don't quite live up to modern expectations. Here are some articles I intend to take better screenshots for:&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|0}} [[Flying_Warbirds]] &lt;br /&gt;
&lt;br /&gt;
== Larger Projects  ==&lt;br /&gt;
# {{progressbar|100}} Rewrite [[Mailing lists]] article&lt;br /&gt;
# {{progressbar|50}} [[Howto:Working_with_the_AC3D_file_format_in_Blender]]  This article needs new sections about exporting, saving, caveats, etc.&lt;br /&gt;
# {{progressbar|0}} [[User:Ranguli/List of file formats]] This article needs a good deal of cleanup, but could also be a ton of work depending on how far I'd want to take documenting file formats used by FlightGear.&lt;br /&gt;
# {{progressbar|0}} [[Howto:Edit_a_livery]] unfortunately this article is really a &amp;quot;How to draw an owl&amp;quot; type of tutorial, and was of no use to me while trying to learn how to work with liveries. Once I get a better understanding of the concepts personally I'd like to redo this from the ground up.&lt;br /&gt;
# FlightGear Academy articles that need heavy reformatting:&lt;br /&gt;
## {{progressbar|100}} [[Normal_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Emergency_Approach]] &lt;br /&gt;
## {{progressbar|0}} [[Emergency_Descent]]&lt;br /&gt;
## {{progressbar|0}} [[S-Turns]]&lt;br /&gt;
## {{progressbar|0}} [[Go_Around]]&lt;br /&gt;
## {{progressbar|0}} [[Rectangular_Course]]&lt;br /&gt;
## {{progressbar|0}} [[Turns_About_a_Point]]&lt;br /&gt;
## {{progressbar|0}} [[Take_Off]]&lt;br /&gt;
## {{progressbar|0}} [[Stalls_and_Spin_Awareness]]&lt;br /&gt;
## {{progressbar|0}} [[Soft_Field_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Slow_Flight_(Minimum_Controllable_Airspeed)]]&lt;br /&gt;
## {{progressbar|0}} [[Short_Field_Landing]]&lt;br /&gt;
# {{progressbar|0}} [[JSBSim_Commander]] add software infobox and mark as abandoned&lt;br /&gt;
# {{progressbar|0}} [[Conversion]] add some tables, formulas, rename to Aeronautical conversions&lt;br /&gt;
# {{progressbar|0}} [[Airports.txt]]&lt;br /&gt;
# {{progressbar|0}} [[Howto:Create_WebPanel_instrument]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear (WIP Article) ==&lt;br /&gt;
&lt;br /&gt;
== Why this article exists (and why good build documentation is paramount) ==&lt;br /&gt;
The long-term health and growth of open-source projects is directly tied to the size and quality of the community that is built around it. One of the most important groups of people within these communities are developers. Developers are like the worker bees of a bee colony, and are the lifeblood of a project. Much like the world-wide shortage of bees, there are more open-source projects needing help than there are developers to help them. So it stands to reason that it is in any open-source projects best interest to retain the developers that take an interest in the project. The art of making developers lives easier is called '''developer experience''' (DX), and projects may live or die by it, with or without knowing it was a factor. Quite simply, developers who have a bad experience with a project will not contribute. Can you blame them?&lt;br /&gt;
&lt;br /&gt;
The first place a developer is liable to have a bad experience with a project (and then move on) is when they first come face to face with documentation. The first impression a developer will get of a project will be from its README or equivalent documentation, particularly, the instructions for '''building the software'''. Many a developer has been eager to contribute to a project only to find a lack of documentation, and (rightfully so), moved on to other, less frustrating pursuits in the open-source world.&lt;br /&gt;
&lt;br /&gt;
There are three guiding principles for not sending developers for the hills:&lt;br /&gt;
&lt;br /&gt;
# There is '''one''' way to build the project, using '''one''' build system, following '''one''' set of instructions, that are easy to follow and consist of only a few steps&lt;br /&gt;
# The build process, code quality, and quality of documentation all work together to provide a '''low-friction''', '''low barrier to entry''' for '''new contributors'''.&lt;br /&gt;
# If a developer has a bad experience, '''that is a bug.'''&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear on Ubuntu and derivatives ==&lt;br /&gt;
FlightGear requires a large number of dependencies to build. In a terminal, you can install all necessary dependencies by using the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SimGear ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Dependency&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|Boost&lt;br /&gt;
|libboost1.74-dev&lt;br /&gt;
|libboost1.83-dev&lt;br /&gt;
|-&lt;br /&gt;
|Open Audio Library (OpenAL)&lt;br /&gt;
|libopenal-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenSceneGraph (OSG)&lt;br /&gt;
|libopenscenegraph-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|liblzma-dev&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
24.04LTS&lt;br /&gt;
 sudo apt install git gcc g++ build-essential cmake &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
22.04LTSFlightGear also has a dependency on another part of the FlightGear project, [[SimGear]]. So in order to build FlightGear we must first build SimGear.&lt;br /&gt;
&lt;br /&gt;
Obtain the SimGear source code by cloning from [[Git]]:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://git.code.sf.net/p/flightgear/simgear&amp;lt;/nowiki&amp;gt; flightgear-simgear&lt;br /&gt;
Next, follow the standard procedure for building a CMake project:&lt;br /&gt;
 cd flightgear-simgear&lt;br /&gt;
 &lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake .. -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
 &lt;br /&gt;
 make -jX # Where X is the number of cores on your system&lt;br /&gt;
 &lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear ==&lt;br /&gt;
DRAFT&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Dependency&lt;br /&gt;
!Hard dependency?&lt;br /&gt;
!Required for&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|libplib&lt;br /&gt;
|Yes&lt;br /&gt;
|Legacy joystick support&lt;br /&gt;
|&amp;lt;code&amp;gt;libplib-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|libudev&lt;br /&gt;
|Yes&lt;br /&gt;
|Peripheral / input support&lt;br /&gt;
|&amp;lt;code&amp;gt;libudev-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Base&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtbase5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 SVG&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;libqt5svg5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Declarative&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtdeclarative5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev-tools, qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Quick&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtquickcontrols2-5-dev&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;qml-module-qtquick2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 QML&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qml-module-qtquick-controls2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|libevent-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|Yes&lt;br /&gt;
|File compression/decompression&lt;br /&gt;
|&amp;lt;code&amp;gt;zlib1g-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|&amp;lt;code&amp;gt;libdbus-1-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenXR&lt;br /&gt;
|No&lt;br /&gt;
|Virtual Reality (VR) support&lt;br /&gt;
|&amp;lt;code&amp;gt;libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
qml-module-qtquick2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install libplib-dev libudev-dev qtbase5-dev libqt5svg5-dev qtdeclarative5-dev qttools5-dev-tools qttools5-dev libevent-devlibdbus-1-dev libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libcurl4-openssl-dev  libavcodec-dev&lt;br /&gt;
&lt;br /&gt;
== Other notes ==&lt;br /&gt;
# [https://web.archive.org/web/20170118212558/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Checklist/TM_1-1520-240-CL.pdf Chinook Operators Checklist TM 1-1520-240-CL]&lt;br /&gt;
# Incredibly useful, Chinook CH-47D manual: [https://web.archive.org/web/20170118213215/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Manual/TM_1-1520-240-10.pdf Chinook Operators Manual TM 1-1520-240-10]&lt;br /&gt;
# [https://web.archive.org/web/20170118215340/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Maintenance_Test_Flight_Manual/TM_1-1520-240-MTF.pdf Chinook Maintenance Test Flight Manual TM 1-1520-240-MTF]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Ranguli/Nasal_Linter&amp;diff=140463</id>
		<title>Ranguli/Nasal Linter</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Ranguli/Nasal_Linter&amp;diff=140463"/>
		<updated>2024-09-16T13:58:40Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Created page with &amp;quot;== List of things that a Nasal linter should address: ==   - Global variables that could be locally scoped insteadh   &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; statement outside of a code block  - Empty code blocks inside of &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;elsif&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;else,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;while,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; statements, as well as empty functions.  - Certain statements that don't actually do anything:  x;  x == x;    - Variables that are re-declared in the same scope  - Variables that...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of things that a Nasal linter should address: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Global variables that could be locally scoped insteadh &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; statement outside of a code block&lt;br /&gt;
&lt;br /&gt;
- Empty code blocks inside of &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;elsif&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;else,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;while,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; statements, as well as empty functions.&lt;br /&gt;
&lt;br /&gt;
- Certain statements that don't actually do anything:&lt;br /&gt;
 x;&lt;br /&gt;
 x == x;&lt;br /&gt;
  &lt;br /&gt;
- Variables that are re-declared in the same scope&lt;br /&gt;
&lt;br /&gt;
- Variables that are unused&lt;br /&gt;
&lt;br /&gt;
- Variables that are used but not declared.&lt;br /&gt;
&lt;br /&gt;
- Disallow automatic semi-colon insertion:&lt;br /&gt;
 x = func(y) {&lt;br /&gt;
     y = y + 1;&lt;br /&gt;
     return # It's legal but bug-prone to leave a semi-colon off of the last line in a code block&lt;br /&gt;
 }&lt;br /&gt;
- Too many function arguments&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140462</id>
		<title>User:Ranguli</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140462"/>
		<updated>2024-09-16T13:36:45Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there,&lt;br /&gt;
&lt;br /&gt;
I'm a fan of Flight Gear and have joined the Wiki to tidy things up as I come across them. If I don't fix them then and there on the spot, they'll go into the list below.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:30, 20 August 2020 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a list of pull requests and bug reports / code tickets I've filed in order to keep track of what I'm working on as well as the status of bugs.&lt;br /&gt;
&lt;br /&gt;
== Merge Requests ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Progress&lt;br /&gt;
!Merge Request&lt;br /&gt;
!Date Created&lt;br /&gt;
!Repository&lt;br /&gt;
!Ticket&lt;br /&gt;
!Title&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=100}}&lt;br /&gt;
|#331&lt;br /&gt;
|Sept. 6th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Fix OSM imagery in the canvas map (fixes #2912)&lt;br /&gt;
|Merged without changes&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=80}}&lt;br /&gt;
|#332&lt;br /&gt;
|Sept. 6th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Remove OpenAIP map support from Canvas Map&lt;br /&gt;
|Blocked, awaiting review from FG1000 maintainer&lt;br /&gt;
|-&lt;br /&gt;
|{{Progressbar|percentage=100}}&lt;br /&gt;
|#333&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|FGData&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Fix or remove broken Phi map layers&lt;br /&gt;
|Merged without changes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bug Reports ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Bug Report&lt;br /&gt;
!Date Created&lt;br /&gt;
!Title&lt;br /&gt;
!Status&lt;br /&gt;
!Remarks&lt;br /&gt;
!Assignee&lt;br /&gt;
|-&lt;br /&gt;
|{{Issue|2917}}&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|Saitek Pro rudder pedals not working on next branch&lt;br /&gt;
|Limbo (Sept. 16th 2024)&lt;br /&gt;
|&lt;br /&gt;
|No-one, waiting for a reply from&amp;lt;code&amp;gt;jsb1658&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{{Issue|2916}}&lt;br /&gt;
|Sept. 7th 2024&lt;br /&gt;
|Missing Qt dependency should be caught at compile-time instead of run-time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{Ticket|2914}}&lt;br /&gt;
|Sept. 5th 2024&lt;br /&gt;
|Auto-hide menu bar requires mouse click to hide&lt;br /&gt;
|Unacknowledged. This may become irrelevant with the migration away from PUI.&lt;br /&gt;
|&lt;br /&gt;
|No-one&lt;br /&gt;
|-&lt;br /&gt;
|{{Ticket|2913}}&lt;br /&gt;
|Sept. 5th 2024&lt;br /&gt;
|Breaking OpenAIP API changes causing issues in Canvas Map and Phi&lt;br /&gt;
|I made PRs to fix the bugs. Two are merged, one is blocked awaiting review from the FG1000 maintainer.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Plan ==&lt;br /&gt;
Some hypothetical or experimental development ideas for improving flightgear:&lt;br /&gt;
&lt;br /&gt;
- Port the launcher to Qt 6&lt;br /&gt;
&lt;br /&gt;
- Work on Nasal intepreter, Nasal specification, grammar, and tooling&lt;br /&gt;
&lt;br /&gt;
- Migrate simgear and flightgear to use vcpkg instead of dlls from a repo&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Contributions ==&lt;br /&gt;
=== House-keeping ===&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|100}} Update the article on the [[AC3D_file_format]]&lt;br /&gt;
# {{progressbar|100}} Mark [[FG_Interface_schematics_and_PCBs]] incomplete&lt;br /&gt;
# {{progressbar|100}} Mark [[Deperdussin_Monocoque]] as stub&lt;br /&gt;
# {{progressbar|100}} Mark [[Schleicher_ASK_13]] as stub&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Technik_Museum_Speyer]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[ATR_72-500]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Blender]] &lt;br /&gt;
# {{progressbar|70}} Cleanup [[AC3D]] needs software infobox&lt;br /&gt;
# {{progressbar|50}} Cleanup of [[Flying_Warbirds]]&lt;br /&gt;
# {{progressbar|50}} Cleanup [[Altitude]]&lt;br /&gt;
# {{progressbar|10}} Flesh out [[QNH]]&lt;br /&gt;
# {{progressbar|0}} Mark [[KFreeFlight]] as abandoned/old&lt;br /&gt;
# {{progressbar|0}} Cleanup of [[Flight_rules]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_information_resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Avionics_Development_Resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_Manuals]]&lt;br /&gt;
# {{progressbar|0}} [[SVG]] fix quote syntax&lt;br /&gt;
# {{progressbar|0}} [[Kelpie_Flight_Planner]] needs software infobox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Screenshot Improvements ===&lt;br /&gt;
Quite a number of articles have screenshots which are 10 years old or more! While their historical staying power is impressive, their lower resolution and old graphics don't quite live up to modern expectations. Here are some articles I intend to take better screenshots for:&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|0}} [[Flying_Warbirds]] &lt;br /&gt;
&lt;br /&gt;
== Larger Projects  ==&lt;br /&gt;
# {{progressbar|100}} Rewrite [[Mailing lists]] article&lt;br /&gt;
# {{progressbar|50}} [[Howto:Working_with_the_AC3D_file_format_in_Blender]]  This article needs new sections about exporting, saving, caveats, etc.&lt;br /&gt;
# {{progressbar|0}} [[User:Ranguli/List of file formats]] This article needs a good deal of cleanup, but could also be a ton of work depending on how far I'd want to take documenting file formats used by FlightGear.&lt;br /&gt;
# {{progressbar|0}} [[Howto:Edit_a_livery]] unfortunately this article is really a &amp;quot;How to draw an owl&amp;quot; type of tutorial, and was of no use to me while trying to learn how to work with liveries. Once I get a better understanding of the concepts personally I'd like to redo this from the ground up.&lt;br /&gt;
# FlightGear Academy articles that need heavy reformatting:&lt;br /&gt;
## {{progressbar|100}} [[Normal_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Emergency_Approach]] &lt;br /&gt;
## {{progressbar|0}} [[Emergency_Descent]]&lt;br /&gt;
## {{progressbar|0}} [[S-Turns]]&lt;br /&gt;
## {{progressbar|0}} [[Go_Around]]&lt;br /&gt;
## {{progressbar|0}} [[Rectangular_Course]]&lt;br /&gt;
## {{progressbar|0}} [[Turns_About_a_Point]]&lt;br /&gt;
## {{progressbar|0}} [[Take_Off]]&lt;br /&gt;
## {{progressbar|0}} [[Stalls_and_Spin_Awareness]]&lt;br /&gt;
## {{progressbar|0}} [[Soft_Field_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Slow_Flight_(Minimum_Controllable_Airspeed)]]&lt;br /&gt;
## {{progressbar|0}} [[Short_Field_Landing]]&lt;br /&gt;
# {{progressbar|0}} [[JSBSim_Commander]] add software infobox and mark as abandoned&lt;br /&gt;
# {{progressbar|0}} [[Conversion]] add some tables, formulas, rename to Aeronautical conversions&lt;br /&gt;
# {{progressbar|0}} [[Airports.txt]]&lt;br /&gt;
# {{progressbar|0}} [[Howto:Create_WebPanel_instrument]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear (WIP Article) ==&lt;br /&gt;
&lt;br /&gt;
== Why this article exists (and why good build documentation is paramount) ==&lt;br /&gt;
The long-term health and growth of open-source projects is directly tied to the size and quality of the community that is built around it. One of the most important groups of people within these communities are developers. Developers are like the worker bees of a bee colony, and are the lifeblood of a project. Much like the world-wide shortage of bees, there are more open-source projects needing help than there are developers to help them. So it stands to reason that it is in any open-source projects best interest to retain the developers that take an interest in the project. The art of making developers lives easier is called '''developer experience''' (DX), and projects may live or die by it, with or without knowing it was a factor. Quite simply, developers who have a bad experience with a project will not contribute. Can you blame them?&lt;br /&gt;
&lt;br /&gt;
The first place a developer is liable to have a bad experience with a project (and then move on) is when they first come face to face with documentation. The first impression a developer will get of a project will be from its README or equivalent documentation, particularly, the instructions for '''building the software'''. Many a developer has been eager to contribute to a project only to find a lack of documentation, and (rightfully so), moved on to other, less frustrating pursuits in the open-source world.&lt;br /&gt;
&lt;br /&gt;
There are three guiding principles for not sending developers for the hills:&lt;br /&gt;
&lt;br /&gt;
# There is '''one''' way to build the project, using '''one''' build system, following '''one''' set of instructions, that are easy to follow and consist of only a few steps&lt;br /&gt;
# The build process, code quality, and quality of documentation all work together to provide a '''low-friction''', '''low barrier to entry''' for '''new contributors'''.&lt;br /&gt;
# If a developer has a bad experience, '''that is a bug.'''&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear on Ubuntu and derivatives ==&lt;br /&gt;
FlightGear requires a large number of dependencies to build. In a terminal, you can install all necessary dependencies by using the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SimGear ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Dependency&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|Boost&lt;br /&gt;
|libboost1.74-dev&lt;br /&gt;
|libboost1.83-dev&lt;br /&gt;
|-&lt;br /&gt;
|Open Audio Library (OpenAL)&lt;br /&gt;
|libopenal-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenSceneGraph (OSG)&lt;br /&gt;
|libopenscenegraph-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|liblzma-dev&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
24.04LTS&lt;br /&gt;
 sudo apt install git gcc g++ build-essential cmake &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
22.04LTSFlightGear also has a dependency on another part of the FlightGear project, [[SimGear]]. So in order to build FlightGear we must first build SimGear.&lt;br /&gt;
&lt;br /&gt;
Obtain the SimGear source code by cloning from [[Git]]:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://git.code.sf.net/p/flightgear/simgear&amp;lt;/nowiki&amp;gt; flightgear-simgear&lt;br /&gt;
Next, follow the standard procedure for building a CMake project:&lt;br /&gt;
 cd flightgear-simgear&lt;br /&gt;
 &lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake .. -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
 &lt;br /&gt;
 make -jX # Where X is the number of cores on your system&lt;br /&gt;
 &lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear ==&lt;br /&gt;
DRAFT&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Dependency&lt;br /&gt;
!Hard dependency?&lt;br /&gt;
!Required for&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|libplib&lt;br /&gt;
|Yes&lt;br /&gt;
|Legacy joystick support&lt;br /&gt;
|&amp;lt;code&amp;gt;libplib-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|libudev&lt;br /&gt;
|Yes&lt;br /&gt;
|Peripheral / input support&lt;br /&gt;
|&amp;lt;code&amp;gt;libudev-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Base&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtbase5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 SVG&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;libqt5svg5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Declarative&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtdeclarative5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev-tools, qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Quick&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtquickcontrols2-5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 QML&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qml-module-qtquick-controls2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|libevent-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|Yes&lt;br /&gt;
|File compression/decompression&lt;br /&gt;
|&amp;lt;code&amp;gt;zlib1g-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|&amp;lt;code&amp;gt;libdbus-1-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenXR&lt;br /&gt;
|No&lt;br /&gt;
|Virtual Reality (VR) support&lt;br /&gt;
|&amp;lt;code&amp;gt;libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install libplib-dev libudev-dev qtbase5-dev libqt5svg5-dev qtdeclarative5-dev qttools5-dev-tools qttools5-dev libevent-devlibdbus-1-dev libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libcurl4-openssl-dev  libavcodec-dev&lt;br /&gt;
&lt;br /&gt;
== Other notes ==&lt;br /&gt;
# [https://web.archive.org/web/20170118212558/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Checklist/TM_1-1520-240-CL.pdf Chinook Operators Checklist TM 1-1520-240-CL]&lt;br /&gt;
# Incredibly useful, Chinook CH-47D manual: [https://web.archive.org/web/20170118213215/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Manual/TM_1-1520-240-10.pdf Chinook Operators Manual TM 1-1520-240-10]&lt;br /&gt;
# [https://web.archive.org/web/20170118215340/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Maintenance_Test_Flight_Manual/TM_1-1520-240-MTF.pdf Chinook Maintenance Test Flight Manual TM 1-1520-240-MTF]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140460</id>
		<title>User:Ranguli</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140460"/>
		<updated>2024-09-15T16:20:42Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there,&lt;br /&gt;
&lt;br /&gt;
I'm a fan of Flight Gear and have joined the Wiki to tidy things up as I come across them. If I don't fix them then and there on the spot, they'll go into the list below.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:30, 20 August 2020 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Plan ==&lt;br /&gt;
Some hypothetical or experimental development ideas for improving flightgear:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Port the launcher to Qt 6&lt;br /&gt;
&lt;br /&gt;
- Work on Nasal intepreter, Nasal specification, grammar, and tooling&lt;br /&gt;
&lt;br /&gt;
- Migrate simgear and flightgear to use vcpkg instead of dlls from a repo&lt;br /&gt;
&lt;br /&gt;
== Small Projects ==&lt;br /&gt;
=== House-keeping ===&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|100}} Update the article on the [[AC3D_file_format]]&lt;br /&gt;
# {{progressbar|100}} Mark [[FG_Interface_schematics_and_PCBs]] incomplete&lt;br /&gt;
# {{progressbar|100}} Mark [[Deperdussin_Monocoque]] as stub&lt;br /&gt;
# {{progressbar|100}} Mark [[Schleicher_ASK_13]] as stub&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Technik_Museum_Speyer]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[ATR_72-500]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Blender]] &lt;br /&gt;
# {{progressbar|70}} Cleanup [[AC3D]] needs software infobox&lt;br /&gt;
# {{progressbar|50}} Cleanup of [[Flying_Warbirds]]&lt;br /&gt;
# {{progressbar|50}} Cleanup [[Altitude]]&lt;br /&gt;
# {{progressbar|10}} Flesh out [[QNH]]&lt;br /&gt;
# {{progressbar|0}} Mark [[KFreeFlight]] as abandoned/old&lt;br /&gt;
# {{progressbar|0}} Cleanup of [[Flight_rules]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_information_resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Avionics_Development_Resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_Manuals]]&lt;br /&gt;
# {{progressbar|0}} [[SVG]] fix quote syntax&lt;br /&gt;
# {{progressbar|0}} [[Kelpie_Flight_Planner]] needs software infobox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Screenshot Improvements ===&lt;br /&gt;
Quite a number of articles have screenshots which are 10 years old or more! While their historical staying power is impressive, their lower resolution and old graphics don't quite live up to modern expectations. Here are some articles I intend to take better screenshots for:&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|0}} [[Flying_Warbirds]] &lt;br /&gt;
&lt;br /&gt;
== Larger Projects  ==&lt;br /&gt;
# {{progressbar|100}} Rewrite [[Mailing lists]] article&lt;br /&gt;
# {{progressbar|50}} [[Howto:Working_with_the_AC3D_file_format_in_Blender]]  This article needs new sections about exporting, saving, caveats, etc.&lt;br /&gt;
# {{progressbar|0}} [[User:Ranguli/List of file formats]] This article needs a good deal of cleanup, but could also be a ton of work depending on how far I'd want to take documenting file formats used by FlightGear.&lt;br /&gt;
# {{progressbar|0}} [[Howto:Edit_a_livery]] unfortunately this article is really a &amp;quot;How to draw an owl&amp;quot; type of tutorial, and was of no use to me while trying to learn how to work with liveries. Once I get a better understanding of the concepts personally I'd like to redo this from the ground up.&lt;br /&gt;
# FlightGear Academy articles that need heavy reformatting:&lt;br /&gt;
## {{progressbar|100}} [[Normal_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Emergency_Approach]] &lt;br /&gt;
## {{progressbar|0}} [[Emergency_Descent]]&lt;br /&gt;
## {{progressbar|0}} [[S-Turns]]&lt;br /&gt;
## {{progressbar|0}} [[Go_Around]]&lt;br /&gt;
## {{progressbar|0}} [[Rectangular_Course]]&lt;br /&gt;
## {{progressbar|0}} [[Turns_About_a_Point]]&lt;br /&gt;
## {{progressbar|0}} [[Take_Off]]&lt;br /&gt;
## {{progressbar|0}} [[Stalls_and_Spin_Awareness]]&lt;br /&gt;
## {{progressbar|0}} [[Soft_Field_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Slow_Flight_(Minimum_Controllable_Airspeed)]]&lt;br /&gt;
## {{progressbar|0}} [[Short_Field_Landing]]&lt;br /&gt;
# {{progressbar|0}} [[JSBSim_Commander]] add software infobox and mark as abandoned&lt;br /&gt;
# {{progressbar|0}} [[Conversion]] add some tables, formulas, rename to Aeronautical conversions&lt;br /&gt;
# {{progressbar|0}} [[Airports.txt]]&lt;br /&gt;
# {{progressbar|0}} [[Howto:Create_WebPanel_instrument]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear (WIP Article) ==&lt;br /&gt;
&lt;br /&gt;
== Why this article exists (and why good build documentation is paramount) ==&lt;br /&gt;
The long-term health and growth of open-source projects is directly tied to the size and quality of the community that is built around it. One of the most important groups of people within these communities are developers. Developers are like the worker bees of a bee colony, and are the lifeblood of a project. Much like the world-wide shortage of bees, there are more open-source projects needing help than there are developers to help them. So it stands to reason that it is in any open-source projects best interest to retain the developers that take an interest in the project. The art of making developers lives easier is called '''developer experience''' (DX), and projects may live or die by it, with or without knowing it was a factor. Quite simply, developers who have a bad experience with a project will not contribute. Can you blame them?&lt;br /&gt;
&lt;br /&gt;
The first place a developer is liable to have a bad experience with a project (and then move on) is when they first come face to face with documentation. The first impression a developer will get of a project will be from its README or equivalent documentation, particularly, the instructions for '''building the software'''. Many a developer has been eager to contribute to a project only to find a lack of documentation, and (rightfully so), moved on to other, less frustrating pursuits in the open-source world.&lt;br /&gt;
&lt;br /&gt;
There are three guiding principles for not sending developers for the hills:&lt;br /&gt;
&lt;br /&gt;
# There is '''one''' way to build the project, using '''one''' build system, following '''one''' set of instructions, that are easy to follow and consist of only a few steps&lt;br /&gt;
# The build process, code quality, and quality of documentation all work together to provide a '''low-friction''', '''low barrier to entry''' for '''new contributors'''.&lt;br /&gt;
# If a developer has a bad experience, '''that is a bug.'''&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear on Ubuntu and derivatives ==&lt;br /&gt;
FlightGear requires a large number of dependencies to build. In a terminal, you can install all necessary dependencies by using the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SimGear ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Dependency&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|Boost&lt;br /&gt;
|libboost1.74-dev&lt;br /&gt;
|libboost1.83-dev&lt;br /&gt;
|-&lt;br /&gt;
|Open Audio Library (OpenAL)&lt;br /&gt;
|libopenal-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenSceneGraph (OSG)&lt;br /&gt;
|libopenscenegraph-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|liblzma-dev&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
24.04LTS&lt;br /&gt;
 sudo apt install git gcc g++ build-essential cmake &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
22.04LTSFlightGear also has a dependency on another part of the FlightGear project, [[SimGear]]. So in order to build FlightGear we must first build SimGear.&lt;br /&gt;
&lt;br /&gt;
Obtain the SimGear source code by cloning from [[Git]]:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://git.code.sf.net/p/flightgear/simgear&amp;lt;/nowiki&amp;gt; flightgear-simgear&lt;br /&gt;
Next, follow the standard procedure for building a CMake project:&lt;br /&gt;
 cd flightgear-simgear&lt;br /&gt;
 &lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake .. -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
 &lt;br /&gt;
 make -jX # Where X is the number of cores on your system&lt;br /&gt;
 &lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear ==&lt;br /&gt;
DRAFT&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Dependency&lt;br /&gt;
!Hard dependency?&lt;br /&gt;
!Required for&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|libplib&lt;br /&gt;
|Yes&lt;br /&gt;
|Legacy joystick support&lt;br /&gt;
|&amp;lt;code&amp;gt;libplib-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|libudev&lt;br /&gt;
|Yes&lt;br /&gt;
|Peripheral / input support&lt;br /&gt;
|&amp;lt;code&amp;gt;libudev-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Base&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtbase5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 SVG&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;libqt5svg5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Declarative&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtdeclarative5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev-tools, qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Quick&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtquickcontrols2-5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 QML&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qml-module-qtquick-controls2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|libevent-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|Yes&lt;br /&gt;
|File compression/decompression&lt;br /&gt;
|&amp;lt;code&amp;gt;zlib1g-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|&amp;lt;code&amp;gt;libdbus-1-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenXR&lt;br /&gt;
|No&lt;br /&gt;
|Virtual Reality (VR) support&lt;br /&gt;
|&amp;lt;code&amp;gt;libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install libplib-dev libudev-dev qtbase5-dev libqt5svg5-dev qtdeclarative5-dev qttools5-dev-tools qttools5-dev libevent-devlibdbus-1-dev libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libcurl4-openssl-dev  libavcodec-dev&lt;br /&gt;
&lt;br /&gt;
== Other notes ==&lt;br /&gt;
# [https://web.archive.org/web/20170118212558/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Checklist/TM_1-1520-240-CL.pdf Chinook Operators Checklist TM 1-1520-240-CL]&lt;br /&gt;
# Incredibly useful, Chinook CH-47D manual: [https://web.archive.org/web/20170118213215/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Manual/TM_1-1520-240-10.pdf Chinook Operators Manual TM 1-1520-240-10]&lt;br /&gt;
# [https://web.archive.org/web/20170118215340/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Maintenance_Test_Flight_Manual/TM_1-1520-240-MTF.pdf Chinook Maintenance Test Flight Manual TM 1-1520-240-MTF]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Ranguli/Buildling_FlightGear_on_Windows&amp;diff=140459</id>
		<title>Ranguli/Buildling FlightGear on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Ranguli/Buildling_FlightGear_on_Windows&amp;diff=140459"/>
		<updated>2024-09-15T15:25:35Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft}}&lt;br /&gt;
&lt;br /&gt;
== Deficiencies in the current build workflow==&lt;br /&gt;
- Reliance on 3rd-party code bundled within the repository (sometimes this is useful for small libraries, especially if they aren't packaged elsewhere, but can quickly get out of hand).&lt;br /&gt;
&lt;br /&gt;
- A major downside of this is that years go by without anyone copy and pasting the new library code into the repository, and the project is built with exceedingly old and likely insecure version of these libraries.&lt;br /&gt;
&lt;br /&gt;
- Reliance on a git repository containing &amp;lt;code&amp;gt;.lib&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; files (this is icky and makes me cry).&lt;br /&gt;
&lt;br /&gt;
- This has the same downsides as discussed above, but is also a uniquely gross solution given that we're tracking pre-compiled binary objects in a version control system, and using it for distribution and a very weak form of dependency management.&lt;br /&gt;
&lt;br /&gt;
- Reliance on &amp;lt;code&amp;gt;.bat&amp;lt;/code&amp;gt; scripts to orchestrate the build system. This really shouldn't be necessary in the large majority of cases if we're doing things correctly.&lt;br /&gt;
&lt;br /&gt;
==What the new vcpkg-based approach solves==&lt;br /&gt;
- Developers don't need to clone or install the &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repo, nor do maintainers need to copy/paste new source code and &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; files into that repository periodically &lt;br /&gt;
&lt;br /&gt;
- &lt;br /&gt;
&lt;br /&gt;
==The state of dependencies==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Software dependencies required by SimGear&lt;br /&gt;
!&lt;br /&gt;
!Available in vcpkg?&lt;br /&gt;
!Currently source location on Windows builds&lt;br /&gt;
!Currently source location on Linux builds&lt;br /&gt;
!Assessment&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|crashrpt&lt;br /&gt;
|Yes, but only for Windows&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|N/A - Windows-only dependency&lt;br /&gt;
|This should be added to vcpkg. We can use a &amp;lt;code&amp;gt;platform&amp;lt;/code&amp;gt; constraint so it's only pulled in and built on Windows, as it's a Windows-only library.&lt;br /&gt;
|-&lt;br /&gt;
|curl&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|easyxml&lt;br /&gt;
|No&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|'''Why do we have two XML parsing libraries, neither of which are particularly popular or widely used?'''&lt;br /&gt;
|-&lt;br /&gt;
|expat&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|'''Why do we have two XML parsing libraries, neither of which are particularly popular or widely used?'''&lt;br /&gt;
|-&lt;br /&gt;
|ffmpeg&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|freeglut&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|freetype&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|gexttext-libintl&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|libudns&lt;br /&gt;
|Yes, but only for Linux&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Keep in the SimGear repository&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|libjpeg-turbo&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|libpng&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|libtiff&lt;br /&gt;
|No&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Can't migrate to vcpkg&lt;br /&gt;
|-&lt;br /&gt;
|nlohmann-json&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Only used by tinygtlf. We don't need to include or manage this dependency if we migrate tinygltf to vcpkg.&lt;br /&gt;
|-&lt;br /&gt;
|openal-soft&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|osg&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|plib&lt;br /&gt;
|Yes, but only for Windows and Linux&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead. MacOS users will not benefit from this change, but Linux and Windows users will.&lt;br /&gt;
|-&lt;br /&gt;
|tinygltf&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installing WinGet==&lt;br /&gt;
Traditionally, installing software on Windows has required a lot of manual steps (going to a URL, downloading an installer, clicking through all the steps, etc). There are much more modern and ergonomic alternatives available. One of these is WinGet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Microsoft Visual Studio 2022==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lastly, you will prompted to sign in with a Visual Studio account, and then personalize Visual Studio. These options are purely personal preference and won't have a bearing on the build process.&lt;br /&gt;
&lt;br /&gt;
==Installing CMake==&lt;br /&gt;
https://cmake.org/download/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 3.30.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows will prompt you to confirm you would like to allow the CMake Installation to proceed. Select Yes.&lt;br /&gt;
&lt;br /&gt;
==Installing Qt6==&lt;br /&gt;
https://www.qt.io/download-qt-installer-oss&lt;br /&gt;
&lt;br /&gt;
===Selecting components===&lt;br /&gt;
- Ensure that CMake is not selected, as we will download CMake ourselves instead of using the bundled version.&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Ranguli/Buildling_FlightGear_on_Windows&amp;diff=140457</id>
		<title>Ranguli/Buildling FlightGear on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Ranguli/Buildling_FlightGear_on_Windows&amp;diff=140457"/>
		<updated>2024-09-15T14:33:57Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft}}&lt;br /&gt;
&lt;br /&gt;
== Deficiencies in the current build workflow==&lt;br /&gt;
- Reliance on 3rd-party code bundled within the repository (sometimes this is useful for small libraries, especially if they aren't packaged elsewhere, but can quickly get out of hand).&lt;br /&gt;
&lt;br /&gt;
- A major downside of this is that years go by without anyone copy and pasting the new library code into the repository, and the project is built with exceedingly old and likely insecure version of these libraries.&lt;br /&gt;
&lt;br /&gt;
- Reliance on a git repository containing &amp;lt;code&amp;gt;.lib&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; files (this is icky and makes me cry).&lt;br /&gt;
&lt;br /&gt;
- This has the same downsides as discussed above, but is also a uniquely gross solution given that we're tracking pre-compiled binary objects in a version control system, and using it for distribution and a very weak form of dependency management.&lt;br /&gt;
&lt;br /&gt;
- Reliance on &amp;lt;code&amp;gt;.bat&amp;lt;/code&amp;gt; scripts to orchestrate the build system. This really shouldn't be necessary in the large majority of cases if we're doing things correctly.&lt;br /&gt;
&lt;br /&gt;
==Advantages of the vcpkg approach==&lt;br /&gt;
- The &amp;lt;code&amp;gt;3rd-party-deps&amp;lt;/code&amp;gt; repo becomes unnecessary. &lt;br /&gt;
&lt;br /&gt;
- Developers don't have to clone this repo.&lt;br /&gt;
&lt;br /&gt;
- Developers don't have to run any commands or scripts to do the 'installation' of the &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.lib&amp;lt;/code&amp;gt; files from &amp;lt;code&amp;gt;3rd-party-deps&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==The state of dependencies==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Software dependencies required by SimGear&lt;br /&gt;
!&lt;br /&gt;
!Available in vcpkg?&lt;br /&gt;
!Currently source location on Windows builds&lt;br /&gt;
!Currently source location on Linux builds&lt;br /&gt;
!Assessment&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|crashrpt&lt;br /&gt;
|Yes, but only for Windows&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|N/A - Windows-only dependency&lt;br /&gt;
|This should be added to vcpkg. We can use a &amp;lt;code&amp;gt;platform&amp;lt;/code&amp;gt; constraint so it's only pulled in and built on Windows, as it's a Windows-only library.&lt;br /&gt;
|-&lt;br /&gt;
|curl&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|easyxml&lt;br /&gt;
|No&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|'''Why do we have two XML parsing libraries, neither of which are particularly popular or widely used?'''&lt;br /&gt;
|-&lt;br /&gt;
|expat&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|'''Why do we have two XML parsing libraries, neither of which are particularly popular or widely used?'''&lt;br /&gt;
|-&lt;br /&gt;
|ffmpeg&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|freeglut&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|freetype&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|gexttext-libintl&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|libudns&lt;br /&gt;
|Yes, but only for Linux&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Keep in the SimGear repository&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|libjpeg-turbo&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|libpng&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|libtiff&lt;br /&gt;
|No&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Can't migrate to vcpkg&lt;br /&gt;
|-&lt;br /&gt;
|nlohmann-json&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Only used by tinygtlf. We don't need to include or manage this dependency if we migrate tinygltf to vcpkg.&lt;br /&gt;
|-&lt;br /&gt;
|openal-soft&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|osg&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|plib&lt;br /&gt;
|Yes, but only for Windows and Linux&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|Get from vcpkg instead. MacOS users will not benefit from this change, but Linux and Windows users will.&lt;br /&gt;
|-&lt;br /&gt;
|tinygltf&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Embedded in the &amp;lt;code&amp;gt;SimGear&amp;lt;/code&amp;gt; repository&lt;br /&gt;
|Get from vcpkg instead.&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|Yes, for Windows, Linux, and macOS&lt;br /&gt;
|From FlightGear's &amp;lt;code&amp;gt;windows-3rd-party&amp;lt;/code&amp;gt; repository.&lt;br /&gt;
|System package manager&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installing WinGet==&lt;br /&gt;
Traditionally, installing software on Windows has required a lot of manual steps (going to a URL, downloading an installer, clicking through all the steps, etc). There are much more modern and ergonomic alternatives available. One of these is WinGet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Microsoft Visual Studio 2022==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lastly, you will prompted to sign in with a Visual Studio account, and then personalize Visual Studio. These options are purely personal preference and won't have a bearing on the build process.&lt;br /&gt;
&lt;br /&gt;
==Installing CMake==&lt;br /&gt;
https://cmake.org/download/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 3.30.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows will prompt you to confirm you would like to allow the CMake Installation to proceed. Select Yes.&lt;br /&gt;
&lt;br /&gt;
==Installing Qt6==&lt;br /&gt;
https://www.qt.io/download-qt-installer-oss&lt;br /&gt;
&lt;br /&gt;
===Selecting components===&lt;br /&gt;
- Ensure that CMake is not selected, as we will download CMake ourselves instead of using the bundled version.&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Ranguli/Buildling_FlightGear_on_Windows&amp;diff=140456</id>
		<title>Ranguli/Buildling FlightGear on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Ranguli/Buildling_FlightGear_on_Windows&amp;diff=140456"/>
		<updated>2024-09-15T13:40:35Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft}}&lt;br /&gt;
&lt;br /&gt;
== Deficiencies in the current build workflow==&lt;br /&gt;
- Reliance on 3rd-party code bundled within the repository (sometimes this is useful for small libraries, especially if they aren't packaged elsewhere, but can quickly get out of hand).&lt;br /&gt;
&lt;br /&gt;
- A major downside of this is that years go by without anyone copy and pasting the new library code into the repository, and the project is built with exceedingly old and likely insecure version of these libraries.&lt;br /&gt;
&lt;br /&gt;
- Reliance on a git repository containing &amp;lt;code&amp;gt;.lib&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; files (this is icky and makes me cry).&lt;br /&gt;
&lt;br /&gt;
- This has the same downsides as discussed above, but is also a uniquely gross solution given that we're tracking pre-compiled binary objects in a version control system, and using it for distribution and a very weak form of dependency management.&lt;br /&gt;
&lt;br /&gt;
- Reliance on &amp;lt;code&amp;gt;.bat&amp;lt;/code&amp;gt; scripts to orchestrate the build system. This really shouldn't be necessary in the large majority of cases if we're doing things correctly.&lt;br /&gt;
&lt;br /&gt;
==Advantages of the vcpkg approach==&lt;br /&gt;
- The &amp;lt;code&amp;gt;3rd-party-deps&amp;lt;/code&amp;gt; repo becomes unnecessary. &lt;br /&gt;
&lt;br /&gt;
- Developers don't have to clone this repo.&lt;br /&gt;
&lt;br /&gt;
- Developers don't have to run any commands or scripts to do the 'installation' of the &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.lib&amp;lt;/code&amp;gt; files from &amp;lt;code&amp;gt;3rd-party-deps&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==The state of dependencies==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|boost&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|crashrpt&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|curl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|expat&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ffmpeg&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|freeglut&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|freetype&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gexttext-libintl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libudns&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libjpeg-turbo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libpng&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|nlohmann-json&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|openal-soft&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|osg&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|plib&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|tinygltf&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installing WinGet==&lt;br /&gt;
Traditionally, installing software on Windows has required a lot of manual steps (going to a URL, downloading an installer, clicking through all the steps, etc). There are much more modern and ergonomic alternatives available. One of these is WinGet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Microsoft Visual Studio 2022==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lastly, you will prompted to sign in with a Visual Studio account, and then personalize Visual Studio. These options are purely personal preference and won't have a bearing on the build process.&lt;br /&gt;
&lt;br /&gt;
==Installing CMake==&lt;br /&gt;
https://cmake.org/download/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 3.30.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows will prompt you to confirm you would like to allow the CMake Installation to proceed. Select Yes.&lt;br /&gt;
&lt;br /&gt;
==Installing Qt6==&lt;br /&gt;
https://www.qt.io/download-qt-installer-oss&lt;br /&gt;
&lt;br /&gt;
===Selecting components===&lt;br /&gt;
- Ensure that CMake is not selected, as we will download CMake ourselves instead of using the bundled version.&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Ranguli/Buildling_FlightGear_on_Windows&amp;diff=140454</id>
		<title>Ranguli/Buildling FlightGear on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Ranguli/Buildling_FlightGear_on_Windows&amp;diff=140454"/>
		<updated>2024-09-14T14:25:45Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Created page with &amp;quot;{{Draft}}  == Installing WinGet == Traditionally, installing software on Windows has required a lot of manual steps (going to a URL, downloading an installer, clicking through all the steps, etc). There are much more modern and ergonomic alternatives available. One of these is WinGet.  == Installing Microsoft Visual Studio 2022 ==   Lastly, you will prompted to sign in with a Visual Studio account, and then personalize Visual Studio. These options are purely personal pre...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft}}&lt;br /&gt;
&lt;br /&gt;
== Installing WinGet ==&lt;br /&gt;
Traditionally, installing software on Windows has required a lot of manual steps (going to a URL, downloading an installer, clicking through all the steps, etc). There are much more modern and ergonomic alternatives available. One of these is WinGet.&lt;br /&gt;
&lt;br /&gt;
== Installing Microsoft Visual Studio 2022 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lastly, you will prompted to sign in with a Visual Studio account, and then personalize Visual Studio. These options are purely personal preference and won't have a bearing on the build process.&lt;br /&gt;
&lt;br /&gt;
== Installing CMake ==&lt;br /&gt;
https://cmake.org/download/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 3.30.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows will prompt you to confirm you would like to allow the CMake Installation to proceed. Select Yes.&lt;br /&gt;
&lt;br /&gt;
== Installing Qt6 ==&lt;br /&gt;
https://www.qt.io/download-qt-installer-oss&lt;br /&gt;
&lt;br /&gt;
=== Selecting components ===&lt;br /&gt;
- Ensure that CMake is not selected, as we will download CMake ourselves instead of using the bundled version.&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140445</id>
		<title>User:Ranguli</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140445"/>
		<updated>2024-09-07T17:06:47Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there,&lt;br /&gt;
&lt;br /&gt;
I'm a fan of Flight Gear and have joined the Wiki to tidy things up as I come across them. If I don't fix them then and there on the spot, they'll go into the list below.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:30, 20 August 2020 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Small Projects ==&lt;br /&gt;
=== House-keeping ===&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|100}} Update the article on the [[AC3D_file_format]]&lt;br /&gt;
# {{progressbar|100}} Mark [[FG_Interface_schematics_and_PCBs]] incomplete&lt;br /&gt;
# {{progressbar|100}} Mark [[Deperdussin_Monocoque]] as stub&lt;br /&gt;
# {{progressbar|100}} Mark [[Schleicher_ASK_13]] as stub&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Technik_Museum_Speyer]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[ATR_72-500]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Blender]] &lt;br /&gt;
# {{progressbar|70}} Cleanup [[AC3D]] needs software infobox&lt;br /&gt;
# {{progressbar|50}} Cleanup of [[Flying_Warbirds]]&lt;br /&gt;
# {{progressbar|50}} Cleanup [[Altitude]]&lt;br /&gt;
# {{progressbar|10}} Flesh out [[QNH]]&lt;br /&gt;
# {{progressbar|0}} Mark [[KFreeFlight]] as abandoned/old&lt;br /&gt;
# {{progressbar|0}} Cleanup of [[Flight_rules]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_information_resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Avionics_Development_Resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_Manuals]]&lt;br /&gt;
# {{progressbar|0}} [[SVG]] fix quote syntax&lt;br /&gt;
# {{progressbar|0}} [[Kelpie_Flight_Planner]] needs software infobox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Screenshot Improvements ===&lt;br /&gt;
Quite a number of articles have screenshots which are 10 years old or more! While their historical staying power is impressive, their lower resolution and old graphics don't quite live up to modern expectations. Here are some articles I intend to take better screenshots for:&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|0}} [[Flying_Warbirds]] &lt;br /&gt;
&lt;br /&gt;
== Larger Projects  ==&lt;br /&gt;
# {{progressbar|100}} Rewrite [[Mailing lists]] article&lt;br /&gt;
# {{progressbar|50}} [[Howto:Working_with_the_AC3D_file_format_in_Blender]]  This article needs new sections about exporting, saving, caveats, etc.&lt;br /&gt;
# {{progressbar|0}} [[User:Ranguli/List of file formats]] This article needs a good deal of cleanup, but could also be a ton of work depending on how far I'd want to take documenting file formats used by FlightGear.&lt;br /&gt;
# {{progressbar|0}} [[Howto:Edit_a_livery]] unfortunately this article is really a &amp;quot;How to draw an owl&amp;quot; type of tutorial, and was of no use to me while trying to learn how to work with liveries. Once I get a better understanding of the concepts personally I'd like to redo this from the ground up.&lt;br /&gt;
# FlightGear Academy articles that need heavy reformatting:&lt;br /&gt;
## {{progressbar|100}} [[Normal_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Emergency_Approach]] &lt;br /&gt;
## {{progressbar|0}} [[Emergency_Descent]]&lt;br /&gt;
## {{progressbar|0}} [[S-Turns]]&lt;br /&gt;
## {{progressbar|0}} [[Go_Around]]&lt;br /&gt;
## {{progressbar|0}} [[Rectangular_Course]]&lt;br /&gt;
## {{progressbar|0}} [[Turns_About_a_Point]]&lt;br /&gt;
## {{progressbar|0}} [[Take_Off]]&lt;br /&gt;
## {{progressbar|0}} [[Stalls_and_Spin_Awareness]]&lt;br /&gt;
## {{progressbar|0}} [[Soft_Field_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Slow_Flight_(Minimum_Controllable_Airspeed)]]&lt;br /&gt;
## {{progressbar|0}} [[Short_Field_Landing]]&lt;br /&gt;
# {{progressbar|0}} [[JSBSim_Commander]] add software infobox and mark as abandoned&lt;br /&gt;
# {{progressbar|0}} [[Conversion]] add some tables, formulas, rename to Aeronautical conversions&lt;br /&gt;
# {{progressbar|0}} [[Airports.txt]]&lt;br /&gt;
# {{progressbar|0}} [[Howto:Create_WebPanel_instrument]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear (WIP Article) ==&lt;br /&gt;
&lt;br /&gt;
== Why this article exists (and why good build documentation is paramount) ==&lt;br /&gt;
The long-term health and growth of open-source projects is directly tied to the size and quality of the community that is built around it. One of the most important groups of people within these communities are developers. Developers are like the worker bees of a bee colony, and are the lifeblood of a project. Much like the world-wide shortage of bees, there are more open-source projects needing help than there are developers to help them. So it stands to reason that it is in any open-source projects best interest to retain the developers that take an interest in the project. The art of making developers lives easier is called '''developer experience''' (DX), and projects may live or die by it, with or without knowing it was a factor. Quite simply, developers who have a bad experience with a project will not contribute. Can you blame them?&lt;br /&gt;
&lt;br /&gt;
The first place a developer is liable to have a bad experience with a project (and then move on) is when they first come face to face with documentation. The first impression a developer will get of a project will be from its README or equivalent documentation, particularly, the instructions for '''building the software'''. Many a developer has been eager to contribute to a project only to find a lack of documentation, and (rightfully so), moved on to other, less frustrating pursuits in the open-source world.&lt;br /&gt;
&lt;br /&gt;
There are three guiding principles for not sending developers for the hills:&lt;br /&gt;
&lt;br /&gt;
# There is '''one''' way to build the project, using '''one''' build system, following '''one''' set of instructions, that are easy to follow and consist of only a few steps&lt;br /&gt;
# The build process, code quality, and quality of documentation all work together to provide a '''low-friction''', '''low barrier to entry''' for '''new contributors'''.&lt;br /&gt;
# If a developer has a bad experience, '''that is a bug.'''&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear on Ubuntu and derivatives ==&lt;br /&gt;
FlightGear requires a large number of dependencies to build. In a terminal, you can install all necessary dependencies by using the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SimGear ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Dependency&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|Boost&lt;br /&gt;
|libboost1.74-dev&lt;br /&gt;
|libboost1.83-dev&lt;br /&gt;
|-&lt;br /&gt;
|Open Audio Library (OpenAL)&lt;br /&gt;
|libopenal-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenSceneGraph (OSG)&lt;br /&gt;
|libopenscenegraph-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|liblzma&lt;br /&gt;
|liblzma-dev&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
24.04LTS&lt;br /&gt;
 sudo apt install git gcc g++ build-essential cmake &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
22.04LTSFlightGear also has a dependency on another part of the FlightGear project, [[SimGear]]. So in order to build FlightGear we must first build SimGear.&lt;br /&gt;
&lt;br /&gt;
Obtain the SimGear source code by cloning from [[Git]]:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://git.code.sf.net/p/flightgear/simgear&amp;lt;/nowiki&amp;gt; flightgear-simgear&lt;br /&gt;
Next, follow the standard procedure for building a CMake project:&lt;br /&gt;
 cd flightgear-simgear&lt;br /&gt;
 &lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake .. -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
 &lt;br /&gt;
 make -jX # Where X is the number of cores on your system&lt;br /&gt;
 &lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear ==&lt;br /&gt;
DRAFT&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Dependency&lt;br /&gt;
!Hard dependency?&lt;br /&gt;
!Required for&lt;br /&gt;
!Ubuntu 22.04&lt;br /&gt;
!Ubuntu 24.04&lt;br /&gt;
|-&lt;br /&gt;
|libplib&lt;br /&gt;
|Yes&lt;br /&gt;
|Legacy joystick support&lt;br /&gt;
|&amp;lt;code&amp;gt;libplib-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|libudev&lt;br /&gt;
|Yes&lt;br /&gt;
|Peripheral / input support&lt;br /&gt;
|&amp;lt;code&amp;gt;libudev-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Base&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtbase5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 SVG&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;libqt5svg5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Declarative&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtdeclarative5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev-tools, qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Tools&lt;br /&gt;
|Yes&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qttools5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 Quick&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qtquickcontrols2-5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Qt 5 QML&lt;br /&gt;
|Maybe&lt;br /&gt;
|Building FlightGear GUI launcher&lt;br /&gt;
|&amp;lt;code&amp;gt;qml-module-qtquick-controls2&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|libevent&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|libevent-dev&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|zlib&lt;br /&gt;
|Yes&lt;br /&gt;
|File compression/decompression&lt;br /&gt;
|&amp;lt;code&amp;gt;zlib1g-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|dbus&lt;br /&gt;
|No&lt;br /&gt;
|[https://swift-project.org/# Swift] client support&lt;br /&gt;
|&amp;lt;code&amp;gt;libdbus-1-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|OpenXR&lt;br /&gt;
|No&lt;br /&gt;
|Virtual Reality (VR) support&lt;br /&gt;
|&amp;lt;code&amp;gt;libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install libplib-dev libudev-dev qtbase5-dev libqt5svg5-dev qtdeclarative5-dev qttools5-dev-tools qttools5-dev libevent-devlibdbus-1-dev libopenxr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libcurl4-openssl-dev  libavcodec-dev&lt;br /&gt;
&lt;br /&gt;
== Other notes ==&lt;br /&gt;
# [https://web.archive.org/web/20170118212558/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Checklist/TM_1-1520-240-CL.pdf Chinook Operators Checklist TM 1-1520-240-CL]&lt;br /&gt;
# Incredibly useful, Chinook CH-47D manual: [https://web.archive.org/web/20170118213215/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Manual/TM_1-1520-240-10.pdf Chinook Operators Manual TM 1-1520-240-10]&lt;br /&gt;
# [https://web.archive.org/web/20170118215340/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Maintenance_Test_Flight_Manual/TM_1-1520-240-MTF.pdf Chinook Maintenance Test Flight Manual TM 1-1520-240-MTF]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140436</id>
		<title>User:Ranguli</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140436"/>
		<updated>2024-09-05T22:25:02Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there,&lt;br /&gt;
&lt;br /&gt;
I'm a fan of Flight Gear and have joined the Wiki to tidy things up as I come across them. If I don't fix them then and there on the spot, they'll go into the list below.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:30, 20 August 2020 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Small Projects ==&lt;br /&gt;
=== House-keeping ===&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|100}} Update the article on the [[AC3D_file_format]]&lt;br /&gt;
# {{progressbar|100}} Mark [[FG_Interface_schematics_and_PCBs]] incomplete&lt;br /&gt;
# {{progressbar|100}} Mark [[Deperdussin_Monocoque]] as stub&lt;br /&gt;
# {{progressbar|100}} Mark [[Schleicher_ASK_13]] as stub&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Technik_Museum_Speyer]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[ATR_72-500]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Blender]] &lt;br /&gt;
# {{progressbar|70}} Cleanup [[AC3D]] needs software infobox&lt;br /&gt;
# {{progressbar|50}} Cleanup of [[Flying_Warbirds]]&lt;br /&gt;
# {{progressbar|50}} Cleanup [[Altitude]]&lt;br /&gt;
# {{progressbar|10}} Flesh out [[QNH]]&lt;br /&gt;
# {{progressbar|0}} Mark [[KFreeFlight]] as abandoned/old&lt;br /&gt;
# {{progressbar|0}} Cleanup of [[Flight_rules]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_information_resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Avionics_Development_Resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_Manuals]]&lt;br /&gt;
# {{progressbar|0}} [[SVG]] fix quote syntax&lt;br /&gt;
# {{progressbar|0}} [[Kelpie_Flight_Planner]] needs software infobox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Screenshot Improvements ===&lt;br /&gt;
Quite a number of articles have screenshots which are 10 years old or more! While their historical staying power is impressive, their lower resolution and old graphics don't quite live up to modern expectations. Here are some articles I intend to take better screenshots for:&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|0}} [[Flying_Warbirds]] &lt;br /&gt;
&lt;br /&gt;
== Larger Projects  ==&lt;br /&gt;
# {{progressbar|100}} Rewrite [[Mailing lists]] article&lt;br /&gt;
# {{progressbar|50}} [[Howto:Working_with_the_AC3D_file_format_in_Blender]]  This article needs new sections about exporting, saving, caveats, etc.&lt;br /&gt;
# {{progressbar|0}} [[User:Ranguli/List of file formats]] This article needs a good deal of cleanup, but could also be a ton of work depending on how far I'd want to take documenting file formats used by FlightGear.&lt;br /&gt;
# {{progressbar|0}} [[Howto:Edit_a_livery]] unfortunately this article is really a &amp;quot;How to draw an owl&amp;quot; type of tutorial, and was of no use to me while trying to learn how to work with liveries. Once I get a better understanding of the concepts personally I'd like to redo this from the ground up.&lt;br /&gt;
# FlightGear Academy articles that need heavy reformatting:&lt;br /&gt;
## {{progressbar|100}} [[Normal_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Emergency_Approach]] &lt;br /&gt;
## {{progressbar|0}} [[Emergency_Descent]]&lt;br /&gt;
## {{progressbar|0}} [[S-Turns]]&lt;br /&gt;
## {{progressbar|0}} [[Go_Around]]&lt;br /&gt;
## {{progressbar|0}} [[Rectangular_Course]]&lt;br /&gt;
## {{progressbar|0}} [[Turns_About_a_Point]]&lt;br /&gt;
## {{progressbar|0}} [[Take_Off]]&lt;br /&gt;
## {{progressbar|0}} [[Stalls_and_Spin_Awareness]]&lt;br /&gt;
## {{progressbar|0}} [[Soft_Field_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Slow_Flight_(Minimum_Controllable_Airspeed)]]&lt;br /&gt;
## {{progressbar|0}} [[Short_Field_Landing]]&lt;br /&gt;
# {{progressbar|0}} [[JSBSim_Commander]] add software infobox and mark as abandoned&lt;br /&gt;
# {{progressbar|0}} [[Conversion]] add some tables, formulas, rename to Aeronautical conversions&lt;br /&gt;
# {{progressbar|0}} [[Airports.txt]]&lt;br /&gt;
# {{progressbar|0}} [[Howto:Create_WebPanel_instrument]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear (WIP Article) ==&lt;br /&gt;
&lt;br /&gt;
== Why this article exists (and why good build documentation is paramount) ==&lt;br /&gt;
The long-term health and growth of open-source projects is directly tied to the size and quality of the community that is built around it. One of the most important groups of people within these communities are developers. Developers are like the worker bees of a bee colony, and are the lifeblood of a project. Much like the world-wide shortage of bees, there are more open-source projects needing help than there are developers to help them. So it stands to reason that it is in any open-source projects best interest to retain the developers that take an interest in the project. The art of making developers lives easier is called '''developer experience''' (DX), and projects may live or die by it, with or without knowing it was a factor. Quite simply, developers who have a bad experience with a project will not contribute. Can you blame them?&lt;br /&gt;
&lt;br /&gt;
The first place a developer is liable to have a bad experience with a project (and then move on) is when they first come face to face with documentation. The first impression a developer will get of a project will be from its README or equivalent documentation, particularly, the instructions for '''building the software'''. Many a developer has been eager to contribute to a project only to find a lack of documentation, and (rightfully so), moved on to other, less frustrating pursuits in the open-source world.&lt;br /&gt;
&lt;br /&gt;
There are three guiding principles for not sending developers for the hills:&lt;br /&gt;
&lt;br /&gt;
# There is '''one''' way to build the project, using '''one''' build system, following '''one''' set of instructions, that are easy to follow and consist of only a few steps&lt;br /&gt;
# The build process, code quality, and quality of documentation all work together to provide a '''low-friction''', '''low barrier to entry''' for '''new contributors'''.&lt;br /&gt;
# If a developer has a bad experience, '''that is a bug.'''&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear on Ubuntu and derivatives ==&lt;br /&gt;
FlightGear requires a large number of dependencies to build. In a terminal, you can install all necessary dependencies by using the following command:&lt;br /&gt;
  sudo apt install git gcc g++ build-essential cmake qttools5-dev qtdeclarative5-dev qtquickcontrols2-5-dev libqt5svg5-dev qtbase5-dev \ &lt;br /&gt;
 libqt5-dev libplib-dev libopenscenegraph-dev libboost1.83-dev libsqlite3-0 libsqlite3-dev(maybe?) \ &lt;br /&gt;
 qml-module-qtquick-controls2 llibopenal-dev liblzma-dev libcurl4-openssl-dev  libavcodec-dev \&lt;br /&gt;
 libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev&lt;br /&gt;
FlightGear also has a dependency on another part of the FlightGear project, [[SimGear]]. So in order to build FlightGear we must first build SimGear.&lt;br /&gt;
&lt;br /&gt;
Obtain the SimGear source code by cloning from [[Git]]:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://git.code.sf.net/p/flightgear/simgear&amp;lt;/nowiki&amp;gt; flightgear-simgear&lt;br /&gt;
Next, follow the standard procedure for building a CMake project:&lt;br /&gt;
 cd flightgear-simgear&lt;br /&gt;
 &lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake .. -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
This oo&lt;br /&gt;
&lt;br /&gt;
== Other notes ==&lt;br /&gt;
# [https://web.archive.org/web/20170118212558/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Checklist/TM_1-1520-240-CL.pdf Chinook Operators Checklist TM 1-1520-240-CL]&lt;br /&gt;
# Incredibly useful, Chinook CH-47D manual: [https://web.archive.org/web/20170118213215/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Manual/TM_1-1520-240-10.pdf Chinook Operators Manual TM 1-1520-240-10]&lt;br /&gt;
# [https://web.archive.org/web/20170118215340/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Maintenance_Test_Flight_Manual/TM_1-1520-240-MTF.pdf Chinook Maintenance Test Flight Manual TM 1-1520-240-MTF]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140433</id>
		<title>User:Ranguli</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Ranguli&amp;diff=140433"/>
		<updated>2024-09-05T20:34:05Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there,&lt;br /&gt;
&lt;br /&gt;
I'm a fan of Flight Gear and have joined the Wiki to tidy things up as I come across them. If I don't fix them then and there on the spot, they'll go into the list below.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:30, 20 August 2020 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Small Projects ==&lt;br /&gt;
=== House-keeping ===&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|100}} Update the article on the [[AC3D_file_format]]&lt;br /&gt;
# {{progressbar|100}} Mark [[FG_Interface_schematics_and_PCBs]] incomplete&lt;br /&gt;
# {{progressbar|100}} Mark [[Deperdussin_Monocoque]] as stub&lt;br /&gt;
# {{progressbar|100}} Mark [[Schleicher_ASK_13]] as stub&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Technik_Museum_Speyer]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[ATR_72-500]]&lt;br /&gt;
# {{progressbar|100}} Cleanup [[Blender]] &lt;br /&gt;
# {{progressbar|70}} Cleanup [[AC3D]] needs software infobox&lt;br /&gt;
# {{progressbar|50}} Cleanup of [[Flying_Warbirds]]&lt;br /&gt;
# {{progressbar|50}} Cleanup [[Altitude]]&lt;br /&gt;
# {{progressbar|10}} Flesh out [[QNH]]&lt;br /&gt;
# {{progressbar|0}} Mark [[KFreeFlight]] as abandoned/old&lt;br /&gt;
# {{progressbar|0}} Cleanup of [[Flight_rules]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_information_resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Avionics_Development_Resources]]&lt;br /&gt;
# {{progressbar|0}} Cleanup [[Aircraft_Manuals]]&lt;br /&gt;
# {{progressbar|0}} [[SVG]] fix quote syntax&lt;br /&gt;
# {{progressbar|0}} [[Kelpie_Flight_Planner]] needs software infobox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Screenshot Improvements ===&lt;br /&gt;
Quite a number of articles have screenshots which are 10 years old or more! While their historical staying power is impressive, their lower resolution and old graphics don't quite live up to modern expectations. Here are some articles I intend to take better screenshots for:&lt;br /&gt;
&lt;br /&gt;
# {{progressbar|0}} [[Flying_Warbirds]] &lt;br /&gt;
&lt;br /&gt;
== Larger Projects  ==&lt;br /&gt;
# {{progressbar|100}} Rewrite [[Mailing lists]] article&lt;br /&gt;
# {{progressbar|50}} [[Howto:Working_with_the_AC3D_file_format_in_Blender]]  This article needs new sections about exporting, saving, caveats, etc.&lt;br /&gt;
# {{progressbar|0}} [[User:Ranguli/List of file formats]] This article needs a good deal of cleanup, but could also be a ton of work depending on how far I'd want to take documenting file formats used by FlightGear.&lt;br /&gt;
# {{progressbar|0}} [[Howto:Edit_a_livery]] unfortunately this article is really a &amp;quot;How to draw an owl&amp;quot; type of tutorial, and was of no use to me while trying to learn how to work with liveries. Once I get a better understanding of the concepts personally I'd like to redo this from the ground up.&lt;br /&gt;
# FlightGear Academy articles that need heavy reformatting:&lt;br /&gt;
## {{progressbar|100}} [[Normal_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Emergency_Approach]] &lt;br /&gt;
## {{progressbar|0}} [[Emergency_Descent]]&lt;br /&gt;
## {{progressbar|0}} [[S-Turns]]&lt;br /&gt;
## {{progressbar|0}} [[Go_Around]]&lt;br /&gt;
## {{progressbar|0}} [[Rectangular_Course]]&lt;br /&gt;
## {{progressbar|0}} [[Turns_About_a_Point]]&lt;br /&gt;
## {{progressbar|0}} [[Take_Off]]&lt;br /&gt;
## {{progressbar|0}} [[Stalls_and_Spin_Awareness]]&lt;br /&gt;
## {{progressbar|0}} [[Soft_Field_Landing]]&lt;br /&gt;
## {{progressbar|0}} [[Slow_Flight_(Minimum_Controllable_Airspeed)]]&lt;br /&gt;
## {{progressbar|0}} [[Short_Field_Landing]]&lt;br /&gt;
# {{progressbar|0}} [[JSBSim_Commander]] add software infobox and mark as abandoned&lt;br /&gt;
# {{progressbar|0}} [[Conversion]] add some tables, formulas, rename to Aeronautical conversions&lt;br /&gt;
# {{progressbar|0}} [[Airports.txt]]&lt;br /&gt;
# {{progressbar|0}} [[Howto:Create_WebPanel_instrument]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building FlightGear from source (WIP) ==&lt;br /&gt;
On Ubuntu 24.04LTS:&lt;br /&gt;
&lt;br /&gt;
 sudo apt install qttools5-dev qtdeclarative5-dev qtquickcontrols2-5-dev libqt5svg5-dev qtbase5-dev \ &lt;br /&gt;
 libqt5-dev libplib-dev libopenscenegraph-dev libboost1.83-dev libsqlite3-0 libsqlite3-dev(maybe?) \ &lt;br /&gt;
 qml-module-qtquick-controls2 llibopenal-dev liblzma-dev libcurl4-openssl-dev  libavcodec-dev \&lt;br /&gt;
 libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev&lt;br /&gt;
&lt;br /&gt;
== Other notes ==&lt;br /&gt;
# [https://web.archive.org/web/20170118212558/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Checklist/TM_1-1520-240-CL.pdf Chinook Operators Checklist TM 1-1520-240-CL]&lt;br /&gt;
# Incredibly useful, Chinook CH-47D manual: [https://web.archive.org/web/20170118213215/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Operators_Manual/TM_1-1520-240-10.pdf Chinook Operators Manual TM 1-1520-240-10]&lt;br /&gt;
# [https://web.archive.org/web/20170118215340/http://www.chinook-helicopter.com/Publications/CH-47D_Technical_Publications/Maintenance_Test_Flight_Manual/TM_1-1520-240-MTF.pdf Chinook Maintenance Test Flight Manual TM 1-1520-240-MTF]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Working_with_FlightGear_models_in_Blender&amp;diff=140427</id>
		<title>Howto:Working with FlightGear models in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Working_with_FlightGear_models_in_Blender&amp;diff=140427"/>
		<updated>2024-09-04T17:23:40Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}{{WIP|In progress as of Sept 4th, 2024}}&lt;br /&gt;
FlightGear uses the [[AC3D file format]] for its models. AC3D files are denoted by the  &amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt; file extension. It is a niche legacy format native to the [[AC3D]] modelling software, and its adoption is not widespread in computer graphics (being used mainly by X-Plane&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/AC3D]&amp;lt;/ref&amp;gt; and FlightGear). This lead to support for the format eventually being removed from Blender. In order to work with models in the AC3D format in Blender, and thus do any modelling work for the FlightGear project, the use of an add-on is required. &lt;br /&gt;
&lt;br /&gt;
== Installing the Blender add-on for AC3D models ==&lt;br /&gt;
{{Warning|While Blender offers an &amp;quot;Install From File&amp;quot; option to simplify the installation of add-ons, it is not supported by Blender-AC3D and should not be used.}}&lt;br /&gt;
The [https://github.com/NikolaiVChr/Blender-AC3D Blender-AC3D] add-on is one such add-on that allows AC3D models to be used in Blender. It is an open-source project licensed under the [[GNU GPL]]. It is hosted on [[Github|GitHub]], and it can be accessed here: [https://github.com/NikolaiVChr/Blender-AC3D Blender-AC3D].&lt;br /&gt;
To install the Blender-AC3D add-on, you must complete the following steps:&lt;br /&gt;
&lt;br /&gt;
# Identify the version of Blender you are using. This can be done by simply opening Blender, and checking the version number in the top-right corner of the startup / splash screen:[[File:Blender_Startup_Screen.png|alt=Determining Blender version from the splash screen|none|frame|Determining Blender version from the splash screen]]&lt;br /&gt;
# Close Blender.&lt;br /&gt;
# Download the correct version of the Blender add-on for your version of Blender. You can download the add-on at: https://github.com/NikolaiVChr/Blender-AC3D&lt;br /&gt;
# Once you have downloaded the Blender add-on, extract the &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; file so that you have a folder called &amp;lt;code&amp;gt;io_scene_ac3d&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Next, you will need to place the add-on (the &amp;lt;code&amp;gt;io_scene_ac3d&amp;lt;/code&amp;gt; folder) in the correct directory in order for Blender to be able to load it. It will vary based on platform, where &amp;lt;code&amp;gt;x.x&amp;lt;/code&amp;gt; is the version of Blender you are using.&lt;br /&gt;
#* For Linux users, the location may be in one of two places. If you installed it through your package manager, it will be the first path. If you installed Blender as a Flatpak, it will be the second path.  &amp;lt;code&amp;gt;~/.blender/x.x/scripts/addons&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;~/.var/app/org.blender.Blender/config/blender/x.x/scripts/addons&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* For Windows users, the location is: &amp;lt;code&amp;gt;C:\Users\yourusername\AppData\Roaming\Blender Foundation\Blender\x.x\scripts\addons&amp;lt;/code&amp;gt;&lt;br /&gt;
#* For macOS users, the location is: &amp;lt;code&amp;gt;Macintosh HD/Users/yourusername/Library/Application Support/Blender/x.x/scripts/addons&amp;lt;/code&amp;gt;&lt;br /&gt;
# Re-open Blender.&lt;br /&gt;
# Navigate to '''Edit &amp;gt; Preferences''', and select '''Add-ons''' from the side-bar. If you downloaded the correct version of the add-on, and place it in the right location, you should see it in the list of available add-ons.&lt;br /&gt;
# Select the checkbox next to '''AC3D (.ac) format''' to enable the plugin. This step is critical, otherwise the add-on won't actually become active.{{Note|The add-on will not be active after installing, you must manually enable it.}}[[File:Enable Blender-AC3D.png|thumb|Selecting Blender-AC3D from the add-ons menu|alt=Selecting Blender-AC3D from the add-ons menu|none|680x680px]]&lt;br /&gt;
# Once you have enabled the Blender add-on, restart Blender.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have completed the above steps and encountered no error messages, the Blender-AC3D add-on should be correctly installed and enabled, and is ready for use.&lt;br /&gt;
&lt;br /&gt;
== Importing models ==&lt;br /&gt;
&lt;br /&gt;
# Once the add-on is installed, AC3D models can be imported in the same fashion as any model format supported by Blender. To import a model, navigate to '''File &amp;gt; Import &amp;gt; AC3D (.ac)'''{{Note|If you do not see the option to import AC3D models, the add-on either has not been correctly installed, or enabled.}} [[File:Blender AC3D import dialog.png|frameless|546x546px]]&lt;br /&gt;
# A file chooser dialog will appear. Select your AC3D (&amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt; ) file and select '''Import AC3D'''.&lt;br /&gt;
 &lt;br /&gt;
 {{WIP}}  &lt;br /&gt;
&lt;br /&gt;
==Editing models==&lt;br /&gt;
Once the model has been successfully imported into Blender using the add-on, the&lt;br /&gt;
&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
== Configuring accurate model previews ==&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
==Viewing liveries==&lt;br /&gt;
&lt;br /&gt;
Blender can be used as a 'livery viewer' for your FlightGear models.  &lt;br /&gt;
&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
== Exporting models ==&lt;br /&gt;
{{Warning|To ensure that models exported from Blender are displayed and function correctly in FlightGear, special steps must be followed.}}[[File:Cessna 172P Model in Blender.png|thumb|Example screenshot demonstrating a Cessna model taken from FlightGear and opened in Blender]]{{WIP}}{{Appendix}}&lt;br /&gt;
{{3d}}&lt;br /&gt;
[[Category:Modeling]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Enable_Blender-AC3D.png&amp;diff=140426</id>
		<title>File:Enable Blender-AC3D.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Enable_Blender-AC3D.png&amp;diff=140426"/>
		<updated>2024-09-04T17:05:48Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Screenshot showing Blender-AC3D in the Blender add-ons menu}}&lt;br /&gt;
|date=2024-09-04&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Ranguli|Ranguli]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender screenshots]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Blender_Startup_Screen.png&amp;diff=140425</id>
		<title>File:Blender Startup Screen.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Blender_Startup_Screen.png&amp;diff=140425"/>
		<updated>2024-09-04T14:59:46Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=The Blender startup screen. The version of Blender is indicated in the top-right corner.}}&lt;br /&gt;
|date=2024-09-04&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Ranguli|Ranguli]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender screenshots]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Working_with_FlightGear_models_in_Blender&amp;diff=140424</id>
		<title>Howto:Working with FlightGear models in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Working_with_FlightGear_models_in_Blender&amp;diff=140424"/>
		<updated>2024-09-04T11:50:56Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Flesh out article structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}{{WIP|In progress as of Sept 4th, 2024}}&lt;br /&gt;
FlightGear uses the [[AC3D file format]] for its models. AC3D files are denoted by the  &amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt; file extension. It is a niche legacy format native to the [[AC3D]] modelling software, and its adoption is not widespread in computer graphics (being used mainly by X-Plane&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/AC3D]&amp;lt;/ref&amp;gt; and FlightGear). This lead to support for the format eventually being removed from Blender. In order to work with models in the AC3D format in Blender, and thus do any modelling work for the FlightGear project, the use of an add-on is required. &lt;br /&gt;
&lt;br /&gt;
== Installing the Blender add-on for AC3D models ==&lt;br /&gt;
The [https://github.com/NikolaiVChr/Blender-AC3D Blender-AC3D] add-on is one such add-on that allows AC3D models to be used in Blender.&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
== Importing models ==&lt;br /&gt;
&lt;br /&gt;
# Once the add-on is installed, AC3D models can be imported in the same fashion as any model format supported by Blender. To import a model, navigate to '''File &amp;gt; Import &amp;gt; AC3D (.ac)'''{{Note|If you do not see the option to import AC3D models, the add-on either has not been correctly installed, or enabled.}} [[File:Blender AC3D import dialog.png|frameless|546x546px]]&lt;br /&gt;
# A file chooser dialog will appear. Select your AC3D (&amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt; ) file and select '''Import AC3D'''.&lt;br /&gt;
 &lt;br /&gt;
 {{WIP}}  &lt;br /&gt;
&lt;br /&gt;
==Editing models==&lt;br /&gt;
Once the model has been successfully imported into Blender using the add-on, the&lt;br /&gt;
&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
== Configuring accurate model previews ==&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
==Viewing liveries==&lt;br /&gt;
&lt;br /&gt;
Blender can be used as a 'livery viewer' for your FlightGear models.  &lt;br /&gt;
&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
== Exporting models ==&lt;br /&gt;
{{Warning|To ensure that models exported from Blender are displayed and function correctly in FlightGear, special steps must be followed.}}[[File:Cessna 172P Model in Blender.png|thumb|Example screenshot demonstrating a Cessna model taken from FlightGear and opened in Blender]]{{WIP}}{{Appendix}}&lt;br /&gt;
{{3d}}&lt;br /&gt;
[[Category:Modeling]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto_talk:Work_with_AC3D_files_in_Blender&amp;diff=140423</id>
		<title>Howto talk:Work with AC3D files in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto_talk:Work_with_AC3D_files_in_Blender&amp;diff=140423"/>
		<updated>2024-09-04T11:03:18Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: /* Merging with Howto:Working with FlightGear models in Blender */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Blender 2.83 LTS support ==&lt;br /&gt;
Blender 2.83 LTS is declared to not be supported.  What is the issue?  I'm using Blender 2.90 successfully.&lt;br /&gt;
&lt;br /&gt;
{{unsigned|19:50, 17 July 2020‎|Scttgs}}&lt;br /&gt;
&lt;br /&gt;
: Correct, i just retried AC3D import with 2.83.2 LTS and indeed it works. Must have been a mistake on my side when setting everything up.&lt;br /&gt;
: I've just corrected the page.&lt;br /&gt;
: {{unsigned|20:18, 17 July 2020‎|Sfrsfr}}&lt;br /&gt;
&lt;br /&gt;
== Merging with Howto:Working with FlightGear models in Blender ==&lt;br /&gt;
&lt;br /&gt;
I think this article would be good as section under a larger article. It is currently a stub, and would logically fit in an article about part of a larger Howto tutorial that encompasses the entirety of the workflow in Blender. I think it would also be useful to have this information in a single place with one source of truth in order to make it easier to keep the information up to date as Blender versions change.  [[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 11:03, 4 September 2024 (UTC)&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Working_with_FlightGear_models_in_Blender&amp;diff=140422</id>
		<title>Howto:Working with FlightGear models in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Working_with_FlightGear_models_in_Blender&amp;diff=140422"/>
		<updated>2024-09-04T11:01:26Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Mark as WIP/stub, as the article is about to be worked on.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}{{WIP|In progress as of Sept 4th, 2024}}&lt;br /&gt;
&lt;br /&gt;
== Importing and exporting models ==&lt;br /&gt;
&lt;br /&gt;
== Editing models ==&lt;br /&gt;
&lt;br /&gt;
== Viewing liveries ==&lt;br /&gt;
&lt;br /&gt;
Blender can be used as a 'livery viewer' for your FlightGear models.  &lt;br /&gt;
&lt;br /&gt;
[[File:Cessna 172P Model in Blender.png|thumb|Example screenshot demonstrating a Cessna model taken from FlightGear and opened in Blender]]&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Work_with_AC3D_files_in_Blender&amp;diff=140421</id>
		<title>Howto:Work with AC3D files in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Work_with_AC3D_files_in_Blender&amp;diff=140421"/>
		<updated>2024-09-04T11:00:26Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Mark as stub.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Merge|Howto:Working with FlightGear models in Blender}}&lt;br /&gt;
&lt;br /&gt;
Many [[FlightGear]] [[aircraft]] modellers prefer [[Blender]] as their 3D-modelling editor. Blender is a powerful, robust and open-source 3D modelling suite. FlightGear primarily uses the [[AC3D_file_format|AC3D file format]] (&amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt;) to model aircraft, [[scenery]] models, and many other things. With the AC3D file format first released in 1996&amp;lt;ref&amp;gt;http://fileformats.archiveteam.org/wiki/AC3D_Model&amp;lt;/ref&amp;gt;, modern versions of Blender do not bother maintaining support for the format. However, add-ons exist to extend Blender's functionality in order to allow the import and export of these files.&lt;br /&gt;
&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== Importing and exporting AC3D files ==&lt;br /&gt;
{{note| Modern versions of Blender (2.5+) require an add-on to work with AC3D (&amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt;) files.}}&lt;br /&gt;
=== Addons ===&lt;br /&gt;
&lt;br /&gt;
The prominent add-on for using AC3D files in Blender is called ''Blender-AC3D''. It has been forked from its original to provide support for Blender 2.8.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Blender version !! Addon !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| 4.0 ONLY || {{github source|user=NikolaiVChr|repo=Blender-AC3D|branch=4.0|text=NikolaiVChr/Blender-AC3D (GitHub)}}. || NikolaiVChr's fork of majic79's add-on, with a special branch for Blender 4.0+&lt;br /&gt;
⚠️ WARNING ⚠️ THIS ONLY WORKS FOR BLENDER 4.0 (https://download.blender.org/release/Blender4.0/)&lt;br /&gt;
|-&lt;br /&gt;
| 3.2 || {{github source|user=NikolaiVChr|repo=Blender-AC3D|branch=3.2|text=NikolaiVChr/Blender-AC3D (GitHub)}}. || NikolaiVChr's fork of majic79's add-on, with a special branch for Blender 3.2&lt;br /&gt;
|-&lt;br /&gt;
| 2.80 - 2.90 || {{github source|user=NikolaiVChr|repo=Blender-AC3D|branch=2.80|text=NikolaiVChr/Blender-AC3D (GitHub)}}. || NikolaiVChr's fork of majic79's add-on, with a special branch for Blender 2.80&lt;br /&gt;
|-&lt;br /&gt;
| 2.63 - 2.7a || {{github source|user=NikolaiVChr|repo=Blender-AC3D|branch=master|text=NikolaiVChr/Blender-AC3D (GitHub)}} || NikolaiVChr's fork of majic79's add-on. For more information read {{forum link|t=13442|title=Blender 2.6 AC3D Importer &amp;amp; Exporter}} &lt;br /&gt;
|-&lt;br /&gt;
| 2.62 || {{github source|proj=majic79|repo=Blender-AC3D|branch=BL2.62|text=majic79/Blender-AC3D (GitHub)}} || Branch of majic79's plugin targeting Blender 2.62 (Abandoned)&lt;br /&gt;
|-&lt;br /&gt;
| 2.60 || {{github source|proj=majic79|repo=Blender-AC3D|branch=BL2.60|text=majic79/Blender-AC3D (GitHub)}} || Branch of majic79's plugin targeting Blender 2.60 (Abandoned)&lt;br /&gt;
|-&lt;br /&gt;
| 2.59 || {{github source|proj=majic79|repo=Blender-AC3D|branch=BL2.59|text=majic79/Blender-AC3D (GitHub)}} || Branch of majic79's plugin targeting Blender 2.59 (Abandoned)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;2.5 || N/A || Versions of Blender below 2.5 include out of the box support for the AC3D file format, simply enable the add-on in &amp;lt;code&amp;gt;Preferences &amp;gt; Addons&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* Before you export a model with this addon, make sure that you set the UV map and texture inside the material, not just inside the UV editor.  See the video tutorial [https://www.youtube.com/watch?v=URMjoFSm5pk here].&lt;br /&gt;
* Before you export make sure to exit ''Edit Mode'' or some of your last changes won't be exported.&lt;br /&gt;
* Inside Blender when you want to see the textures, be sure to set the shader to GLSL (or for 2.7+ just set view mode to materials). Alternatively set textured solid in solid view.&lt;br /&gt;
* To see textured surfaces as they will be shown in FlightGear, go into the material texture and set the blend type to ''Multiply'' instead of the default ''Mix'' (the importer will also do this automatically). An example plane that will look very different if this is not done is the FGAddon aircraft {{fgaddon source|path=Aircraft/ASK13|commit=1363|text=ASK-13}}, notice the wingtips.&lt;br /&gt;
* The final model might display color mismatches (Texture color vs Material color) when viewed in Flightgear. Hand editing the [[AC files: Basic changes to textures and colors#Materials|materials]] section of the exported AC3D file might fix this.&lt;br /&gt;
* If you wonder where to put the scripts you could open blender's user preferences ({{Key press|Ctrl|Alt|U}}, or ''File &amp;gt; User Preferences'') tick for example Import/Export and extent the information concerning an existing script. Usually this throws the path. For for example Ubuntu 14.04LTS/Blender 2.79b it is: &amp;lt;code&amp;gt;/usr/share/blender/scripts/addons/&amp;lt;/code&amp;gt;. In recent Ubuntu versions blender is distributed as a snap image. In such cases blender addon scripts are placed in: &amp;lt;code&amp;gt;$HOME/.config/blender/X.YY/scripts/addons/&amp;lt;/code&amp;gt; (where X.YY is blender version, for example 2.82).&lt;br /&gt;
* Be aware that Blender only has greyscale for emission and ambient colors. If you want to export/import a color for those, import/export options gives you capability to choose to use Blenders mirror color for that.&lt;br /&gt;
* The importer will not fail if it does not locate a texture, instead it will issue warnings. Pull down the top bar to see if there was any, they will be orange lines.&lt;br /&gt;
* The exporter will not fail if it tries to save a texture without data, instead it will issue warnings. Pull down the top bar to see if there was any, they will be orange lines. Notice that since AC3D only support 1 texture per object, if multiple textures are attached to an object in Blender the last of the textures that has any data, if any, will be the one that get exported, but it will still warn about the missing data in the others, so take care.&lt;br /&gt;
* Orientation: The default settings in the plugin correspond to the FlightGear coordinate system (-X forward and Z up, also see: [[Howto:3D_Aircraft_Models]]). The default settings are: Forward -Z and Up Y.&lt;br /&gt;
&lt;br /&gt;
You can report bugs with the addon [https://github.com/NikolaiVChr/Blender-AC3D/issues here], but please include problematic &amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;.blend&amp;lt;/code&amp;gt; files and their textures.&lt;br /&gt;
&lt;br /&gt;
=== Importing ===&lt;br /&gt;
&lt;br /&gt;
{{main article|Working with FlightGear models in Blender}}&lt;br /&gt;
{{note|If you do not see the option for &amp;lt;code&amp;gt;AC3D (.ac)&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;File &amp;gt; Import&amp;lt;/code&amp;gt;, your add-on is either not installed, not enabled, or not working correctly.}}&lt;br /&gt;
Once the add-on is installed, AC3D models can be imported in the same manner as any other model foramat into Blender by using the &amp;lt;code&amp;gt; File &amp;gt; Import &amp;gt; AC3D (.ac)&amp;lt;/code&amp;gt; dialog. &lt;br /&gt;
[[File:Blender AC3D import dialog.png|thumb|This figure demonstrates how to import an AC3D model in Blender using a third-party addon.]]&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
{{3d}}&lt;br /&gt;
[[Category:Modeling]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Work_with_AC3D_files_in_Blender&amp;diff=140420</id>
		<title>Howto:Work with AC3D files in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Work_with_AC3D_files_in_Blender&amp;diff=140420"/>
		<updated>2024-09-04T10:59:18Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Suggest we merge this article with one main parent article about using Blender with flightgear models&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Merge|Howto:Working with FlightGear models in Blender}}&lt;br /&gt;
&lt;br /&gt;
Many [[FlightGear]] [[aircraft]] modellers prefer [[Blender]] as their 3D-modelling editor. Blender is a powerful, robust and open-source 3D modelling suite. FlightGear primarily uses the [[AC3D_file_format|AC3D file format]] (&amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt;) to model aircraft, [[scenery]] models, and many other things. With the AC3D file format first released in 1996&amp;lt;ref&amp;gt;http://fileformats.archiveteam.org/wiki/AC3D_Model&amp;lt;/ref&amp;gt;, modern versions of Blender do not bother maintaining support for the format. However, add-ons exist to extend Blender's functionality in order to allow the import and export of these files.&lt;br /&gt;
&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== Importing and exporting AC3D files ==&lt;br /&gt;
{{note| Modern versions of Blender (2.5+) require an add-on to work with AC3D (&amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt;) files.}}&lt;br /&gt;
=== Addons ===&lt;br /&gt;
&lt;br /&gt;
The prominent add-on for using AC3D files in Blender is called ''Blender-AC3D''. It has been forked from its original to provide support for Blender 2.8.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Blender version !! Addon !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| 4.0 ONLY || {{github source|user=NikolaiVChr|repo=Blender-AC3D|branch=4.0|text=NikolaiVChr/Blender-AC3D (GitHub)}}. || NikolaiVChr's fork of majic79's add-on, with a special branch for Blender 4.0+&lt;br /&gt;
⚠️ WARNING ⚠️ THIS ONLY WORKS FOR BLENDER 4.0 (https://download.blender.org/release/Blender4.0/)&lt;br /&gt;
|-&lt;br /&gt;
| 3.2 || {{github source|user=NikolaiVChr|repo=Blender-AC3D|branch=3.2|text=NikolaiVChr/Blender-AC3D (GitHub)}}. || NikolaiVChr's fork of majic79's add-on, with a special branch for Blender 3.2&lt;br /&gt;
|-&lt;br /&gt;
| 2.80 - 2.90 || {{github source|user=NikolaiVChr|repo=Blender-AC3D|branch=2.80|text=NikolaiVChr/Blender-AC3D (GitHub)}}. || NikolaiVChr's fork of majic79's add-on, with a special branch for Blender 2.80&lt;br /&gt;
|-&lt;br /&gt;
| 2.63 - 2.7a || {{github source|user=NikolaiVChr|repo=Blender-AC3D|branch=master|text=NikolaiVChr/Blender-AC3D (GitHub)}} || NikolaiVChr's fork of majic79's add-on. For more information read {{forum link|t=13442|title=Blender 2.6 AC3D Importer &amp;amp; Exporter}} &lt;br /&gt;
|-&lt;br /&gt;
| 2.62 || {{github source|proj=majic79|repo=Blender-AC3D|branch=BL2.62|text=majic79/Blender-AC3D (GitHub)}} || Branch of majic79's plugin targeting Blender 2.62 (Abandoned)&lt;br /&gt;
|-&lt;br /&gt;
| 2.60 || {{github source|proj=majic79|repo=Blender-AC3D|branch=BL2.60|text=majic79/Blender-AC3D (GitHub)}} || Branch of majic79's plugin targeting Blender 2.60 (Abandoned)&lt;br /&gt;
|-&lt;br /&gt;
| 2.59 || {{github source|proj=majic79|repo=Blender-AC3D|branch=BL2.59|text=majic79/Blender-AC3D (GitHub)}} || Branch of majic79's plugin targeting Blender 2.59 (Abandoned)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;2.5 || N/A || Versions of Blender below 2.5 include out of the box support for the AC3D file format, simply enable the add-on in &amp;lt;code&amp;gt;Preferences &amp;gt; Addons&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* Before you export a model with this addon, make sure that you set the UV map and texture inside the material, not just inside the UV editor.  See the video tutorial [https://www.youtube.com/watch?v=URMjoFSm5pk here].&lt;br /&gt;
* Before you export make sure to exit ''Edit Mode'' or some of your last changes won't be exported.&lt;br /&gt;
* Inside Blender when you want to see the textures, be sure to set the shader to GLSL (or for 2.7+ just set view mode to materials). Alternatively set textured solid in solid view.&lt;br /&gt;
* To see textured surfaces as they will be shown in FlightGear, go into the material texture and set the blend type to ''Multiply'' instead of the default ''Mix'' (the importer will also do this automatically). An example plane that will look very different if this is not done is the FGAddon aircraft {{fgaddon source|path=Aircraft/ASK13|commit=1363|text=ASK-13}}, notice the wingtips.&lt;br /&gt;
* The final model might display color mismatches (Texture color vs Material color) when viewed in Flightgear. Hand editing the [[AC files: Basic changes to textures and colors#Materials|materials]] section of the exported AC3D file might fix this.&lt;br /&gt;
* If you wonder where to put the scripts you could open blender's user preferences ({{Key press|Ctrl|Alt|U}}, or ''File &amp;gt; User Preferences'') tick for example Import/Export and extent the information concerning an existing script. Usually this throws the path. For for example Ubuntu 14.04LTS/Blender 2.79b it is: &amp;lt;code&amp;gt;/usr/share/blender/scripts/addons/&amp;lt;/code&amp;gt;. In recent Ubuntu versions blender is distributed as a snap image. In such cases blender addon scripts are placed in: &amp;lt;code&amp;gt;$HOME/.config/blender/X.YY/scripts/addons/&amp;lt;/code&amp;gt; (where X.YY is blender version, for example 2.82).&lt;br /&gt;
* Be aware that Blender only has greyscale for emission and ambient colors. If you want to export/import a color for those, import/export options gives you capability to choose to use Blenders mirror color for that.&lt;br /&gt;
* The importer will not fail if it does not locate a texture, instead it will issue warnings. Pull down the top bar to see if there was any, they will be orange lines.&lt;br /&gt;
* The exporter will not fail if it tries to save a texture without data, instead it will issue warnings. Pull down the top bar to see if there was any, they will be orange lines. Notice that since AC3D only support 1 texture per object, if multiple textures are attached to an object in Blender the last of the textures that has any data, if any, will be the one that get exported, but it will still warn about the missing data in the others, so take care.&lt;br /&gt;
* Orientation: The default settings in the plugin correspond to the FlightGear coordinate system (-X forward and Z up, also see: [[Howto:3D_Aircraft_Models]]). The default settings are: Forward -Z and Up Y.&lt;br /&gt;
&lt;br /&gt;
You can report bugs with the addon [https://github.com/NikolaiVChr/Blender-AC3D/issues here], but please include problematic &amp;lt;code&amp;gt;.ac&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;.blend&amp;lt;/code&amp;gt; files and their textures.&lt;br /&gt;
&lt;br /&gt;
=== Importing ===&lt;br /&gt;
&lt;br /&gt;
{{main article|Working with FlightGear models in Blender}}&lt;br /&gt;
{{note|If you do not see the option for &amp;lt;code&amp;gt;AC3D (.ac)&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;File &amp;gt; Import&amp;lt;/code&amp;gt;, your add-on is either not installed, not enabled, or not working correctly.}}&lt;br /&gt;
Once the add-on is installed, AC3D models can be imported in the same manner as any other model foramat into Blender by using the &amp;lt;code&amp;gt; File &amp;gt; Import &amp;gt; AC3D (.ac)&amp;lt;/code&amp;gt; dialog. &lt;br /&gt;
[[File:Blender AC3D import dialog.png|thumb|This figure demonstrates how to import an AC3D model in Blender using a third-party addon.]]&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
{{3d}}&lt;br /&gt;
[[Category:Modeling]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto_talk:Working_with_FlightGear_models_in_Blender&amp;diff=140419</id>
		<title>Howto talk:Working with FlightGear models in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto_talk:Working_with_FlightGear_models_in_Blender&amp;diff=140419"/>
		<updated>2024-09-04T10:54:41Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I agree that this can be deleted. [[User:Scttgs|xDraconian]] ([[User talk:Scttgs|talk]]) 15:45, 6 July 2024 (UTC)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: As the post stands now it definitely isn't working keeping, however I think an article of this kind is sorely needed, so I'm going to try and work on it in the coming days (I clearly had the notion to start it in 2020 but not to finish it). If it's alright I'm going to remove the delete template and replace it with a work in progress one while I finish the article. [[User:Ranguli|Ranguli]] ([[User talk:Ranguli|talk]]) 10:54, 4 September 2024 (UTC)&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Superbuild&amp;diff=140405</id>
		<title>Superbuild</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Superbuild&amp;diff=140405"/>
		<updated>2024-09-02T18:26:03Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Mark as out of date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Out of date|details=This article makes reference to long-deprecated version of development tools.}}&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
According to some recent reports, you should make sure to upgrade your cmake binary to 2.12.1 if you encounter any errors [http://forum.flightgear.org/viewtopic.php?f=37&amp;amp;t=21579&amp;amp;p=196700#p196670].&lt;br /&gt;
&lt;br /&gt;
The superbuild is currently bit-rotted but could be resurrect, however with the build script (.bat) in fg-meta it’s less needed, especially now we have the windows-3rdparty-repo better organised.&lt;br /&gt;
&amp;lt;ref&amp;gt; {{cite web&lt;br /&gt;
  | url    = http://sourceforge.net/p/flightgear/mailman/message/35020034/&lt;br /&gt;
  | title  = &amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] MSVC 2012 or 2013 support?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  | author = &amp;lt;nowiki&amp;gt;James Turner&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  | date   = Apr 17th, 2016&lt;br /&gt;
  | added   = Apr 17th, 2016&lt;br /&gt;
  | script_version = 0.26&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/ref&amp;gt; ('''note the quote context: ''' for MSVC 2015 and higher support)&lt;br /&gt;
&lt;br /&gt;
==Building via the superbuild==&lt;br /&gt;
&lt;br /&gt;
A CMake super-build is a project which downloads, configures and builds other projects. Download can be from a web server, or via Git or SVN. Most normal CMake options apply - you can use different generators (Makefiles, VisualStudio, XCode) and pass in options.&lt;br /&gt;
&lt;br /&gt;
===Getting the source===&lt;br /&gt;
&lt;br /&gt;
In all cases, you should get the superbuild by doing a clean clone (from Git) of fgmeta, with the &amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
{{#tag:source&lt;br /&gt;
| {{fgmeta clone&lt;br /&gt;
  | opt  = --recursive&lt;br /&gt;
  | post = fgmeta&lt;br /&gt;
  }}&lt;br /&gt;
| lang=sh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This tells Git to clone submodules, which we need since both flightgear and simgear are submodules of fgmeta. The source repository is {{fgmeta source|text=fgmeta}}.&lt;br /&gt;
Note that providing you cloned with &amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt;, git pull will also update submodules automatically; some documentation and pages may tell you to manually run &amp;lt;code&amp;gt;git submodule update&amp;lt;/code&amp;gt; but providing you do the initial clone with &amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt; option, it should not be needed.&lt;br /&gt;
&lt;br /&gt;
Note the superbuild does not include any data repository or base files - you should separately download these or clone fgdata, and pass the location to fgfs when running in your preferred way, eg via the &amp;lt;code&amp;gt;--fg-root&amp;lt;/code&amp;gt; command line argument.&lt;br /&gt;
&lt;br /&gt;
Once the clone is complete, check out the &amp;lt;code&amp;gt;next&amp;lt;/code&amp;gt; branch of fgmeta; the superbuild is not supported on the release branches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sh&amp;gt;&lt;br /&gt;
cd fgmeta&lt;br /&gt;
git checkout next&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!-- FIXME: Needs to be made compatible with the &amp;lt;source&amp;gt; tags: {{Git checkout|next}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Superbuild on Windows===&lt;br /&gt;
{{Main article|Superbuild on Windows}}&lt;br /&gt;
&lt;br /&gt;
Using VisualStudio / msbuild:&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
* CMake for Windows &lt;br /&gt;
* SVN (see [[Tools of the Trade#Source Code Management / Revision Control Systems|here]].)&lt;br /&gt;
* VisualStudio 2010 or 2012 (it should works, otherwise please report it)&lt;br /&gt;
* Optional: [http://www.microsoft.com/en-us/download/details.aspx?id=8279 Microsoft Windows SDK] (only required for 64-bit builds)&lt;br /&gt;
: If you get an error during the installation of the SDK, try uninstalling MSVC redist packages first, then installing the SDK without compilers and then finally re-installing MSVC.&lt;br /&gt;
* Optional: [http://www.microsoft.com/en-au/download/details.aspx?id=23691 Visual Studio 2010 SP1] (recommend you install this if you use the 2010 version; overcomes various issues users have had according to the forums.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We assume you have cloned fgmeta in C:\FGFS\fgmeta. All the example paths below work just fine if you replace C:\FGFS with G:\MyAwesomeDir\AnySubDir.&lt;br /&gt;
(Spaces in the paths are untested and might cause issues, but might work fine)&lt;br /&gt;
&lt;br /&gt;
The steps are as follows:&lt;br /&gt;
* Make a build dir beside fgmeta - for example C:\FGFS\metabuild&lt;br /&gt;
* Run the CMake GUI, and select C:\FGFS\fgmeta as the source dir, and C:\FGFS\metabuild as the build dir&lt;br /&gt;
* Run 'Configure' once, and set CMAKE_INSTALL_PREFIX to C:\FGFS\metabuild\install (this step will be automated soon)&lt;br /&gt;
: If Subversion_SVN_EXECUTABLE is marked red, look for svn.exe in the folders under where SVN is installed and set it to point at that. &lt;br /&gt;
* Run 'Configure' again, and then 'Generate'.&amp;lt;br /&amp;gt;This step creates the ''FlightGear-Meta'' solution (.sln) in C:\FGFS\metabuild &lt;br /&gt;
* Build the FlightGear-Meta solution in C:\FGFS\metabuild&amp;lt;br /&amp;gt;&lt;br /&gt;
:This build step creates ''FlightGear.sln'' in C:\FGFS\metabuild\fgbuild&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: You can build the -Meta solution from a Visual Studio command prompt using msbuild, or open up the .sln in the IDE and hit build.&amp;lt;br /&amp;gt;To avoid build errors in the IDE, perform your first build using the 'Release' build configuration rather than a 'Debug' configuration. Building in 'Debug' configuration can fail if some release-mode files (such as for OpenSceneGraph) are not already present in their folders.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: The first time will be slow - OpenSceneGraph and Boost will be downloaded and compiled, followed by all of simgear and finally flightgear.&amp;lt;br /&amp;gt;If the build fails due to a &amp;quot;hash mismatch&amp;quot; in the OpenSceneGraph file, it could be because the source site itself is inaccessible or having temporary issues. To confirm this, check the presence and size of the downloaded OpenSceneGraph-x.x.x.zip file in C:\FGFS\metabuild\src . You might also try and obtain the file directly. To determine where SuperBuild is trying to get the file from, look for the OSG_SOURCE setting defined in C:\FGFS\fgmeta\CMakeLists.txt &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Once the -Meta build completes, you will already have a flyable executable in either C:\FGFS\metabuild\install\msvc100-64\FlightGear\bin or  C:\FGFS\metabuild\install\msvc100\FlightGear\bin depending on whether it's 64 or 32 bit. Other files such as fgrun.exe can be found and copied from the nearby folders under \install if required. (If you build with VS2012, you would rather get a msvc110 directory)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;It is easier to run FlightGear by closing the -Meta solution, and instead opening the FlightGear.sln in C:\FGFS\metabuild\fgbuild. From here you can set 'fgfs' as the startup project, enter any command line options, and debug / hack / run the code as normal.&lt;br /&gt;
&lt;br /&gt;
Note you will need to add the OpenSceneGraph install directory to the PATH variables in the 'fgfs' target properties; the dir will be something like C:\FGFS\metabuild\install\msvc100\OpenSceneGraph\bin.  Again this step will hopefully go away soon, but for the moment is still required.&lt;br /&gt;
&lt;br /&gt;
Using other generators / IDEs: untested, but quite likely to work if they already work with CMake. Try it out.&lt;br /&gt;
&lt;br /&gt;
===Superbuild on Linux===&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* compiler (probably GCC)&lt;br /&gt;
* CMake - available on all distros&lt;br /&gt;
* Boost - available on all distros&lt;br /&gt;
* development packages for your distribution. (For OpenGL, OpenAL and OpenSceneGraph dependencies such as FreeType)&lt;br /&gt;
&lt;br /&gt;
See [[Linux distribution required packages|here]] for some lists of packages names for distributions, but be aware these change or go out of date.&lt;br /&gt;
&lt;br /&gt;
(The follow assumes regular 'make' generator, other generators may work, testing welcome)&lt;br /&gt;
&lt;br /&gt;
* make &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; dir next to your fgmeta clone&lt;br /&gt;
* cd into the &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; dir&lt;br /&gt;
* run &amp;lt;code&amp;gt;cmake ../fgmeta -DCMAKE_INSTALL_PREFIX=$PWD/install -DCMAKE_BUILD_TYPE=Release&amp;lt;/code&amp;gt; (or Debug for a debug configuration)&lt;br /&gt;
* run &amp;lt;code&amp;gt;make -jN&amp;lt;/code&amp;gt;  (where N is as large a number as your system can support)&lt;br /&gt;
* make some coffee&lt;br /&gt;
* &amp;lt;code&amp;gt;fgfs&amp;lt;/code&amp;gt; should be in &amp;lt;code&amp;gt;install/bin&amp;lt;/code&amp;gt; directory&lt;br /&gt;
&lt;br /&gt;
===Superbuild on Mac===&lt;br /&gt;
&lt;br /&gt;
Make-based build works, XCode is more interesting. Probably only for the brave,&lt;br /&gt;
&lt;br /&gt;
==Maintenance ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |the Superbuild script isn't very well documented for people interested in maintaining/extending it - on the other hand, cmake itself is relatively straightforward, and we should be able to work out what is needed to also build your osgEarth branch using the Superbuild. The main thing that the Superbuild is built around is the '''ExternalProject''' notion, which is included at the top of the file: [http://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/CMakeLists.txt#l3 http://sourceforge.net/p/flightgear/fgm ... sts.txt#l3]&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=238199#p238199&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Buildings in OsgEarth&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Apr 09&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |the main directive is '''ExternalProject_Add()''' - e.g. see the section which builds boost: [http://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/CMakeLists.txt#l26 http://sourceforge.net/p/flightgear/fgm ... ts.txt#l26]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This directive is highly flexible and supports a huge variety of options (e.g. downloading options etc) - which are extensively covered at: [http://www.cmake.org/cmake/help/v3.0/module/ExternalProject.html http://www.cmake.org/cmake/help/v3.0/mo ... oject.html]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
An introduction can be found at: [http://www.kitware.com/media/html/BuildingExternalProjectsWithCMake2.8.html http://www.kitware.com/media/html/Build ... ke2.8.html]&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=238199#p238199&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Buildings in OsgEarth&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Apr 09&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Core development projects]]&lt;br /&gt;
[[Category:Building from source]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Robin_DR400_Ecoflyer&amp;diff=140404</id>
		<title>Robin DR400 Ecoflyer</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Robin_DR400_Ecoflyer&amp;diff=140404"/>
		<updated>2024-09-02T18:23:31Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Mark as stub.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Robin DR400-135cdi Ecoflyer''' is a single-engine four-seater aircraft built by the French company [[:Category:Robin Aircraft|Robin Aircraft]]. This variant of the DR400 family features a diesel engine built by Thielert/Continental and was one of the first general aviation aircraft to have a diesel engine instead of the conventional AVGAS engines. This means that the aircraft can fly using automotive-grade diesel fuel or JET-A1 fuel as typically used in commercial aviation.&lt;br /&gt;
&lt;br /&gt;
The FlightGear simulation of this aircraft was created using references, measurements and photos from a real DR400-135cdi aircraft, D-EAJZ.&lt;br /&gt;
&lt;br /&gt;
== Autopilot ==&lt;br /&gt;
The aircraft includes a simulation of the S-TEC Thirty autopilot which is controlled using two switches, two buttons on the control stick (currently not modelled) and the turn coordinator.&lt;br /&gt;
&lt;br /&gt;
The autopilot is simulated to work in detail like the real thing described in the [https://genesys-aerosystems.com/wp-content/uploads/2023/11/System-Twenty_Thirty_-ThirtyALT.pdf manual available online].&lt;br /&gt;
&lt;br /&gt;
=== Available Modes&amp;lt;ref&amp;gt;[https://genesys-aerosystems.com/wp-content/uploads/2023/11/System-Twenty_Thirty_-ThirtyALT.pdf Autopilot Manual, p. 1-3]&amp;lt;/ref&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== Lateral (Roll) ====&lt;br /&gt;
&lt;br /&gt;
* '''ST:''' Stabilizer Mode: Hold Wings Level&lt;br /&gt;
* '''HD:''' Heading Mode: Turn to and Hold Heading (as selected on the directional gyro, to the right of the Turn Coordinator/Roll Computer)&lt;br /&gt;
* '''TRK:''' Track a Navigation beacon&lt;br /&gt;
** '''TRK LO:''' Track using small corrections, typically for following a '''VOR'''&lt;br /&gt;
** '''TRK HI:''' Track using larger corrections, typically for following a '''LOC'''&lt;br /&gt;
&lt;br /&gt;
==== Vertical (Pitch) ====&lt;br /&gt;
There is only one pitch mode available, altitude hold ('''ALT'''). It holds the altitude that it is engaged at. This is accomplished by holding the absolute pressure as measured by its own altitude transducer connected to the aircraft's static pressure line.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial ===&lt;br /&gt;
'''Please note:''' The following tutorial assumes that you're in stable flight, the engine and avionics are switched on and without malfunction.&lt;br /&gt;
[[File:DR400-Ecoflyer Autopilot Control Elements.jpg|alt=Control Elements for the S-TEC Thirty Autopilot System|frameless|800x800px]]&lt;br /&gt;
&lt;br /&gt;
==== Switching on the Autopilot ====&lt;br /&gt;
&lt;br /&gt;
# Switch on the Autopilot Master Switch&lt;br /&gt;
# The autopilot performs a self-test. Wait until the test is done, indicated by the green &amp;quot;RDY&amp;quot; (Ready) light on the Turn Coordinator.&lt;br /&gt;
# Use the Mode Button to select one of the lateral (roll) modes.&lt;br /&gt;
# (Optionally) Engage the Altitude Hold mode by pressing the 'makeshift' altitude click spot next to the the altitude indicator light (use Ctrl-c to spot it).&lt;br /&gt;
&lt;br /&gt;
==== Trim Functionality ====&lt;br /&gt;
The autopilot is '''not connected''' to the aircraft's elevator trim, but can generate commands to the pilot to trim the aircraft up or down in order to relieve load from the pitch servos and improve aerodynamics. To use this functionality, switch on the '''Trim Switch''' next to the Autopilot Master Switch and engage the Altitude Hold mode. When the autopilot detects an out-of-trim condition, the '''TRIM UP''' or '''TRIM DN''' indicator lights will illuminate. Trim the aircraft to the commanded direction using the elevator trim wheel until the indicator light extinguishes.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://www.vliegclubseppe.nl/bestanden/2016-poh-robins.pdf Pilot's Operating Handbook Supplement] (for Continental CD-135 engine)&lt;br /&gt;
* [https://mfgo.ch/wp-content/uploads/HB-KLM_AFM.pdf DR400-140B Pilot's Operating Handbook] ''[broken link as of 08/2024]''&lt;br /&gt;
* [http://www.tmg-service.de/doc-download/manuals/OM-02-02_4-6_EASA_Version.pdf Engine Operating Manual] (CD-135 and CD-155)&lt;br /&gt;
* [https://www.easa.europa.eu/sites/default/files/dfu/TCDS_P094_issue03_20150319_1.0.pdf Propeller Type-Certificate Data Sheet]&lt;br /&gt;
* [http://www.tmg-service.de/doc-download/manuals/AMM-60-02_1-5s.pdf Airplane Maintenance Manual Supplement] (for Continental CD-135 engine)&lt;br /&gt;
* [https://genesys-aerosystems.com/wp-content/uploads/2023/11/System-Twenty_Thirty_-ThirtyALT.pdf S-TEC Thirty Autopilot Manual]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_767-300&amp;diff=140403</id>
		<title>Boeing 767-300</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_767-300&amp;diff=140403"/>
		<updated>2024-09-02T18:23:12Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Mark as stub.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Boeing 767-300''' is a long-range civil [[aircraft]], built by [[Boeing]]. It was first flown in 1986, and is still operated by many major airlines. The '''767-300''' is expected to be replaced gradually by the new [[Boeing 787]], in the future. It has a Freight version (767-300F), aswell as an Extended Range (Boeing 767-300ER) version, which has a longer service range and fuel capacity.&lt;br /&gt;
&lt;br /&gt;
The 767-300's direct competitor from [[Airbus]] is the [[Airbus A330-200|A330-200]]. The 767-300 is expected to be replaced by the [[Boeing 787|787-8]] in Boeing's lineup. As of August 2009, total orders for the 767-300/300ER/300F stand at 749 with 690 delivered. This includes 104 orders (all delivered) for the -300, 563 orders for the -300ER (535 delivered), and 82 orders for the -300F (51 delivered). A total of 661 Boeing 767-300/-300ER/-300F aircraft were in airline service as of July 2009.&lt;br /&gt;
&lt;br /&gt;
Stretched 269-passenger version, with 3.07 m (10 ft 1 in) plug forward of wing and 3.35 m (11 ft) plug aft, and same gross weight as 767-200; strengthened landing gear and thicker metal in parts of fuselage and underwing skin; same flight deck and systems as other 767s; same engine options as 767-200ER; first ordered (by Japan Airlines) 29 September 1983. First flight with JT9D-7R4D engines 30 January 1986; certified with JT9D-7R4D and CF6-80A2 22 September 1986. First delivery (Japan Airlines) 25 September 1986. British Airways ordered 11 in August 1987, later increased to total 25, with Rolls-Royce RB211-524H engines; delivered from 8 February 1990. No longer available; weight and performance data in 2000-01 and previous Jane's.&lt;br /&gt;
&lt;br /&gt;
=== Key features ===&lt;br /&gt;
&lt;br /&gt;
- The 767-300 typically cruises at 530mph, at a ceiling of 35,000ft.&lt;br /&gt;
- The 767-300 variant has 230 seats in standard 3 class configuration.&lt;br /&gt;
&lt;br /&gt;
* YASim FDM. &lt;br /&gt;
* Autostart control. &lt;br /&gt;
* Followme vehicle and other airport operations. Follow-me vehicle turns with aircraft and rotates on an axis when aircraft rudder is turned.&lt;br /&gt;
* Lights on automatically on autostart. to be switchable in future.&lt;br /&gt;
* Wing view/Tail view/Gear view. &lt;br /&gt;
* Livery Selection Dialog.&lt;br /&gt;
* Tyre smoke on landing. &lt;br /&gt;
* 3D cockpit with some panels and instruments modelled (PFD, SFD, Yoke, Pedals etc). (subject to future enhancements).&lt;br /&gt;
* Autopilot does work using autopilot menu's, not cockpit buttons as of yet.&lt;br /&gt;
* 2 General Electric CF6-80C2B6 engines.&lt;br /&gt;
* Vapour trails/Contrails and take-off engine moisture. &lt;br /&gt;
* Cabin SFX (Seatbelt alarm, various atmospheric cabin announcements). &lt;br /&gt;
* Pushback (Goldhofer).&lt;br /&gt;
* Many animations complete, including flaps, ailerons, both v/h stabilizers, landing gear and speed-brakes. Gear doors to be animated.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Boeing_767 Wikipedia Boeing 767]&lt;br /&gt;
* [http://www.janes.com/aerospace/civil/news/jawa/boeing_767.shtml Jane's All The World's Aircraft Entry - Boeing 767]&lt;br /&gt;
&lt;br /&gt;
{{Boeing}}&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Beechcraft_35_Bonanza&amp;diff=140402</id>
		<title>Beechcraft 35 Bonanza</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Beechcraft_35_Bonanza&amp;diff=140402"/>
		<updated>2024-09-02T16:47:49Z</updated>

		<summary type="html">&lt;p&gt;Ranguli: Mark that development is stalled&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stalled|date=October 2014&amp;lt;ref name=&amp;quot;Github&amp;quot;&amp;gt;https://github.com/flyingfisch/beech-v35/commits/master/&amp;lt;/ref&amp;gt;}}{{infobox Aircraft&lt;br /&gt;
|image    = Bonanza retracting gears.png&lt;br /&gt;
|name     = Beech B35 Bonanza&lt;br /&gt;
|livery   =&lt;br /&gt;
|type     = Civil utility aircraft&lt;br /&gt;
|fdm      = YASim&lt;br /&gt;
|status   = Alpha&lt;br /&gt;
|authors  = flyingfisch, bitwisetech (dood)&lt;br /&gt;
|fgname   = beech-v35&lt;br /&gt;
|download = https://github.com/flyingfisch/beech-v35&lt;br /&gt;
| status-fdm     = 2&lt;br /&gt;
| status-systems = 2&lt;br /&gt;
| status-cockpit = 3&lt;br /&gt;
| status-model   = 2&lt;br /&gt;
}}&lt;br /&gt;
[[File:Beech bonanza with panel lights on.png|thumb|Beech Bonanza with panel lights on.]]&lt;br /&gt;
The Beechcraft Bonanza is an American general aviation aircraft introduced in 1947 by Beech Aircraft Corporation of Wichita, Kansas. This 6 seater single engine aircraft is still being produced by Beechcraft, and has been in continuous production longer than any other airplane in history. More than 17,000 Bonanzas of all variants have been built.&amp;lt;ref name=&amp;quot;Wikipedia&amp;quot;&amp;gt;[https://en.wikipedia.org/wiki/Beechcraft_Bonanza]Wikipedia&amp;lt;/ref&amp;gt; The Flightgear model is an A35.&lt;br /&gt;
&lt;br /&gt;
==Aircraft Help==&lt;br /&gt;
[[File:Bonanza rbf.png|thumb|Remove Before Flight flag on the Bonanza's pitot tube.]]&lt;br /&gt;
[[File:Bonanza cockpit.png|thumb|Beech bonanza cockpit.]]&lt;br /&gt;
&lt;br /&gt;
===Notes ===  &lt;br /&gt;
*Most of the panel buttons have tooltips, if you are unsure of what something does just hover over it.&lt;br /&gt;
&lt;br /&gt;
===Startup=== &lt;br /&gt;
#Remove pitot cover and intake plugs (click on them). You can use the walker, or just an external view to do this.&lt;br /&gt;
#Throttle 30%.&lt;br /&gt;
#Master switch (located on chrome center piece) to 'on'.&lt;br /&gt;
#Parking brake on (located below dash on right, colored white-ish. Hover to make sure.)&lt;br /&gt;
#Cowl flaps open (located below dash on left, colored white-ish. Hover to make sure.)&lt;br /&gt;
#Press '}' three times, or click the piece of chrome that the yoke tube goes into to hide the yoke and use the key.&lt;br /&gt;
#Press 's' or click the key.&lt;br /&gt;
&lt;br /&gt;
==To do==&lt;br /&gt;
https://github.com/flyingfisch/beech-v35/blob/master/TODO.md&lt;br /&gt;
&lt;br /&gt;
==Photo Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Bonanza_at_KAKR_sunrise.png | Beech Bonanza and sunrise. @FlightGear, @ALS: Sky coloring++&lt;br /&gt;
Bonanza at sunrise.png|The Beech Bonanza just before sunrise&lt;br /&gt;
Bonanza sunrise kakr.png|The Beech Bonanza at KAKR. The [[Akron-Fulton_International_Airport#Goodyear_Airdock | Goodyear Airdock]] is visible behind the plane.&lt;br /&gt;
Bonanza sunrise kakr 2.png|Another shot of the Beech Bonanza at KAKR.&lt;br /&gt;
Standing next to the bonanza kakr.png|Standing next to the beech bonanza at KAKR&lt;br /&gt;
Bonanza from side sunrise.png|Looking at the interior and instrument panel right after sunrise.&lt;br /&gt;
Bonanza interior at sunrise.png|The interior of the Bonanza at sunrise.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Beechcraft}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Civil utility aircraft]]&lt;br /&gt;
[[Category:Low wing aircraft]]&lt;br /&gt;
[[Category:Propeller aircraft]]&lt;br /&gt;
[[Category:Single-engine aircraft]]&lt;/div&gt;</summary>
		<author><name>Ranguli</name></author>
	</entry>
</feed>