<?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=Jaxsin</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=Jaxsin"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Jaxsin"/>
	<updated>2026-04-28T14:25:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Install_aircraft&amp;diff=97221</id>
		<title>Howto:Install aircraft</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Install_aircraft&amp;diff=97221"/>
		<updated>2016-04-18T15:09:59Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: updated with Git info for renaming the folder so FG will work as expected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{installing}}&lt;br /&gt;
&lt;br /&gt;
The latest official [[aircraft]] can be downloaded at [http://www.flightgear.org/download/ FlightGear.org Aircraft], which then usually require unzipping software to extract from a compressed file format. Then these must be manually installed in a FlightGear software installation to use. The details depend on the method of download, operating system, and user setup.  Alternatively if you are using the [[FlightGear Build Server|nightly builds]] or a [[Building FlightGear|version controlled copy of FlightGear]], or you wish to manage your aircraft collection using version control tools, the aircraft can be obtained directly from the [[FGAddon|official FlightGear aircraft repository - FGAddon]].&lt;br /&gt;
&lt;br /&gt;
== Installation process ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
(Ubuntu 12.04) &lt;br /&gt;
# Download the aircraft&lt;br /&gt;
# Create a directory to store your aircraft if you have not already done so. Make sure this directory is outside &amp;lt;tt&amp;gt;/usr/share/games/flightgear/&amp;lt;/tt&amp;gt;. For example, use &amp;lt;tt&amp;gt;/home/{YourUserName}/FlightGear/Aircraft&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Extract your aircraft file into the folder (the one you created above)&lt;br /&gt;
#: unzip XXXXX.zip&lt;br /&gt;
# Start up FlightGear. Append the root aircraft folder (&amp;lt;tt&amp;gt;/home/{YourUserName}/FlightGear/Aircraft&amp;lt;/tt&amp;gt; in our example) to the $FG_AIRCRAFT list on the first page (previous to aircraft selection) of the launcher. Your aircraft should now show up in the list.&lt;br /&gt;
&lt;br /&gt;
=== Macintosh OS X ===&lt;br /&gt;
{{out of date}}&lt;br /&gt;
&lt;br /&gt;
# Open GUI Launcher for FlightGear Mac&lt;br /&gt;
# Click on &amp;quot;Others&amp;quot; tab at middle right of launcher&lt;br /&gt;
# Click &amp;quot;Install Add-On Data&amp;quot; link at bottom of launcher&lt;br /&gt;
# Select aircraft folder from menu, and click &amp;quot;Open&amp;quot;&lt;br /&gt;
# Click OK on pop-up box.&lt;br /&gt;
&lt;br /&gt;
Please note: For Mac users, the above will not work if you have not installed FG to the applications folder. If you do not want to put your version of FG in your applications folder, you can place it in a separate folder of your own creation. That will allow the above aircraft (&amp;amp; scenery) installation method to work correctly/&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
# Download an aircraft and save it on your desktop.&lt;br /&gt;
# Unzip the file using a file archiver, for example the open source file archiver [http://www.7-zip.org/ 7-Zip].&lt;br /&gt;
# Create a directory to store your aircraft if you have not already done so. Make sure this directory is outside your &amp;lt;tt&amp;gt;[[$FG_ROOT]]&amp;lt;/tt&amp;gt; directory. For example, use &amp;lt;tt&amp;gt;C:\Users\{YourUserName}\Documents\FlightGear\Aircraft&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Move the unzipped folder (usually the aircraft's name) to your that aircraft directory.&lt;br /&gt;
# Start up FlightGear. Append the root aircraft folder  (&amp;lt;tt&amp;gt;C:\Users\{YourUserName}\Documents\FlightGear\Aircraft&amp;lt;/tt&amp;gt; in our example) to the &amp;lt;tt&amp;gt;[[$FG_AIRCRAFT]]&amp;lt;/tt&amp;gt; list on the first page (previous to aircraft selection) of the launcher. Your aircraft should now show up in the list.&lt;br /&gt;
&lt;br /&gt;
== When installing an aircraft fails ==&lt;br /&gt;
=== XML files with wrong encoding === &lt;br /&gt;
If you start FlightGear with the new plane you installed and there is no cockpit or exterior, this may be because the XML files are in the wrong encoding.&lt;br /&gt;
&lt;br /&gt;
To fix this on Linux try this:&lt;br /&gt;
&lt;br /&gt;
 $ cd path/to/aircraft/directory/&lt;br /&gt;
 $ find . -name &amp;quot;*.xml&amp;quot; -print | xargs sed -i 's/&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;/&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;/g'&lt;br /&gt;
&lt;br /&gt;
=== Rename Aircraft Folder ===&lt;br /&gt;
If you start FlightGear with the aircraft you installed it is invisible or if FlightGear will not start with your newly installed aircraft, but will start with other aircraft you might need to rename the aircraft folder.&lt;br /&gt;
&lt;br /&gt;
If there is a readme file have a look there for instructions, otherwise try change to more obvious names like renaming for example &amp;quot;A320-master&amp;quot; to &amp;quot;A320&amp;quot; or &amp;quot;boeing-707&amp;quot; to &amp;quot;707&amp;quot;.  If that does not work ask around on the [[Howto:Multiplayer#Multiplayer chat|multiplayer chat]], [[FlightGear IRC channel|IRC]] or on the [http://forum.flightgear.org/viewforum.php?f=11 forum].&lt;br /&gt;
&lt;br /&gt;
==== Installing From Git Repo ====&lt;br /&gt;
If you have downloaded a *.zip file of an aircraft from github or other online repository you must rename the extracted folder name and remove the -[branch] tag. The folder name must correspond to the [/b]&amp;lt;aircraft&amp;gt;[/b]-set.xml file contained inside of the extracted folder. This is something that git automatically does when you download a zip file. The better way would be to learn and use git&lt;br /&gt;
&lt;br /&gt;
 $ git clone http://repo.address/here.git&lt;br /&gt;
&lt;br /&gt;
== Choosing aircraft ==&lt;br /&gt;
If you are looking for information to decide what aircraft to download, try:&lt;br /&gt;
* [[Aircraft]]&lt;br /&gt;
* [[Helicopter]]&lt;br /&gt;
* [[Vehicle]]&lt;br /&gt;
* [[Table of models]]&lt;br /&gt;
External links to third party aircraft can be found at [[FlightGear hangars]]. Remember that the latest aircraft may not load with previous versions. If you happen to use an older version of FlightGear, look for older aircraft in the links section.&lt;br /&gt;
&lt;br /&gt;
== For developers ==&lt;br /&gt;
Help develop the [[FlightGear Package Manager]] which is intended to support automatic aircraft and scenery installation, currently in alpha development and in need of testing.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Installing Scenery]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|Install aircraft]]&lt;br /&gt;
&lt;br /&gt;
[[de:Howto:Flugzeuge Installieren]]&lt;br /&gt;
[[es:Cómo:Instalar_aviones]]&lt;br /&gt;
[[fr:Howto Installer un avion]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Install_aircraft&amp;diff=97220</id>
		<title>Howto:Install aircraft</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Install_aircraft&amp;diff=97220"/>
		<updated>2016-04-18T15:04:22Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* The aircraft folder have to be renamed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{installing}}&lt;br /&gt;
&lt;br /&gt;
The latest official [[aircraft]] can be downloaded at [http://www.flightgear.org/download/ FlightGear.org Aircraft], which then usually require unzipping software to extract from a compressed file format. Then these must be manually installed in a FlightGear software installation to use. The details depend on the method of download, operating system, and user setup.  Alternatively if you are using the [[FlightGear Build Server|nightly builds]] or a [[Building FlightGear|version controlled copy of FlightGear]], or you wish to manage your aircraft collection using version control tools, the aircraft can be obtained directly from the [[FGAddon|official FlightGear aircraft repository - FGAddon]].&lt;br /&gt;
&lt;br /&gt;
== Installation process ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
(Ubuntu 12.04) &lt;br /&gt;
# Download the aircraft&lt;br /&gt;
# Create a directory to store your aircraft if you have not already done so. Make sure this directory is outside &amp;lt;tt&amp;gt;/usr/share/games/flightgear/&amp;lt;/tt&amp;gt;. For example, use &amp;lt;tt&amp;gt;/home/{YourUserName}/FlightGear/Aircraft&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Extract your aircraft file into the folder (the one you created above)&lt;br /&gt;
#: unzip XXXXX.zip&lt;br /&gt;
# Start up FlightGear. Append the root aircraft folder (&amp;lt;tt&amp;gt;/home/{YourUserName}/FlightGear/Aircraft&amp;lt;/tt&amp;gt; in our example) to the $FG_AIRCRAFT list on the first page (previous to aircraft selection) of the launcher. Your aircraft should now show up in the list.&lt;br /&gt;
&lt;br /&gt;
=== Macintosh OS X ===&lt;br /&gt;
{{out of date}}&lt;br /&gt;
&lt;br /&gt;
# Open GUI Launcher for FlightGear Mac&lt;br /&gt;
# Click on &amp;quot;Others&amp;quot; tab at middle right of launcher&lt;br /&gt;
# Click &amp;quot;Install Add-On Data&amp;quot; link at bottom of launcher&lt;br /&gt;
# Select aircraft folder from menu, and click &amp;quot;Open&amp;quot;&lt;br /&gt;
# Click OK on pop-up box.&lt;br /&gt;
&lt;br /&gt;
Please note: For Mac users, the above will not work if you have not installed FG to the applications folder. If you do not want to put your version of FG in your applications folder, you can place it in a separate folder of your own creation. That will allow the above aircraft (&amp;amp; scenery) installation method to work correctly/&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
# Download an aircraft and save it on your desktop.&lt;br /&gt;
# Unzip the file using a file archiver, for example the open source file archiver [http://www.7-zip.org/ 7-Zip].&lt;br /&gt;
# Create a directory to store your aircraft if you have not already done so. Make sure this directory is outside your &amp;lt;tt&amp;gt;[[$FG_ROOT]]&amp;lt;/tt&amp;gt; directory. For example, use &amp;lt;tt&amp;gt;C:\Users\{YourUserName}\Documents\FlightGear\Aircraft&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Move the unzipped folder (usually the aircraft's name) to your that aircraft directory.&lt;br /&gt;
# Start up FlightGear. Append the root aircraft folder  (&amp;lt;tt&amp;gt;C:\Users\{YourUserName}\Documents\FlightGear\Aircraft&amp;lt;/tt&amp;gt; in our example) to the &amp;lt;tt&amp;gt;[[$FG_AIRCRAFT]]&amp;lt;/tt&amp;gt; list on the first page (previous to aircraft selection) of the launcher. Your aircraft should now show up in the list.&lt;br /&gt;
&lt;br /&gt;
== When installing an aircraft fails ==&lt;br /&gt;
=== XML files with wrong encoding === &lt;br /&gt;
If you start FlightGear with the new plane you installed and there is no cockpit or exterior, this may be because the XML files are in the wrong encoding.&lt;br /&gt;
&lt;br /&gt;
To fix this on Linux try this:&lt;br /&gt;
&lt;br /&gt;
 $ cd path/to/aircraft/directory/&lt;br /&gt;
 $ find . -name &amp;quot;*.xml&amp;quot; -print | xargs sed -i 's/&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;/&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;/g'&lt;br /&gt;
&lt;br /&gt;
=== Rename Aircraft Folder ===&lt;br /&gt;
If you start FlightGear with the aircraft you installed it is invisible or if FlightGear will not start with your newly installed aircraft, but will start with other aircraft you might need to rename the aircraft folder.&lt;br /&gt;
&lt;br /&gt;
If there is a readme file have a look there for instructions, otherwise try change to more obvious names like renaming for example &amp;quot;A320-master&amp;quot; to &amp;quot;A320&amp;quot; or &amp;quot;boeing-707&amp;quot; to &amp;quot;707&amp;quot;.  If that does not work ask around on the [[Howto:Multiplayer#Multiplayer chat|multiplayer chat]], [[FlightGear IRC channel|IRC]] or on the [http://forum.flightgear.org/viewforum.php?f=11 forum].&lt;br /&gt;
&lt;br /&gt;
== Choosing aircraft ==&lt;br /&gt;
If you are looking for information to decide what aircraft to download, try:&lt;br /&gt;
* [[Aircraft]]&lt;br /&gt;
* [[Helicopter]]&lt;br /&gt;
* [[Vehicle]]&lt;br /&gt;
* [[Table of models]]&lt;br /&gt;
External links to third party aircraft can be found at [[FlightGear hangars]]. Remember that the latest aircraft may not load with previous versions. If you happen to use an older version of FlightGear, look for older aircraft in the links section.&lt;br /&gt;
&lt;br /&gt;
== For developers ==&lt;br /&gt;
Help develop the [[FlightGear Package Manager]] which is intended to support automatic aircraft and scenery installation, currently in alpha development and in need of testing.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Installing Scenery]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|Install aircraft]]&lt;br /&gt;
&lt;br /&gt;
[[de:Howto:Flugzeuge Installieren]]&lt;br /&gt;
[[es:Cómo:Instalar_aviones]]&lt;br /&gt;
[[fr:Howto Installer un avion]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96479</id>
		<title>Microsoft Windows issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96479"/>
		<updated>2016-03-30T15:09:21Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Terrasync - Known Issues */ added a link to the PowerShell script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Can't locate data files - first time install==&lt;br /&gt;
{{Note|Default locations of $FG_ROOT, is the path of your installation directory. Examples are here [[$FG_ROOT]]. If you changed your installation directory during install of FlightGear then use that path instead}}&lt;br /&gt;
After a first time install and upon running FlightGear for the first time you see this dialog&lt;br /&gt;
&lt;br /&gt;
[[File:Flightgear missing data files.PNG|Error box for FlightGear when it does not know the location of the correct data files]]&lt;br /&gt;
&lt;br /&gt;
'''Resolution''' - Tell FlightGear where to find the data files that were installed. I present here 3 options. Whichever you choose, make sure you update the '''PATH''' according to your installation directory&lt;br /&gt;
*'''Choose Folder''' and point it to [[$FG_ROOT]] &lt;br /&gt;
*Paste these 3 lines inside of Notepad.exe, or some other editor, '''save as''' &amp;lt;code&amp;gt;fg-root.reg&amp;lt;/code&amp;gt; file to desktop, then double click the file and add the entry to registry&lt;br /&gt;
{{Note|Yes, you need the double \\ in the path}}&lt;br /&gt;
::&amp;lt;syntaxhighlight lang=&amp;quot;reg&amp;quot;&amp;gt;Windows Registry Editor Version 5.00 &lt;br /&gt;
[HKEY_CURRENT_USER\SOFTWARE\FlightGear\FlightGear]&lt;br /&gt;
&amp;quot;fg-root&amp;quot;=&amp;quot;C:\\Program Files\\FlightGear 2016.1.1\\data&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*Open up '''regedit''' and add &amp;lt;code&amp;gt;fg-root&amp;lt;/code&amp;gt; '''Key''' as a '''string''' value of [[$FG_ROOT]]&lt;br /&gt;
&lt;br /&gt;
==Terrasync - Known Issues==&lt;br /&gt;
===Failed to remove file===&lt;br /&gt;
&amp;lt;code&amp;gt;file remove failed: (./.terrasync_cache)  reason: Permission denied&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TerraSync cache files can not be deleted. You will see errors in console like above. There is not much to do other then delete the &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files manually and then run FlightGear again.&lt;br /&gt;
&lt;br /&gt;
'''Resolution'''&lt;br /&gt;
{{Note|Not recommended. Understand the consequences}} &lt;br /&gt;
[http://forum.flightgear.org/viewtopic.php?f=17&amp;amp;t=28957&amp;amp;p=278275#p278275 Forum Post w/ PowerShell command is here]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96476</id>
		<title>Microsoft Windows issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96476"/>
		<updated>2016-03-30T14:16:07Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Can't locate data files - new install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Can't locate data files - first time install==&lt;br /&gt;
{{Note|Default locations of $FG_ROOT, is the path of your installation directory. Examples are here [[$FG_ROOT]]. If you changed your installation directory during install of FlightGear then use that path instead}}&lt;br /&gt;
After a first time install and upon running FlightGear for the first time you see this dialog&lt;br /&gt;
&lt;br /&gt;
[[File:Flightgear missing data files.PNG|Error box for FlightGear when it does not know the location of the correct data files]]&lt;br /&gt;
&lt;br /&gt;
'''Resolution''' - Tell FlightGear where to find the data files that were installed. I present here 3 options. Whichever you choose, make sure you update the '''PATH''' according to your installation directory&lt;br /&gt;
*'''Choose Folder''' and point it to [[$FG_ROOT]] &lt;br /&gt;
*Paste these 3 lines inside of Notepad.exe, or some other editor, '''save as''' &amp;lt;code&amp;gt;fg-root.reg&amp;lt;/code&amp;gt; file to desktop, then double click the file and add the entry to registry&lt;br /&gt;
{{Note|Yes, you need the double \\ in the path}}&lt;br /&gt;
::&amp;lt;syntaxhighlight lang=&amp;quot;reg&amp;quot;&amp;gt;Windows Registry Editor Version 5.00 &lt;br /&gt;
[HKEY_CURRENT_USER\SOFTWARE\FlightGear\FlightGear]&lt;br /&gt;
&amp;quot;fg-root&amp;quot;=&amp;quot;C:\\Program Files\\FlightGear 2016.1.1\\data&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*Open up '''regedit''' and add &amp;lt;code&amp;gt;fg-root&amp;lt;/code&amp;gt; '''Key''' as a '''string''' value of [[$FG_ROOT]]&lt;br /&gt;
&lt;br /&gt;
==Terrasync - Known Issues==&lt;br /&gt;
===Failed to remove file===&lt;br /&gt;
&amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files can not be deleted. You will see errors in console. There is not much to do other then delete the &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files manually and then run FlightGear again to let it recreate the up-to-date &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
''insert powershell script here to help with this for those that want to try.''&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96474</id>
		<title>Microsoft Windows issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96474"/>
		<updated>2016-03-30T13:13:35Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Can't locate '''data''' files - new install==&lt;br /&gt;
{{Note|Default locations of $FG_ROOT, is the path of your installation directory. Examples are here [[$FG_ROOT]]. If you changed your installation directory during install of FlightGear then use that path instead}}&lt;br /&gt;
After a new install and upon running FlightGear for the first time you see this dialog&lt;br /&gt;
&lt;br /&gt;
[[File:Flightgear missing data files.PNG|Error box for FlightGear when it does not know the location of the correct data files]]&lt;br /&gt;
&lt;br /&gt;
'''Resolution''' - Tell FlightGear where to find the data files that were installed. I present here 3 options. Whichever you choose, make sure you update the '''PATH''' according to your installation directory&lt;br /&gt;
*'''Choose Folder''' and point it to [[$FG_ROOT]] &lt;br /&gt;
*Paste these 3 lines inside of Notepad.exe, or some other editor, '''save as''' &amp;lt;code&amp;gt;fg-root.reg&amp;lt;/code&amp;gt; file to desktop, then double click the file and add the entry to registry&lt;br /&gt;
{{Note|Yes, you need the double \\ in the path}}&lt;br /&gt;
::&amp;lt;syntaxhighlight lang=&amp;quot;reg&amp;quot;&amp;gt;Windows Registry Editor Version 5.00 &lt;br /&gt;
[HKEY_CURRENT_USER\SOFTWARE\FlightGear\FlightGear]&lt;br /&gt;
&amp;quot;fg-root&amp;quot;=&amp;quot;C:\\Program Files\\FlightGear 2016.1.1\\data&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*Open up '''regedit''' and add &amp;lt;code&amp;gt;fg-root&amp;lt;/code&amp;gt; '''Key''' as a '''string''' value of [[$FG_ROOT]]&lt;br /&gt;
&lt;br /&gt;
==Terrasync - Known Issues==&lt;br /&gt;
===Failed to remove file===&lt;br /&gt;
&amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files can not be deleted. You will see errors in console. There is not much to do other then delete the &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files manually and then run FlightGear again to let it recreate the up-to-date &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
''insert powershell script here to help with this for those that want to try.''&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96473</id>
		<title>Microsoft Windows issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96473"/>
		<updated>2016-03-30T13:12:33Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Updated with proper image and streamlined the fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|Creating this page to post solutions for new users to FlightGear on Microsoft Windows systems 7, 8.1, 10}}&lt;br /&gt;
&lt;br /&gt;
==Can't locate '''data''' files - new install==&lt;br /&gt;
{{Note|Default locations of $FG_ROOT, is the path of your installation directory. Examples are here [[$FG_ROOT]]. If you changed your installation directory during install of FlightGear then use that path instead}}&lt;br /&gt;
After a new install and upon running FlightGear for the first time you see this dialog&lt;br /&gt;
&lt;br /&gt;
[[File:Flightgear missing data files.PNG|Error box for FlightGear when it does not know the location of the correct data files]]&lt;br /&gt;
&lt;br /&gt;
'''Resolution''' - Tell FlightGear where to find the data files that were installed. I present here 3 options. Whichever you choose, make sure you update the '''PATH''' according to your installation directory&lt;br /&gt;
*'''Choose Folder''' and point it to [[$FG_ROOT]] &lt;br /&gt;
*Paste these 3 lines inside of Notepad.exe, or some other editor, '''save as''' &amp;lt;code&amp;gt;fg-root.reg&amp;lt;/code&amp;gt; file to desktop, then double click the file and add the entry to registry&lt;br /&gt;
{{Note|Yes, you need the double \\ in the path}}&lt;br /&gt;
::&amp;lt;syntaxhighlight lang=&amp;quot;reg&amp;quot;&amp;gt;Windows Registry Editor Version 5.00 &lt;br /&gt;
[HKEY_CURRENT_USER\SOFTWARE\FlightGear\FlightGear]&lt;br /&gt;
&amp;quot;fg-root&amp;quot;=&amp;quot;C:\\Program Files\\FlightGear 2016.1.1\\data&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*Open up '''regedit''' and add &amp;lt;code&amp;gt;fg-root&amp;lt;/code&amp;gt; '''Key''' as a '''string''' value of [[$FG_ROOT]]&lt;br /&gt;
&lt;br /&gt;
==Terrasync - Known Issues==&lt;br /&gt;
===Failed to remove file===&lt;br /&gt;
&amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files can not be deleted. You will see errors in console. There is not much to do other then delete the &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files manually and then run FlightGear again to let it recreate the up-to-date &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
''insert powershell script here to help with this for those that want to try.''&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Flightgear_missing_data_files.PNG&amp;diff=96472</id>
		<title>File:Flightgear missing data files.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Flightgear_missing_data_files.PNG&amp;diff=96472"/>
		<updated>2016-03-30T12:54:18Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Error box for FlightGear when it does not know the location of the correct data files}}&lt;br /&gt;
|date=2016-03-30&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Jaxsin|Jaxsin]]&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;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Flightgear error dialogs]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96471</id>
		<title>Microsoft Windows issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96471"/>
		<updated>2016-03-30T12:29:53Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Can't locate data files - new install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|Creating this page to post solutions for new users to FlightGear on Microsoft Windows systems 7, 8.1, 10}}&lt;br /&gt;
&lt;br /&gt;
==Can't locate '''data''' files - new install==&lt;br /&gt;
'''''Known bug'''''&lt;br /&gt;
*'''Resolution''' - Tell FlightGear where to find the data files that were installed. &lt;br /&gt;
:::''post img here''&lt;br /&gt;
:::You can also paste these 3 lines inside of Notepad and '''save as''' &amp;lt;code&amp;gt;fg-root.reg&amp;lt;/code&amp;gt; file to desktop, then double click the file and add the entry to registry&lt;br /&gt;
::::&amp;lt;syntaxhighlight lang=&amp;quot;reg&amp;quot;&amp;gt;Windows Registry Editor Version 5.00 &lt;br /&gt;
[HKEY_CURRENT_USER\SOFTWARE\FlightGear\FlightGear]&lt;br /&gt;
&amp;quot;fg-root&amp;quot;=&amp;quot;C:\\Program Files\\FlightGear 2016.1.1\\data&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:::Open up '''regedit''' and add &amp;lt;code&amp;gt;fg-root&amp;lt;/code&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
==Terrasync - Known Issues==&lt;br /&gt;
===Failed to remove file===&lt;br /&gt;
&amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files can not be deleted. You will see errors in console. There is not much to do other then delete the &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files manually and then run FlightGear again to let it recreate the up-to-date &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
''insert powershell script here to help with this for those that want to try.''&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96470</id>
		<title>Microsoft Windows issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Microsoft_Windows_issues&amp;diff=96470"/>
		<updated>2016-03-30T12:16:15Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Started to help new Windows users get going&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|Creating this page to post solutions for new users to FlightGear on Microsoft Windows systems 7, 8.1, 10}}&lt;br /&gt;
&lt;br /&gt;
==Can't locate '''data''' files - new install==&lt;br /&gt;
'''''Known bug'''''&lt;br /&gt;
*'''Resolution''' - Tell FlightGear where to find the data files that were installed. &lt;br /&gt;
:::''post img here''&lt;br /&gt;
:::You can also paste these 3 lines inside of Notepad and '''save as''' fg-root.reg to desktop, then double click the file and add the entry to registry&lt;br /&gt;
::::&amp;lt;syntaxhighlight lang=&amp;quot;reg&amp;quot;&amp;gt;Windows Registry Editor Version 5.00 &lt;br /&gt;
[HKEY_CURRENT_USER\SOFTWARE\FlightGear\FlightGear]&lt;br /&gt;
&amp;quot;fg-root&amp;quot;=&amp;quot;C:\\Program Files\\FlightGear 2016.1.1\\data&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:::Open up '''regedit''' and add &amp;lt;code&amp;gt;fg-root&amp;lt;/code&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
==Terrasync - Known Issues==&lt;br /&gt;
===Failed to remove file===&lt;br /&gt;
&amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files can not be deleted. You will see errors in console. There is not much to do other then delete the &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files manually and then run FlightGear again to let it recreate the up-to-date &amp;lt;code&amp;gt;.terrasync_cache&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
''insert powershell script here to help with this for those that want to try.''&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=$FG_ROOT&amp;diff=96469</id>
		<title>$FG ROOT</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=$FG_ROOT&amp;diff=96469"/>
		<updated>2016-03-30T09:59:00Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The environment variable &amp;lt;code&amp;gt;'''$FG_ROOT'''&amp;lt;/code&amp;gt; is referring to the path of the main data directory of [[FlightGear]], which contains the so called ''base package''. The base package consists of the default [[aircraft]] and [[scenery]], [[Menubar|GUI]] files, sounds, 3D models etc.&lt;br /&gt;
&lt;br /&gt;
When running FlightGear from a [[command line]], you can set &amp;lt;code&amp;gt;$FG_ROOT&amp;lt;/code&amp;gt; via &amp;lt;code&amp;gt;--fg-root=path/to/root&amp;lt;/code&amp;gt;. In [[FGRun]], it is set on the paths page, previous to the aircraft selection page.&lt;br /&gt;
&lt;br /&gt;
As of FlightGear 2.4, it is advised to install additional scenery and aircraft in &amp;lt;code&amp;gt;[[$FG_SCENERY]]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[[$FG_AIRCRAFT]]&amp;lt;/code&amp;gt; directories outside &amp;lt;code&amp;gt;$FG_ROOT&amp;lt;/code&amp;gt;. This allow for maintaining the additional stuff when installing a new version of FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Common paths ==&lt;br /&gt;
* '''Mac OS X:''' &amp;lt;code&amp;gt;Applications/FlightGear.app/Contents/Resources/data/&amp;lt;/code&amp;gt; (right-click on FlightGear.app and select &amp;quot;Show Package Contents&amp;quot; to see the Contents folder)&lt;br /&gt;
: &amp;lt;code&amp;gt;$FG_ROOT&amp;lt;/code&amp;gt; is not installed automatically. See [[New to FlightGear#Installing on Mac OS X|New to FlightGear]] for an installation manual.&lt;br /&gt;
* '''Ubuntu:''' &amp;lt;code&amp;gt;/usr/share/games/flightgear/&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Windows:''' &amp;lt;code&amp;gt;Program Files\FlightGear 2016.1.1\data\&amp;lt;/code&amp;gt; (default, '''see note!''')&lt;br /&gt;
&lt;br /&gt;
{{note|Newer '''Windows''' versions are very, very protective about the '''&amp;lt;code&amp;gt;Program Files&amp;lt;/code&amp;gt; folder'''.&lt;br /&gt;
&lt;br /&gt;
Installing FlightGear into this folder makes it prone to any problems relating to file read/write permissions. Hence, installing FlightGear into &amp;lt;code&amp;gt;Program Files&amp;lt;/code&amp;gt; on Windows Vista and later is not recommended. ''(I have yet to see where installing it outside of the default location actually helps - '''jaxsin''')''}}&lt;br /&gt;
&lt;br /&gt;
== $FG_DATA ==&lt;br /&gt;
You will sometimes see &amp;lt;code&amp;gt;$FG_ROOT&amp;lt;/code&amp;gt; erroneously being mentioned as &amp;lt;code&amp;gt;'''$FG_DATA'''&amp;lt;/code&amp;gt;.  While there is no &amp;lt;code&amp;gt;$FG_DATA&amp;lt;/code&amp;gt; environment variable, the SourceForge repository containing the base package is named &amp;lt;code&amp;gt;[[FGData]]&amp;lt;/code&amp;gt; and was earlier named &amp;lt;code&amp;gt;fgdata&amp;lt;/code&amp;gt; in Gitorious.&amp;lt;ref&amp;gt;https://www.mail-archive.com/search?q=fgdata&amp;amp;l=flightgear-devel%40lists.sourceforge.net&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://www.mail-archive.com/search?l=flightgear-devel%40lists.sourceforge.net&amp;amp;q=fg_data&amp;amp;x=0&amp;amp;y=0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Special directories|ROOT]]&lt;br /&gt;
&lt;br /&gt;
[[de:$FG ROOT]]&lt;br /&gt;
[[fr:$FG ROOT]]&lt;br /&gt;
[[nl:$FG_ROOT]]&lt;br /&gt;
[[es:$FG_ROOT]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=$FG_ROOT&amp;diff=96468</id>
		<title>$FG ROOT</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=$FG_ROOT&amp;diff=96468"/>
		<updated>2016-03-30T09:57:53Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The environment variable &amp;lt;code&amp;gt;'''$FG_ROOT'''&amp;lt;/code&amp;gt; is referring to the path of the main data directory of [[FlightGear]], which contains the so called ''base package''. The base package consists of the default [[aircraft]] and [[scenery]], [[Menubar|GUI]] files, sounds, 3D models etc.&lt;br /&gt;
&lt;br /&gt;
When running FlightGear from a [[command line]], you can set &amp;lt;code&amp;gt;$FG_ROOT&amp;lt;/code&amp;gt; via &amp;lt;code&amp;gt;--fg-root=path/to/root&amp;lt;/code&amp;gt;. In [[FGRun]], it is set on the paths page, previous to the aircraft selection page.&lt;br /&gt;
&lt;br /&gt;
As of FlightGear 2.4, it is advised to install additional scenery and aircraft in &amp;lt;code&amp;gt;[[$FG_SCENERY]]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[[$FG_AIRCRAFT]]&amp;lt;/code&amp;gt; directories outside &amp;lt;code&amp;gt;$FG_ROOT&amp;lt;/code&amp;gt;. This allow for maintaining the additional stuff when installing a new version of FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Common paths ==&lt;br /&gt;
* '''Mac OS X:''' &amp;lt;code&amp;gt;Applications/FlightGear.app/Contents/Resources/data/&amp;lt;/code&amp;gt; (right-click on FlightGear.app and select &amp;quot;Show Package Contents&amp;quot; to see the Contents folder)&lt;br /&gt;
: &amp;lt;code&amp;gt;$FG_ROOT&amp;lt;/code&amp;gt; is not installed automatically. See [[New to FlightGear#Installing on Mac OS X|New to FlightGear]] for an installation manual.&lt;br /&gt;
* '''Ubuntu:''' &amp;lt;code&amp;gt;/usr/share/games/flightgear/&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Windows:''' &amp;lt;code&amp;gt;Program Files\FlightGear 2016.1.1\data\&amp;lt;/code&amp;gt; (default, '''see note!''')&lt;br /&gt;
&lt;br /&gt;
{{note|Newer '''Windows''' versions are very, very protective about the '''&amp;lt;code&amp;gt;Program Files&amp;lt;/code&amp;gt; folder'''.&lt;br /&gt;
&lt;br /&gt;
Installing FlightGear into this folder makes it prone to any problems relating to file read/write permissions. Hence, installing FlightGear into &amp;lt;code&amp;gt;Program Files&amp;lt;/code&amp;gt; on Windows Vista and later is not recommended. (I have yet to see where installing it outside of the default location actually helps - jaxsin}}&lt;br /&gt;
&lt;br /&gt;
== $FG_DATA ==&lt;br /&gt;
You will sometimes see &amp;lt;code&amp;gt;$FG_ROOT&amp;lt;/code&amp;gt; erroneously being mentioned as &amp;lt;code&amp;gt;'''$FG_DATA'''&amp;lt;/code&amp;gt;.  While there is no &amp;lt;code&amp;gt;$FG_DATA&amp;lt;/code&amp;gt; environment variable, the SourceForge repository containing the base package is named &amp;lt;code&amp;gt;[[FGData]]&amp;lt;/code&amp;gt; and was earlier named &amp;lt;code&amp;gt;fgdata&amp;lt;/code&amp;gt; in Gitorious.&amp;lt;ref&amp;gt;https://www.mail-archive.com/search?q=fgdata&amp;amp;l=flightgear-devel%40lists.sourceforge.net&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://www.mail-archive.com/search?l=flightgear-devel%40lists.sourceforge.net&amp;amp;q=fg_data&amp;amp;x=0&amp;amp;y=0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Special directories|ROOT]]&lt;br /&gt;
&lt;br /&gt;
[[de:$FG ROOT]]&lt;br /&gt;
[[fr:$FG ROOT]]&lt;br /&gt;
[[nl:$FG_ROOT]]&lt;br /&gt;
[[es:$FG_ROOT]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Atlas&amp;diff=96380</id>
		<title>Atlas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Atlas&amp;diff=96380"/>
		<updated>2016-03-27T11:31:02Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Obsolete information. Needs author input to remove or update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Obsolete|Phi}}&lt;br /&gt;
&lt;br /&gt;
{{forum|31|Atlas}}&lt;br /&gt;
[[File:Atlas.jpg|thumb|270px|Atlas map view of the San Francisco bay area]]&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Atlas aims to produce and display high quality charts of the World for users of FlightGear&amp;quot;'' - [http://atlas.sourceforge.net Atlas website] &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The '''Atlas''' program lets FlightGear users display a real-time &amp;quot;moving-map&amp;quot; of their flight. Atlas is an independent software project, distributed under the same free (GPL) software license as FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Installation (only for 0.3.x version) ==&lt;br /&gt;
&lt;br /&gt;
=== Installing on Windows ===&lt;br /&gt;
To install Atlas on Windows, download the &amp;quot;installer&amp;quot; version of Atlas from the [http://atlas.sourceforge.net/index.php?page=download Download Page]&lt;br /&gt;
&lt;br /&gt;
For example, download '''atlas-0.3.0-win32-setup.exe''', and run it. The installer will prompt you for the FlightGear directory. If you installed FlightGear in the default directory, &amp;quot;C:\Program Files\FlightGear&amp;quot;, accept the default setting. If you don't know your FlightGear directory, you can right-click your FlightGear icon, click properties then look at the &amp;quot;target&amp;quot;. Your root FlightGear directory is the part of the target before the text &amp;quot;\bin\win32\fgrun.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
After finishing the install wizard, but before running Atlas, the next step is to create the actual maps used by Atlas.&lt;br /&gt;
&lt;br /&gt;
=== Installing on Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are lucky, you might find that Atlas is available from your distribution's repository. &lt;br /&gt;
&lt;br /&gt;
It could be called fgfs-atlas or similar so you'd just type in the following (or use synaptic or some other package installation program):-&lt;br /&gt;
&lt;br /&gt;
 apt-get install fgfs-atlas&lt;br /&gt;
&lt;br /&gt;
If you distribution doesn't include a current version of Atlas (0.3.1 as of writing), you may elect to compile Atlas from source. The source code can be retrieved from http://sourceforge.net/projects/atlas/files/. Please select the latest tarball. The process of compiling the program is consider out of scope for this wiki page. Please ask on the mailing list or search this wiki for the details.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Maps ===&lt;br /&gt;
Atlas puts together the whole map display from smaller pieces of the map, called &amp;quot;tiles&amp;quot;. Before running Atlas for the first time, all of the map tiles used by Atlas must be created from the scenery data installed in FlightGear. The program used to create the tiles is called &amp;quot;map&amp;quot;, and it is installed automatically as part of the Atlas installation.&lt;br /&gt;
&lt;br /&gt;
Depending on the amount of scenery involved, and the level of detail requested, running the &amp;quot;map&amp;quot; process take anywhere from a few seconds to a few hours. Fortunately, this process does not need to be done often, only right after Atlas is installed, or after new scenery is added to FlightGear.&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to run &amp;quot;map&amp;quot; on Windows:&lt;br /&gt;
&lt;br /&gt;
This example uses the default FlightGear directory for Windows, C:\Program Files\FlightGear. If you have FlightGear installed somewhere else, substitute your directory in the instructions below. &lt;br /&gt;
&lt;br /&gt;
Start the Command Prompt...to do this click start&amp;gt;Run ...type cmd and hit enter.&lt;br /&gt;
Type... &lt;br /&gt;
   cd C:\Program Files\FlightGear\bin\win32&lt;br /&gt;
Now Type...&lt;br /&gt;
   set FG_ROOT=C:\Program Files\FlightGear\data&lt;br /&gt;
Now type...&lt;br /&gt;
   set FG_SCENERY=C:\Program Files\FlightGear\Data\Scenery;C:\Program Files\FlightGear\Scenery&lt;br /&gt;
Notice that the scenery directories are separated with a semi-colon (&amp;quot;;&amp;quot;).&lt;br /&gt;
Now type&lt;br /&gt;
   map --size=256 --atlas=C:\Program Files\FlightGear\data\Atlas&lt;br /&gt;
This puts the files in &amp;lt;tt&amp;gt;C:\Program Files\FlightGear\data\Atlas&amp;lt;/tt&amp;gt;. If you want the files in a different location just replace &amp;lt;tt&amp;gt;C:\Program Files\FlightGear\data\Atlas&amp;lt;/tt&amp;gt; with the location you want.&lt;br /&gt;
&lt;br /&gt;
The --size=256 gives a certain resolution in Atlas, meaning that each map generated will be 256x256 pixels. For higher resolutions you would use =512 or =1024 or =2048, for lower resolutions you would use =64 or =128.&lt;br /&gt;
&lt;br /&gt;
Therefore, to create low resolution maps type...&lt;br /&gt;
   map --size=64 --atlas=C:\Program Files\FlightGear\data\Atlas\lowres&lt;br /&gt;
&lt;br /&gt;
The map program has a lot commands-line options. To see them type...&lt;br /&gt;
   map --help&lt;br /&gt;
To see this message&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
MAP - FlightGear mapping utility&lt;br /&gt;
Usage:&lt;br /&gt;
  --lat=xx.xx             Start at latitude xx.xx (deg., south is neg.)&lt;br /&gt;
  --lon=xx.xx             Start at longitude xx.xx (deg., west is neg.)&lt;br /&gt;
  --size=pixels           Create map of size pixels*pixels (default 256)&lt;br /&gt;
  --scale=x               Kilometers from top to bottom of map (default 100)&lt;br /&gt;
  --autoscale             Automatically set scale to 1x1 degree tile&lt;br /&gt;
  --light=x, y, z         Set light vector for shading&lt;br /&gt;
  --airport-filter=string Display only airports with id beginning 'string'&lt;br /&gt;
  --output=name           Write output to given file name (default 'map.png')&lt;br /&gt;
  --fg-root=path          Overrides FG_ROOT environment variable&lt;br /&gt;
  --fg-scenery=path       Overrides FG_SCENERY environment variable&lt;br /&gt;
  --enable-airports       Show airports&lt;br /&gt;
  --enable-navaids        Show navaids&lt;br /&gt;
  --flat-shading          Don't do nice shading of the terrain&lt;br /&gt;
  --atlas=path            Create maps of all scenery, and store them in path&lt;br /&gt;
  --verbose               Display information during processing&lt;br /&gt;
  --singlebuffer          Use single buffered display&lt;br /&gt;
  --headless              Don't display output (render into an off-screen buffer)&lt;br /&gt;
  --glutfonts             Use GLUT built-in fonts&lt;br /&gt;
  --palette=path          Set the palette file to use&lt;br /&gt;
  --smooth-color          Make smooth color heights&lt;br /&gt;
  --jpeg                  Create JPEG images with default quality (75)&lt;br /&gt;
  --jpeg=integer          Create JPEG images with specified quality&lt;br /&gt;
  --aafactor=integer      Do antialiasing on image (factor must be a power of two)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Note 1:''' The map process can be much faster on some PC's using '''--headless''' option, which does not display the maps as they are being created. However, on other PC's, this causes an error, and the process will not run. Remove the '''--headless''' option if you get such an error.&lt;br /&gt;
* '''Note 2:''' On Windows systems, Atlas may not be able to handle paths for &amp;lt;tt&amp;gt;--atlas&amp;lt;/tt&amp;gt; with spaces in them. In such a case, replace &amp;quot;Program Files&amp;quot; with &amp;quot;PROGRA~1&amp;quot;. Or move the FG directory and Atlas directory to the desktop (works best with windows 7).&lt;br /&gt;
&lt;br /&gt;
You could condense this into a small batch file that can be repeatedly used. Write:&lt;br /&gt;
  cd c:\Program Files\Atlas\bin\win32&lt;br /&gt;
  map --size=512 --atlas=c:\Program Files\Atlas\data\Atlas --fg-scenery=c:\Program Files\FlightGear\data\Scenery --palette=c:\Program Files\Atlas\data\AtlasPalette --glutfonts&lt;br /&gt;
&lt;br /&gt;
Then save it as a .bat or .cmd file to your computer. If your computer turns off the screen / hard drive after a set time and don't want to change this permanently, download caffeine. Search for caffeine for windows on Google and select the first link.&lt;br /&gt;
&lt;br /&gt;
=== Run Atlas ===&lt;br /&gt;
Atlas can be run by clicking on the shortcut set up by the install wizard, or from the command line. From the command prompt in Windows, enter:&lt;br /&gt;
   &amp;quot;C:\Program Files\FlightGear\bin\win32\atlas.exe&amp;quot; &amp;quot;--fg-root=C:\Program Files\FlightGear\Data&amp;quot; &amp;quot;--path=C:\Program Files\FlightGear\data\Atlas&amp;quot; --udp=5500&lt;br /&gt;
&lt;br /&gt;
In the [[FlightGear Wizard]] where you select settings before starting FlightGear, on the page after selecting your airport there is a check box option for Atlas, check it. In the &amp;quot;port&amp;quot; box enter 5500. If Atlas is running on the same computer as FlightGear, you can use the IP address 127.0.0.1 If Atlas is running on another computer, enter the IP address of that computer. (To look up the IP address of a computer, open the command prompt, and enter &amp;quot;ipconfig&amp;quot; as a command to display the IP address).&lt;br /&gt;
&lt;br /&gt;
Once you have Atlas and FlightGear set to use the same port number (5500 by default), run FlightGear. As you fly around in FlightGear, Atlas will update your position on the map several times per second.&lt;br /&gt;
&lt;br /&gt;
===Running Atlas Over A Network===&lt;br /&gt;
If you installed atlas on a computer, but want to run it from a different one, follow this procedure:&lt;br /&gt;
For Windows, on your first computer (the one with FlightGear and Atlas) enable file sharing. After doing this, if you have a firewall, go to your second computer and open the Command Prompt (Windows + R, then type &amp;quot;CMD&amp;quot;) and type:&lt;br /&gt;
  &amp;quot;ipconfig&amp;quot;&lt;br /&gt;
and note the IPv4 Address (along the lines of 192.168.1.XX) and add a firewall rule on your first computer to let that IP address through the firewall. Then set up the files for file sharing. Go to your FlightGear program files folder (C:\Program Files (x86)\FlightGear) and right click and select properties. Select the &amp;quot;Sharing&amp;quot; tab and click &amp;quot;Advanced Sharing&amp;quot;. Click the checkbox for &amp;quot;Share this folder&amp;quot; and push &amp;quot;OK&amp;quot; on both windows. Do the same for the Atlas program folder (C:\Program Files (x86)\Atlas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On your first computer, open the CMD and do &amp;quot;ipconfig&amp;quot; and note the IPv4 address. Go to your second computer and right click the &amp;quot;My Computer&amp;quot; and select &amp;quot;Map Network Drive&amp;quot;. Leave the drive setting alone, Windows will configure that itself. In the &amp;quot;Path&amp;quot; box, type without the &amp;quot;&amp;quot;:&lt;br /&gt;
  &amp;quot;\\XXX.XXX.X.XX\FlightGear&amp;quot;&lt;br /&gt;
The &amp;quot;X&amp;quot; representing the numbers of the first computers IPv4 address.&lt;br /&gt;
Repeat this for the Atlas folder by changing &amp;quot;\FlightGear&amp;quot; to &amp;quot;\Atlas&amp;quot;. Also note the \\. It is REQUIRED you do that and not //.&lt;br /&gt;
&lt;br /&gt;
Once you have done this write a &amp;quot;.CMD&amp;quot; file in Notepad which would read:&lt;br /&gt;
&lt;br /&gt;
  title Atlas.exe&lt;br /&gt;
  cls&lt;br /&gt;
  @echo off&lt;br /&gt;
  cls&lt;br /&gt;
  ipconfig&lt;br /&gt;
  pause&lt;br /&gt;
  &amp;quot;W:\bin\win32\atlas.exe&amp;quot; &amp;quot;--fg-root=X:\Data&amp;quot; &amp;quot;--path=W:\data\Atlas&amp;quot; --udp=5500&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;W&amp;quot; drive is the Atlas folder in this example, change it to whatever Windows sets as your Atlas drive.&lt;br /&gt;
The &amp;quot;X&amp;quot; drive is the FlightGear folder in this example, change it to whatever Windows sets as your FlightGear drive.&lt;br /&gt;
&lt;br /&gt;
The first line sets the CMD window name. The second line clears the window. The third line turns off the echo (if it was left on, the CMD would repeat what the batch file tells it, for example, if it was off, the cmd would run and say C:\Documents and Settings\User&amp;gt; title atlas.exe). The fourth line clears the window. The fifth line gives the IP address. The sixth line pauses and reads &amp;quot;Push any key to continue...&amp;quot;. The seventh line executes the atlas program with the specified settings.&lt;br /&gt;
&lt;br /&gt;
Once you are done with the script, click &amp;quot;File&amp;gt;Save As...&amp;quot; and save it as Start Atlas.bat (or .cmd).&lt;br /&gt;
&lt;br /&gt;
You will need the scenery analyzed by the map.exe first. So if that is done, execute the file and wait for it to tell you the IPv4 address. Go to your first computer and configure your flight. On the final page, select the Atlas checkbox and enter the IPv4 address of the second computer and the UDP (default &amp;quot;5500&amp;quot;) to what you set as the final part of the seventh line of coding. On the second computer, push any key and the Command Prompt will load the Atlas database can take some time if you are using all of the scenery maps. When the atlas window opens, activate the flight on the second computer and you have the second computer tracking the flight of the first. (don't worry the FlightGear App defaults to the e0 n0 co-ordinates at startup without loading the map graphics.)&lt;br /&gt;
&lt;br /&gt;
=== Keys ===&lt;br /&gt;
You can control the Atlas Map display with the following keys:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;70px&amp;quot; | + || Zoom in&lt;br /&gt;
|-&lt;br /&gt;
| - || Zoom out&lt;br /&gt;
|-&lt;br /&gt;
| a/A || Show/hide Airports&lt;br /&gt;
|-&lt;br /&gt;
| C || Toggle auto-centering&lt;br /&gt;
|-&lt;br /&gt;
| c ||      Center map on Aircraft&lt;br /&gt;
|-&lt;br /&gt;
| d/D&lt;br /&gt;
| Hide/show the info interface and the graphs window&lt;br /&gt;
|-&lt;br /&gt;
| f/F &lt;br /&gt;
| Select next (f) or previous (F) flight track&lt;br /&gt;
|-&lt;br /&gt;
| j/J ||   Toggle search interface&lt;br /&gt;
|-&lt;br /&gt;
| L ||   Show the next downloading tile&lt;br /&gt;
|-&lt;br /&gt;
| l  &lt;br /&gt;
| Schedule/de-schedule tile at current lat/lon&lt;br /&gt;
|-&lt;br /&gt;
| n/N ||   Show/hide navaids&lt;br /&gt;
|-&lt;br /&gt;
| o/O ||  Open flight file&lt;br /&gt;
|-&lt;br /&gt;
| s/S ||   Save flight file&lt;br /&gt;
|-&lt;br /&gt;
| t/T &lt;br /&gt;
| Toggle showing the bitmap overlay (yes, that's the maps!)&lt;br /&gt;
|-&lt;br /&gt;
| w/W &lt;br /&gt;
| Close the current track (Warning, this terminates live aircraft tracking over network for good!)&lt;br /&gt;
|-&lt;br /&gt;
| u/U &lt;br /&gt;
| Unattach current flight trac, ie start a new track&lt;br /&gt;
|-&lt;br /&gt;
| v/V &lt;br /&gt;
| Show/hide names of airports/navaids&lt;br /&gt;
|-&lt;br /&gt;
| Space ||  Show/hide main interface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Enjoy Playing!!!'''&lt;br /&gt;
&lt;br /&gt;
== Similar Software ==&lt;br /&gt;
* [http://rubyforge.org/projects/fgmap Flightgear Mapping]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://atlas.sourceforge.net The Atlas website]&lt;br /&gt;
[[fr:Atlas]]&lt;br /&gt;
* [http://geoffmclane.com/fg/atlas-07.htm Windows build, by Geoff McLane]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:GPL software]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Atlas&amp;diff=96379</id>
		<title>Atlas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Atlas&amp;diff=96379"/>
		<updated>2016-03-27T11:06:16Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Updated with a note to show this is deprecated and Phi is the alternative local map.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|Should be considered deprecated. An alternative [[Phi]]}}&lt;br /&gt;
&lt;br /&gt;
{{forum|31|Atlas}}&lt;br /&gt;
[[File:Atlas.jpg|thumb|270px|Atlas map view of the San Francisco bay area]]&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Atlas aims to produce and display high quality charts of the World for users of FlightGear&amp;quot;'' - [http://atlas.sourceforge.net Atlas website] &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The '''Atlas''' program lets FlightGear users display a real-time &amp;quot;moving-map&amp;quot; of their flight. Atlas is an independent software project, distributed under the same free (GPL) software license as FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Installation (only for 0.3.x version) ==&lt;br /&gt;
&lt;br /&gt;
=== Installing on Windows ===&lt;br /&gt;
To install Atlas on Windows, download the &amp;quot;installer&amp;quot; version of Atlas from the [http://atlas.sourceforge.net/index.php?page=download Download Page]&lt;br /&gt;
&lt;br /&gt;
For example, download '''atlas-0.3.0-win32-setup.exe''', and run it. The installer will prompt you for the FlightGear directory. If you installed FlightGear in the default directory, &amp;quot;C:\Program Files\FlightGear&amp;quot;, accept the default setting. If you don't know your FlightGear directory, you can right-click your FlightGear icon, click properties then look at the &amp;quot;target&amp;quot;. Your root FlightGear directory is the part of the target before the text &amp;quot;\bin\win32\fgrun.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
After finishing the install wizard, but before running Atlas, the next step is to create the actual maps used by Atlas.&lt;br /&gt;
&lt;br /&gt;
=== Installing on Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are lucky, you might find that Atlas is available from your distribution's repository. &lt;br /&gt;
&lt;br /&gt;
It could be called fgfs-atlas or similar so you'd just type in the following (or use synaptic or some other package installation program):-&lt;br /&gt;
&lt;br /&gt;
 apt-get install fgfs-atlas&lt;br /&gt;
&lt;br /&gt;
If you distribution doesn't include a current version of Atlas (0.3.1 as of writing), you may elect to compile Atlas from source. The source code can be retrieved from http://sourceforge.net/projects/atlas/files/. Please select the latest tarball. The process of compiling the program is consider out of scope for this wiki page. Please ask on the mailing list or search this wiki for the details.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Maps ===&lt;br /&gt;
Atlas puts together the whole map display from smaller pieces of the map, called &amp;quot;tiles&amp;quot;. Before running Atlas for the first time, all of the map tiles used by Atlas must be created from the scenery data installed in FlightGear. The program used to create the tiles is called &amp;quot;map&amp;quot;, and it is installed automatically as part of the Atlas installation.&lt;br /&gt;
&lt;br /&gt;
Depending on the amount of scenery involved, and the level of detail requested, running the &amp;quot;map&amp;quot; process take anywhere from a few seconds to a few hours. Fortunately, this process does not need to be done often, only right after Atlas is installed, or after new scenery is added to FlightGear.&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to run &amp;quot;map&amp;quot; on Windows:&lt;br /&gt;
&lt;br /&gt;
This example uses the default FlightGear directory for Windows, C:\Program Files\FlightGear. If you have FlightGear installed somewhere else, substitute your directory in the instructions below. &lt;br /&gt;
&lt;br /&gt;
Start the Command Prompt...to do this click start&amp;gt;Run ...type cmd and hit enter.&lt;br /&gt;
Type... &lt;br /&gt;
   cd C:\Program Files\FlightGear\bin\win32&lt;br /&gt;
Now Type...&lt;br /&gt;
   set FG_ROOT=C:\Program Files\FlightGear\data&lt;br /&gt;
Now type...&lt;br /&gt;
   set FG_SCENERY=C:\Program Files\FlightGear\Data\Scenery;C:\Program Files\FlightGear\Scenery&lt;br /&gt;
Notice that the scenery directories are separated with a semi-colon (&amp;quot;;&amp;quot;).&lt;br /&gt;
Now type&lt;br /&gt;
   map --size=256 --atlas=C:\Program Files\FlightGear\data\Atlas&lt;br /&gt;
This puts the files in &amp;lt;tt&amp;gt;C:\Program Files\FlightGear\data\Atlas&amp;lt;/tt&amp;gt;. If you want the files in a different location just replace &amp;lt;tt&amp;gt;C:\Program Files\FlightGear\data\Atlas&amp;lt;/tt&amp;gt; with the location you want.&lt;br /&gt;
&lt;br /&gt;
The --size=256 gives a certain resolution in Atlas, meaning that each map generated will be 256x256 pixels. For higher resolutions you would use =512 or =1024 or =2048, for lower resolutions you would use =64 or =128.&lt;br /&gt;
&lt;br /&gt;
Therefore, to create low resolution maps type...&lt;br /&gt;
   map --size=64 --atlas=C:\Program Files\FlightGear\data\Atlas\lowres&lt;br /&gt;
&lt;br /&gt;
The map program has a lot commands-line options. To see them type...&lt;br /&gt;
   map --help&lt;br /&gt;
To see this message&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
MAP - FlightGear mapping utility&lt;br /&gt;
Usage:&lt;br /&gt;
  --lat=xx.xx             Start at latitude xx.xx (deg., south is neg.)&lt;br /&gt;
  --lon=xx.xx             Start at longitude xx.xx (deg., west is neg.)&lt;br /&gt;
  --size=pixels           Create map of size pixels*pixels (default 256)&lt;br /&gt;
  --scale=x               Kilometers from top to bottom of map (default 100)&lt;br /&gt;
  --autoscale             Automatically set scale to 1x1 degree tile&lt;br /&gt;
  --light=x, y, z         Set light vector for shading&lt;br /&gt;
  --airport-filter=string Display only airports with id beginning 'string'&lt;br /&gt;
  --output=name           Write output to given file name (default 'map.png')&lt;br /&gt;
  --fg-root=path          Overrides FG_ROOT environment variable&lt;br /&gt;
  --fg-scenery=path       Overrides FG_SCENERY environment variable&lt;br /&gt;
  --enable-airports       Show airports&lt;br /&gt;
  --enable-navaids        Show navaids&lt;br /&gt;
  --flat-shading          Don't do nice shading of the terrain&lt;br /&gt;
  --atlas=path            Create maps of all scenery, and store them in path&lt;br /&gt;
  --verbose               Display information during processing&lt;br /&gt;
  --singlebuffer          Use single buffered display&lt;br /&gt;
  --headless              Don't display output (render into an off-screen buffer)&lt;br /&gt;
  --glutfonts             Use GLUT built-in fonts&lt;br /&gt;
  --palette=path          Set the palette file to use&lt;br /&gt;
  --smooth-color          Make smooth color heights&lt;br /&gt;
  --jpeg                  Create JPEG images with default quality (75)&lt;br /&gt;
  --jpeg=integer          Create JPEG images with specified quality&lt;br /&gt;
  --aafactor=integer      Do antialiasing on image (factor must be a power of two)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Note 1:''' The map process can be much faster on some PC's using '''--headless''' option, which does not display the maps as they are being created. However, on other PC's, this causes an error, and the process will not run. Remove the '''--headless''' option if you get such an error.&lt;br /&gt;
* '''Note 2:''' On Windows systems, Atlas may not be able to handle paths for &amp;lt;tt&amp;gt;--atlas&amp;lt;/tt&amp;gt; with spaces in them. In such a case, replace &amp;quot;Program Files&amp;quot; with &amp;quot;PROGRA~1&amp;quot;. Or move the FG directory and Atlas directory to the desktop (works best with windows 7).&lt;br /&gt;
&lt;br /&gt;
You could condense this into a small batch file that can be repeatedly used. Write:&lt;br /&gt;
  cd c:\Program Files\Atlas\bin\win32&lt;br /&gt;
  map --size=512 --atlas=c:\Program Files\Atlas\data\Atlas --fg-scenery=c:\Program Files\FlightGear\data\Scenery --palette=c:\Program Files\Atlas\data\AtlasPalette --glutfonts&lt;br /&gt;
&lt;br /&gt;
Then save it as a .bat or .cmd file to your computer. If your computer turns off the screen / hard drive after a set time and don't want to change this permanently, download caffeine. Search for caffeine for windows on Google and select the first link.&lt;br /&gt;
&lt;br /&gt;
=== Run Atlas ===&lt;br /&gt;
Atlas can be run by clicking on the shortcut set up by the install wizard, or from the command line. From the command prompt in Windows, enter:&lt;br /&gt;
   &amp;quot;C:\Program Files\FlightGear\bin\win32\atlas.exe&amp;quot; &amp;quot;--fg-root=C:\Program Files\FlightGear\Data&amp;quot; &amp;quot;--path=C:\Program Files\FlightGear\data\Atlas&amp;quot; --udp=5500&lt;br /&gt;
&lt;br /&gt;
In the [[FlightGear Wizard]] where you select settings before starting FlightGear, on the page after selecting your airport there is a check box option for Atlas, check it. In the &amp;quot;port&amp;quot; box enter 5500. If Atlas is running on the same computer as FlightGear, you can use the IP address 127.0.0.1 If Atlas is running on another computer, enter the IP address of that computer. (To look up the IP address of a computer, open the command prompt, and enter &amp;quot;ipconfig&amp;quot; as a command to display the IP address).&lt;br /&gt;
&lt;br /&gt;
Once you have Atlas and FlightGear set to use the same port number (5500 by default), run FlightGear. As you fly around in FlightGear, Atlas will update your position on the map several times per second.&lt;br /&gt;
&lt;br /&gt;
===Running Atlas Over A Network===&lt;br /&gt;
If you installed atlas on a computer, but want to run it from a different one, follow this procedure:&lt;br /&gt;
For Windows, on your first computer (the one with FlightGear and Atlas) enable file sharing. After doing this, if you have a firewall, go to your second computer and open the Command Prompt (Windows + R, then type &amp;quot;CMD&amp;quot;) and type:&lt;br /&gt;
  &amp;quot;ipconfig&amp;quot;&lt;br /&gt;
and note the IPv4 Address (along the lines of 192.168.1.XX) and add a firewall rule on your first computer to let that IP address through the firewall. Then set up the files for file sharing. Go to your FlightGear program files folder (C:\Program Files (x86)\FlightGear) and right click and select properties. Select the &amp;quot;Sharing&amp;quot; tab and click &amp;quot;Advanced Sharing&amp;quot;. Click the checkbox for &amp;quot;Share this folder&amp;quot; and push &amp;quot;OK&amp;quot; on both windows. Do the same for the Atlas program folder (C:\Program Files (x86)\Atlas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On your first computer, open the CMD and do &amp;quot;ipconfig&amp;quot; and note the IPv4 address. Go to your second computer and right click the &amp;quot;My Computer&amp;quot; and select &amp;quot;Map Network Drive&amp;quot;. Leave the drive setting alone, Windows will configure that itself. In the &amp;quot;Path&amp;quot; box, type without the &amp;quot;&amp;quot;:&lt;br /&gt;
  &amp;quot;\\XXX.XXX.X.XX\FlightGear&amp;quot;&lt;br /&gt;
The &amp;quot;X&amp;quot; representing the numbers of the first computers IPv4 address.&lt;br /&gt;
Repeat this for the Atlas folder by changing &amp;quot;\FlightGear&amp;quot; to &amp;quot;\Atlas&amp;quot;. Also note the \\. It is REQUIRED you do that and not //.&lt;br /&gt;
&lt;br /&gt;
Once you have done this write a &amp;quot;.CMD&amp;quot; file in Notepad which would read:&lt;br /&gt;
&lt;br /&gt;
  title Atlas.exe&lt;br /&gt;
  cls&lt;br /&gt;
  @echo off&lt;br /&gt;
  cls&lt;br /&gt;
  ipconfig&lt;br /&gt;
  pause&lt;br /&gt;
  &amp;quot;W:\bin\win32\atlas.exe&amp;quot; &amp;quot;--fg-root=X:\Data&amp;quot; &amp;quot;--path=W:\data\Atlas&amp;quot; --udp=5500&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;W&amp;quot; drive is the Atlas folder in this example, change it to whatever Windows sets as your Atlas drive.&lt;br /&gt;
The &amp;quot;X&amp;quot; drive is the FlightGear folder in this example, change it to whatever Windows sets as your FlightGear drive.&lt;br /&gt;
&lt;br /&gt;
The first line sets the CMD window name. The second line clears the window. The third line turns off the echo (if it was left on, the CMD would repeat what the batch file tells it, for example, if it was off, the cmd would run and say C:\Documents and Settings\User&amp;gt; title atlas.exe). The fourth line clears the window. The fifth line gives the IP address. The sixth line pauses and reads &amp;quot;Push any key to continue...&amp;quot;. The seventh line executes the atlas program with the specified settings.&lt;br /&gt;
&lt;br /&gt;
Once you are done with the script, click &amp;quot;File&amp;gt;Save As...&amp;quot; and save it as Start Atlas.bat (or .cmd).&lt;br /&gt;
&lt;br /&gt;
You will need the scenery analyzed by the map.exe first. So if that is done, execute the file and wait for it to tell you the IPv4 address. Go to your first computer and configure your flight. On the final page, select the Atlas checkbox and enter the IPv4 address of the second computer and the UDP (default &amp;quot;5500&amp;quot;) to what you set as the final part of the seventh line of coding. On the second computer, push any key and the Command Prompt will load the Atlas database can take some time if you are using all of the scenery maps. When the atlas window opens, activate the flight on the second computer and you have the second computer tracking the flight of the first. (don't worry the FlightGear App defaults to the e0 n0 co-ordinates at startup without loading the map graphics.)&lt;br /&gt;
&lt;br /&gt;
=== Keys ===&lt;br /&gt;
You can control the Atlas Map display with the following keys:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;70px&amp;quot; | + || Zoom in&lt;br /&gt;
|-&lt;br /&gt;
| - || Zoom out&lt;br /&gt;
|-&lt;br /&gt;
| a/A || Show/hide Airports&lt;br /&gt;
|-&lt;br /&gt;
| C || Toggle auto-centering&lt;br /&gt;
|-&lt;br /&gt;
| c ||      Center map on Aircraft&lt;br /&gt;
|-&lt;br /&gt;
| d/D&lt;br /&gt;
| Hide/show the info interface and the graphs window&lt;br /&gt;
|-&lt;br /&gt;
| f/F &lt;br /&gt;
| Select next (f) or previous (F) flight track&lt;br /&gt;
|-&lt;br /&gt;
| j/J ||   Toggle search interface&lt;br /&gt;
|-&lt;br /&gt;
| L ||   Show the next downloading tile&lt;br /&gt;
|-&lt;br /&gt;
| l  &lt;br /&gt;
| Schedule/de-schedule tile at current lat/lon&lt;br /&gt;
|-&lt;br /&gt;
| n/N ||   Show/hide navaids&lt;br /&gt;
|-&lt;br /&gt;
| o/O ||  Open flight file&lt;br /&gt;
|-&lt;br /&gt;
| s/S ||   Save flight file&lt;br /&gt;
|-&lt;br /&gt;
| t/T &lt;br /&gt;
| Toggle showing the bitmap overlay (yes, that's the maps!)&lt;br /&gt;
|-&lt;br /&gt;
| w/W &lt;br /&gt;
| Close the current track (Warning, this terminates live aircraft tracking over network for good!)&lt;br /&gt;
|-&lt;br /&gt;
| u/U &lt;br /&gt;
| Unattach current flight trac, ie start a new track&lt;br /&gt;
|-&lt;br /&gt;
| v/V &lt;br /&gt;
| Show/hide names of airports/navaids&lt;br /&gt;
|-&lt;br /&gt;
| Space ||  Show/hide main interface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Enjoy Playing!!!'''&lt;br /&gt;
&lt;br /&gt;
== Similar Software ==&lt;br /&gt;
* [http://rubyforge.org/projects/fgmap Flightgear Mapping]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://atlas.sourceforge.net The Atlas website]&lt;br /&gt;
[[fr:Atlas]]&lt;br /&gt;
* [http://geoffmclane.com/fg/atlas-07.htm Windows build, by Geoff McLane]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:GPL software]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Phi&amp;diff=96199</id>
		<title>Talk:Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Phi&amp;diff=96199"/>
		<updated>2016-03-23T13:47:27Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@jaxsin: thanks for doing this, I am sure that Torsten also appreciates that you are handling all this grunt work, and that he'll be happy to chime in with any missing information. In th meantime, you may want to take a look at [[Help:Your_first_article]] to see how you can better format the article. Again, thanks for not just pointing out that there's a problem but for getting involved to do something to improve the situation.--[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 17:16, 21 March 2016 (EDT)&lt;br /&gt;
&lt;br /&gt;
@hooray: concerning the [[Phi#Background]] sub-section. These are direct quotes from Torsten, I wanted to leave them as genuine as possible and mark them with the reference. Which I have done. But the overall appearance of them being quotes (without the silly looking quotes) is not very well conveyed. I am not sure how I can improve that. Any improvement here that I can pick up moving forward I'd appreciate it.&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96197</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96197"/>
		<updated>2016-03-23T13:40:51Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&amp;lt;small&amp;gt;''Direct quotes from '''Torsten'''. Original '''Phi''' developer''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Phi UI Features ==&lt;br /&gt;
Phi is at foremost a multi-platform user interface that has two-way data binding with FlightGear via the internal HTTP web server. This allows Phi to be a fully functional user interface that can directly control FlightGear. The following list is a set of features that are currently implemented and working.&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
This is where you will find all things related to the currently selected aircraft in-sim, if available. &lt;br /&gt;
*'''Help''' - Displays the aircraft help file '''Help &amp;gt; Aircraft Help'''&lt;br /&gt;
*'''Mass &amp;amp; Balance''' - Displays aircraft specific fuel and payload options '''Equipment &amp;gt; Fuel and Payload'''&lt;br /&gt;
*'''Checklist''' - Displays aircraft checklist '''Help &amp;gt; '''&lt;br /&gt;
*'''Failures''' - &lt;br /&gt;
*'''Panel''' - &lt;br /&gt;
*'''Select''' - ''Known bug in FG for windows versions 7+, assume this feature to not work anytime soon even if you see a list of planes to install''&lt;br /&gt;
=== Environment===&lt;br /&gt;
*'''Date &amp;amp; Time''' - Change in-sim time of day and current date&lt;br /&gt;
*'''Weather''' - &lt;br /&gt;
*'''Position''' - Interface where you can search for airports via ICAO codes and then select a runway/parking spot to load into FlightGear '''Location &amp;gt; Select Airport'''&lt;br /&gt;
=== Map ===&lt;br /&gt;
Loads an OpenStreetMap as the background and updates your current position around the world in real time while you fly. Allows one to not only track current flight, but the ability to drag the plane icon around the map which will instantly update FlightGear with the new lon. and lat. coordinate position. &lt;br /&gt;
=== Tools===&lt;br /&gt;
Things that make for a more realistic experience. Not exactly needed to fly a plane, but these tools will add to the realism.&lt;br /&gt;
*'''Holding Pattern''' - A tool to help one understand how to enter the holding pattern. Enter in the Heading and Inbound Track and the diagram will show you visually the Holding pattern.&lt;br /&gt;
*'''Wind Calculator''' - &lt;br /&gt;
*'''Vertical Navigation (VNAV)''' - ''from my understanding not anytime soon, needs FG integration first''&lt;br /&gt;
*'''Stopwatch''' - Self-explanatory&lt;br /&gt;
=== Simulator ===&lt;br /&gt;
*'''Screenshot''' - Set the time between screen updates. See [[Phi#Screen Shots]]&lt;br /&gt;
*'''Properties''' - In-sim property tree, two-way data binding, good for debugging!&lt;br /&gt;
*'''Config''' - In-sim config settings&lt;br /&gt;
**'''AI''' - Enable/Disable AI&lt;br /&gt;
**'''Multi-Player''' - Enter callsign and select which server to connect to on the multi-player network.&lt;br /&gt;
*'''Reset''' - Reset the FlightGear Sim&lt;br /&gt;
*'''Exit''' - Quit&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
{{Note| This section should be considered unfinished. If you have something to add, please do so}}&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
Here you can find code examples that have been added to the Phi project&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/&lt;br /&gt;
The Horizon example is a fat free, stripped down basic idea of a web based instrument for Phi.&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.html&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.js&lt;br /&gt;
&lt;br /&gt;
== Future Development ==&lt;br /&gt;
{{Note|Nothing concrete}}&lt;br /&gt;
*improve the aircraft specific plugin system to allow special widgets and pages for aircraft (thinking of the shuttle here)&lt;br /&gt;
*make layout and theme configurable&lt;br /&gt;
*keep settings persistent between sessions&lt;br /&gt;
*write a tile renderer to create map tiles from scenery&lt;br /&gt;
*better support for touch events&lt;br /&gt;
*together with ThorstenR: UI to configure a 3d weather model&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96196</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96196"/>
		<updated>2016-03-23T13:35:49Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Web-based EFIS */ Moved from #Background&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Phi UI Features ==&lt;br /&gt;
Phi is at foremost a multi-platform user interface that has two-way data binding with FlightGear via the internal HTTP web server. This allows Phi to be a fully functional user interface that can directly control FlightGear. The following list is a set of features that are currently implemented and working.&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
This is where you will find all things related to the currently selected aircraft in-sim, if available. &lt;br /&gt;
*'''Help''' - Displays the aircraft help file '''Help &amp;gt; Aircraft Help'''&lt;br /&gt;
*'''Mass &amp;amp; Balance''' - Displays aircraft specific fuel and payload options '''Equipment &amp;gt; Fuel and Payload'''&lt;br /&gt;
*'''Checklist''' - Displays aircraft checklist '''Help &amp;gt; '''&lt;br /&gt;
*'''Failures''' - &lt;br /&gt;
*'''Panel''' - &lt;br /&gt;
*'''Select''' - ''Known bug in FG for windows versions 7+, assume this feature to not work anytime soon even if you see a list of planes to install''&lt;br /&gt;
=== Environment===&lt;br /&gt;
*'''Date &amp;amp; Time''' - Change in-sim time of day and current date&lt;br /&gt;
*'''Weather''' - &lt;br /&gt;
*'''Position''' - Interface where you can search for airports via ICAO codes and then select a runway/parking spot to load into FlightGear '''Location &amp;gt; Select Airport'''&lt;br /&gt;
=== Map ===&lt;br /&gt;
Loads an OpenStreetMap as the background and updates your current position around the world in real time while you fly. Allows one to not only track current flight, but the ability to drag the plane icon around the map which will instantly update FlightGear with the new lon. and lat. coordinate position. &lt;br /&gt;
=== Tools===&lt;br /&gt;
Things that make for a more realistic experience. Not exactly needed to fly a plane, but these tools will add to the realism.&lt;br /&gt;
*'''Holding Pattern''' - A tool to help one understand how to enter the holding pattern. Enter in the Heading and Inbound Track and the diagram will show you visually the Holding pattern.&lt;br /&gt;
*'''Wind Calculator''' - &lt;br /&gt;
*'''Vertical Navigation (VNAV)''' - ''from my understanding not anytime soon, needs FG integration first''&lt;br /&gt;
*'''Stopwatch''' - Self-explanatory&lt;br /&gt;
=== Simulator ===&lt;br /&gt;
*'''Screenshot''' - Set the time between screen updates. See [[Phi#Screen Shots]]&lt;br /&gt;
*'''Properties''' - In-sim property tree, two-way data binding, good for debugging!&lt;br /&gt;
*'''Config''' - In-sim config settings&lt;br /&gt;
**'''AI''' - Enable/Disable AI&lt;br /&gt;
**'''Multi-Player''' - Enter callsign and select which server to connect to on the multi-player network.&lt;br /&gt;
*'''Reset''' - Reset the FlightGear Sim&lt;br /&gt;
*'''Exit''' - Quit&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
{{Note| This section should be considered unfinished. If you have something to add, please do so}}&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
Here you can find code examples that have been added to the Phi project&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/&lt;br /&gt;
The Horizon example is a fat free, stripped down basic idea of a web based instrument for Phi.&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.html&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.js&lt;br /&gt;
&lt;br /&gt;
== Future Development ==&lt;br /&gt;
{{Note|Nothing concrete}}&lt;br /&gt;
*improve the aircraft specific plugin system to allow special widgets and pages for aircraft (thinking of the shuttle here)&lt;br /&gt;
*make layout and theme configurable&lt;br /&gt;
*keep settings persistent between sessions&lt;br /&gt;
*write a tile renderer to create map tiles from scenery&lt;br /&gt;
*better support for touch events&lt;br /&gt;
*together with ThorstenR: UI to configure a 3d weather model&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96195</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96195"/>
		<updated>2016-03-23T13:34:25Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Background */  moved to the appropriate sub-section #Web-based EFIS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Phi UI Features ==&lt;br /&gt;
Phi is at foremost a multi-platform user interface that has two-way data binding with FlightGear via the internal HTTP web server. This allows Phi to be a fully functional user interface that can directly control FlightGear. The following list is a set of features that are currently implemented and working.&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
This is where you will find all things related to the currently selected aircraft in-sim, if available. &lt;br /&gt;
*'''Help''' - Displays the aircraft help file '''Help &amp;gt; Aircraft Help'''&lt;br /&gt;
*'''Mass &amp;amp; Balance''' - Displays aircraft specific fuel and payload options '''Equipment &amp;gt; Fuel and Payload'''&lt;br /&gt;
*'''Checklist''' - Displays aircraft checklist '''Help &amp;gt; '''&lt;br /&gt;
*'''Failures''' - &lt;br /&gt;
*'''Panel''' - &lt;br /&gt;
*'''Select''' - ''Known bug in FG for windows versions 7+, assume this feature to not work anytime soon even if you see a list of planes to install''&lt;br /&gt;
=== Environment===&lt;br /&gt;
*'''Date &amp;amp; Time''' - Change in-sim time of day and current date&lt;br /&gt;
*'''Weather''' - &lt;br /&gt;
*'''Position''' - Interface where you can search for airports via ICAO codes and then select a runway/parking spot to load into FlightGear '''Location &amp;gt; Select Airport'''&lt;br /&gt;
=== Map ===&lt;br /&gt;
Loads an OpenStreetMap as the background and updates your current position around the world in real time while you fly. Allows one to not only track current flight, but the ability to drag the plane icon around the map which will instantly update FlightGear with the new lon. and lat. coordinate position. &lt;br /&gt;
=== Tools===&lt;br /&gt;
Things that make for a more realistic experience. Not exactly needed to fly a plane, but these tools will add to the realism.&lt;br /&gt;
*'''Holding Pattern''' - A tool to help one understand how to enter the holding pattern. Enter in the Heading and Inbound Track and the diagram will show you visually the Holding pattern.&lt;br /&gt;
*'''Wind Calculator''' - &lt;br /&gt;
*'''Vertical Navigation (VNAV)''' - ''from my understanding not anytime soon, needs FG integration first''&lt;br /&gt;
*'''Stopwatch''' - Self-explanatory&lt;br /&gt;
=== Simulator ===&lt;br /&gt;
*'''Screenshot''' - Set the time between screen updates. See [[Phi#Screen Shots]]&lt;br /&gt;
*'''Properties''' - In-sim property tree, two-way data binding, good for debugging!&lt;br /&gt;
*'''Config''' - In-sim config settings&lt;br /&gt;
**'''AI''' - Enable/Disable AI&lt;br /&gt;
**'''Multi-Player''' - Enter callsign and select which server to connect to on the multi-player network.&lt;br /&gt;
*'''Reset''' - Reset the FlightGear Sim&lt;br /&gt;
*'''Exit''' - Quit&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
{{Note| This section should be considered unfinished. If you have something to add, please do so}}&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
Here you can find code examples that have been added to the Phi project&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/&lt;br /&gt;
The Horizon example is a fat free, stripped down basic idea of a web based instrument for Phi.&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.html&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.js&lt;br /&gt;
&lt;br /&gt;
== Future Development ==&lt;br /&gt;
{{Note|Nothing concrete}}&lt;br /&gt;
*improve the aircraft specific plugin system to allow special widgets and pages for aircraft (thinking of the shuttle here)&lt;br /&gt;
*make layout and theme configurable&lt;br /&gt;
*keep settings persistent between sessions&lt;br /&gt;
*write a tile renderer to create map tiles from scenery&lt;br /&gt;
*better support for touch events&lt;br /&gt;
*together with ThorstenR: UI to configure a 3d weather model&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96194</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96194"/>
		<updated>2016-03-23T13:20:21Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: future developments, updated Examples, and removed Note - should be considered ready for consumption&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
''Not exactly appropriate for the Phi wiki page, leaving till I find something more relevant''&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Phi UI Features ==&lt;br /&gt;
Phi is at foremost a multi-platform user interface that has two-way data binding with FlightGear via the internal HTTP web server. This allows Phi to be a fully functional user interface that can directly control FlightGear. The following list is a set of features that are currently implemented and working.&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
This is where you will find all things related to the currently selected aircraft in-sim, if available. &lt;br /&gt;
*'''Help''' - Displays the aircraft help file '''Help &amp;gt; Aircraft Help'''&lt;br /&gt;
*'''Mass &amp;amp; Balance''' - Displays aircraft specific fuel and payload options '''Equipment &amp;gt; Fuel and Payload'''&lt;br /&gt;
*'''Checklist''' - Displays aircraft checklist '''Help &amp;gt; '''&lt;br /&gt;
*'''Failures''' - &lt;br /&gt;
*'''Panel''' - &lt;br /&gt;
*'''Select''' - ''Known bug in FG for windows versions 7+, assume this feature to not work anytime soon even if you see a list of planes to install''&lt;br /&gt;
=== Environment===&lt;br /&gt;
*'''Date &amp;amp; Time''' - Change in-sim time of day and current date&lt;br /&gt;
*'''Weather''' - &lt;br /&gt;
*'''Position''' - Interface where you can search for airports via ICAO codes and then select a runway/parking spot to load into FlightGear '''Location &amp;gt; Select Airport'''&lt;br /&gt;
=== Map ===&lt;br /&gt;
Loads an OpenStreetMap as the background and updates your current position around the world in real time while you fly. Allows one to not only track current flight, but the ability to drag the plane icon around the map which will instantly update FlightGear with the new lon. and lat. coordinate position. &lt;br /&gt;
=== Tools===&lt;br /&gt;
Things that make for a more realistic experience. Not exactly needed to fly a plane, but these tools will add to the realism.&lt;br /&gt;
*'''Holding Pattern''' - A tool to help one understand how to enter the holding pattern. Enter in the Heading and Inbound Track and the diagram will show you visually the Holding pattern.&lt;br /&gt;
*'''Wind Calculator''' - &lt;br /&gt;
*'''Vertical Navigation (VNAV)''' - ''from my understanding not anytime soon, needs FG integration first''&lt;br /&gt;
*'''Stopwatch''' - Self-explanatory&lt;br /&gt;
=== Simulator ===&lt;br /&gt;
*'''Screenshot''' - Set the time between screen updates. See [[Phi#Screen Shots]]&lt;br /&gt;
*'''Properties''' - In-sim property tree, two-way data binding, good for debugging!&lt;br /&gt;
*'''Config''' - In-sim config settings&lt;br /&gt;
**'''AI''' - Enable/Disable AI&lt;br /&gt;
**'''Multi-Player''' - Enter callsign and select which server to connect to on the multi-player network.&lt;br /&gt;
*'''Reset''' - Reset the FlightGear Sim&lt;br /&gt;
*'''Exit''' - Quit&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
{{Note| This section should be considered unfinished. If you have something to add, please do so}}&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
Here you can find code examples that have been added to the Phi project&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/&lt;br /&gt;
The Horizon example is a fat free, stripped down basic idea of a web based instrument for Phi.&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.html&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.js&lt;br /&gt;
&lt;br /&gt;
== Future Development ==&lt;br /&gt;
{{Note|Nothing concrete}}&lt;br /&gt;
*improve the aircraft specific plugin system to allow special widgets and pages for aircraft (thinking of the shuttle here)&lt;br /&gt;
*make layout and theme configurable&lt;br /&gt;
*keep settings persistent between sessions&lt;br /&gt;
*write a tile renderer to create map tiles from scenery&lt;br /&gt;
*better support for touch events&lt;br /&gt;
*together with ThorstenR: UI to configure a 3d weather model&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96192</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96192"/>
		<updated>2016-03-23T13:06:30Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: more developer input&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
''Not exactly appropriate for the Phi wiki page, leaving till I find something more relevant''&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Phi UI Features ==&lt;br /&gt;
Phi is at foremost a multi-platform user interface that has two-way data binding with FlightGear via the internal HTTP web server. This allows Phi to be a fully functional user interface that can directly control FlightGear. The following list is a set of features that are currently implemented and working.&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
This is where you will find all things related to the currently selected aircraft in-sim, if available. &lt;br /&gt;
*'''Help''' - Displays the aircraft help file '''Help &amp;gt; Aircraft Help'''&lt;br /&gt;
*'''Mass &amp;amp; Balance''' - Displays aircraft specific fuel and payload options '''Equipment &amp;gt; Fuel and Payload'''&lt;br /&gt;
*'''Checklist''' - Displays aircraft checklist '''Help &amp;gt; '''&lt;br /&gt;
*'''Failures''' - &lt;br /&gt;
*'''Panel''' - &lt;br /&gt;
*'''Select''' - ''Known bug in FG for windows versions 7+, assume this feature to not work anytime soon even if you see a list of planes to install''&lt;br /&gt;
=== Environment===&lt;br /&gt;
*'''Date &amp;amp; Time''' - Change in-sim time of day and current date&lt;br /&gt;
*'''Weather''' - &lt;br /&gt;
*'''Position''' - Interface where you can search for airports via ICAO codes and then select a runway/parking spot to load into FlightGear '''Location &amp;gt; Select Airport'''&lt;br /&gt;
=== Map ===&lt;br /&gt;
Loads an OpenStreetMap as the background and updates your current position around the world in real time while you fly. Allows one to not only track current flight, but the ability to drag the plane icon around the map which will instantly update FlightGear with the new lon. and lat. coordinate position. &lt;br /&gt;
=== Tools===&lt;br /&gt;
Things that make for a more realistic experience. Not exactly needed to fly a plane, but these tools will add to the realism.&lt;br /&gt;
*'''Holding Pattern''' - A tool to help one understand how to enter the holding pattern. Enter in the Heading and Inbound Track and the diagram will show you visually the Holding pattern.&lt;br /&gt;
*'''Wind Calculator''' - &lt;br /&gt;
*'''Vertical Navigation (VNAV)''' - ''from my understanding not anytime soon, needs FG integration first''&lt;br /&gt;
*'''Stopwatch''' - Self-explanatory&lt;br /&gt;
=== Simulator ===&lt;br /&gt;
*'''Screenshot''' - Set the time between screen updates. See [[Phi#Screen Shots]]&lt;br /&gt;
*'''Properties''' - In-sim property tree, two-way data binding, good for debugging!&lt;br /&gt;
*'''Config''' - In-sim config settings&lt;br /&gt;
**'''AI''' - Enable/Disable AI&lt;br /&gt;
**'''Multi-Player''' - Enter callsign and select which server to connect to on the multi-player network.&lt;br /&gt;
*'''Reset''' - Reset the FlightGear Sim&lt;br /&gt;
*'''Exit''' - Quit&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
Here you can find code examples that have been added to the Phi project&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/&lt;br /&gt;
The Horizon example is a fat free, stripped down basic idea of a web based instrument for Phi.&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.html&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/examples/horizon.js&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:FFGo_launcher.PNG&amp;diff=96191</id>
		<title>File:FFGo launcher.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:FFGo_launcher.PNG&amp;diff=96191"/>
		<updated>2016-03-23T12:23:15Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* {{int:filedesc}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=http daemon option for FG in FFGo launcher}}&lt;br /&gt;
|date=2016-03-23&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Jaxsin|Jaxsin]]&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;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FFGo screenshots]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:FFGo_launcher.PNG&amp;diff=96190</id>
		<title>File:FFGo launcher.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:FFGo_launcher.PNG&amp;diff=96190"/>
		<updated>2016-03-23T12:22:43Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Jaxsin uploaded a new version of File:FFGo launcher.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=http daemon option for FG in FFGo launcher}}&lt;br /&gt;
|date=2016-03-21&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Jaxsin|Jaxsin]]&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;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FFGo screenshots]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Aircraft_Center&amp;diff=96165</id>
		<title>Aircraft Center</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Aircraft_Center&amp;diff=96165"/>
		<updated>2016-03-23T00:26:08Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Articles containing Instant Cquotes]]&lt;br /&gt;
{{Non-stable|progress=50|version=4.x}}&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
[[File:Aircraft-center-prototype.png|400px|thumb|Canvas dialog showing the prototype for an [[Aircraft Center]] for directly downloading/installing/managing -and switching between- aircraft from within FlightGear, an upcoming '''experimental''' feature scheduled for FlightGear 3.2, currently being developed by TheTom and Zakalawe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;Recently I've also been mulling the possibility of selecting&lt;br /&gt;
aircraft from an &amp;quot;in program&amp;quot; dialog similar to Fly II where you can climb up&lt;br /&gt;
to 35,000 feet in a 747 and then switch to a C172 :-)  Seriously, even if we&lt;br /&gt;
did a full reset, it'd be nice to switch aircraft (3D models as well) and&lt;br /&gt;
fdm's on the fly (pun not intended).&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://www.mail-archive.com/flightgear-devel%40flightgear.org/msg09563.html&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;starting the XML GUI; early implementors needed&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=&amp;lt;nowiki&amp;gt; Fri, 08 Nov 2002 18:01:41 -0800&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |As we move forward with FlightGear development and future versions, we will be expanding the &amp;quot;in app&amp;quot; aircraft center.  This dialog inside flightgear lets you select, download, and switch to any of the aircraft in the library.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33451055/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Citation II for base package?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Curtis Olson&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2015-02-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |the goal here is to almost get rid of a centralised aircraft repo anyway, and have a decentralised development system with the only central point being the aircraft package manager for end users. Then 99% of people never care where the aircraft is stored while it’s developed.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33413096/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] FGDATA split without Aircraft. Addon in SVN.&lt;br /&gt;
 (re)Suggesting a Submodule approach. (Re)Proposing a per-Aircraft&lt;br /&gt;
 repository&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=&amp;lt;nowiki&amp;gt;2015-02-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For all other aircraft, the intention for both these nightly builds and official releases is to use the aircraft catalog + package system, which is based around HTTP rather than an SCM system. I’m working at the moment on integrating the client parts into the launcher GUI.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33586444/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] FGDATA and Jenkins&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=&amp;lt;nowiki&amp;gt;2015-03-11&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{Package Management}}&lt;br /&gt;
== Background ==&lt;br /&gt;
{{Note|Also see [[The FlightGear Front-End Situation]]}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
|1= The Canvas-based Aircraft Center dialog was originally prototyped by TheTom in response to Zakalawe announcing on the devel list that he was going to come up with a front-end for his still ongoing package manager subsystem, by creating a hard-coded PUI dialog.&lt;br /&gt;
Since then, many things have changed - Zakalawe is now working on an integrated Qt5 launcher, which is intended to remain an optional feature, but which is also intended to provide an in-sim replacement for the built-in PUI GUI.&lt;br /&gt;
Also, TheTom is not currently as actively involved as Zakalawe, so that the Aircaft Center has not seen much attention recently - and Zakalawe stated on the devel list that he is now considering the &amp;quot;Aircraft Center&amp;quot; an &amp;quot;experimental feature&amp;quot; that is likely to be deprecated due to this ongoing Qt5 launcher/GUI efforts.&lt;br /&gt;
The Aircraft Center is primarily written in Nasal and Canvas, as its back-end it is using SimGear http binding for downloading aircraft, and a few fgcommands for dealing with the package manager subsystem.&lt;br /&gt;
|2= {{cite web&lt;br /&gt;
  | url    = http://forum.flightgear.org/viewtopic.php?p=275645#p275645&lt;br /&gt;
  | title  = &amp;lt;nowiki&amp;gt;Re: Aircraft Center&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  | author = &amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  | date   = Feb 10th, 2016&lt;br /&gt;
  | added   = Feb 10th, 2016&lt;br /&gt;
  | script_version = 0.25&lt;br /&gt;
  }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Internally, the launcher is implemented in the form of a Nasal script that resides in $FG_ROOT/Nasal/canvas/gui/dialogs/AircraftCenter.nas using the Canvas GUI APIs and a handful of widgets. All the package manager functionality lives in SimGear and is triggered in the form of so called fgcommands. Thus, the list itself will be populated based on XML files that are automatically downloaded. If there are errors related to fetching/using those files, they shoudl show up in $FG_HOME/fgfs.log (look for Catalog.cxx).&lt;br /&gt;
&lt;br /&gt;
The fetched files are to be found in $FG_HOME/Aircraft/org.flightgear.* &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The &amp;quot;built-in&amp;quot; GUI/launcher is one of the longest-standing feature requests - but it's not just about the GUI (which is rather straightforward in comparison), but about the simulator never having  been developed with this requirement, i.e. run-time reinitialization, in mind - thus, things like &amp;quot;fgrun&amp;quot; (and a plethora of other external launchers) were developed, which acted as a front-end on top of FG, so that FG itself wouldn't need to be changed - i.e. kind of a &amp;quot;remote control&amp;quot; using command line arguments. So it's there for a reason - fgrun uses the FLTK GUI library, which while relatively simple, is much more powerful than our legacy GUI engine, PUI.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Still, people have been asking for this for years, and it's thanks to pretty much a single person, Zakalawe, that switching aircraft is going to become possible pretty soon - he handled all the ugly work of cleaning up the simulator internals to make this happen - it's not exactly glamorous work, you gotta touch a ton of places, and you inevitably introduce a ton of regressions along the way.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=213461#p213461&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: About FlightGear being user-friendly or not&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 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |And yes, even the legacy FG GUI is entirely based on XML and configurable through just editiing XML files - but the collection of &amp;quot;widgets&amp;quot; (GUI controls like buttons, checkboxes, labels etc) is extremely small and very inflexible.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This is something that is currently being addressed by TheTom and Zakalawe, who've both been working on a new Canvas GUI, and a new Canvas GUI dialog called &amp;quot;Aircraft Center&amp;quot;, which -while still experimental- is intended to eventually allow end-users to easily download/install aircraft right within the simulator, and also switch between aircraft at run-time without having to exit/restart the simulator.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, adopting Canvas is going to address a number of long-standing issues, but it's obviously a process that only just got started, and it will not happen overnight - 2-3 release cycles are not far-fetched, that's how long the whole migration could very well take, unless there are more people interested in helping.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=213461#p213461&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: About FlightGear being user-friendly or not&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 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Note that the upcoming FlightGear release is likely to contain an integrated, hard-coded, launcher based on Qt5 to work around this non-working launcher on MacOS: {{flightgear source|commit=f3810707d53f3c04769bbc214036ee9156bc3a7c|file=src/Main/main.cxx}}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Unfortunately, this is -once again- overlapping with other efforts (think [[Canvas GUI]]/[[Aircraft Center]]), and it's going to be Mac specific, too.&lt;br /&gt;
If it wasn't for the recent mongoose GUI/Canvas GUI efforts, and had this been done/accepted a few years ago, many recent developments would be made obsolete by allowing Qt5 - but back then, Qt5 was a &amp;quot;no-go&amp;quot;...&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=228961#p228961&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FG cannot be opened on new iMac&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;Sun Jan 04&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The Aircraft Center is implemented entirely in scripting space - the package manager is exposed to Nasal via extension functions - it's probably (hopefully) just a matter of adapting 3-5 lines of code to try the other URLs if the first URL fails - for which you'll need to check the error code/state (property tree). please see $FG_ROOT/Nasal/canvas/gui/dialogs/AircraftCenter.nas&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=226929#p226929&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Aircraft center: &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 Dec 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Global Canvas GUI (WIP) ==&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |we could certainly prepare the main binary to become increasingly configurable, so that it can be used for such purposes - it would even be possible to use built-in FG dialogs in an external window, running in a standalone process - e.g. for an instructor console, but also for a Canvas-driven TerraGear GUI.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214286#p214286&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: How can I retire from the forum?&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;Mon Jul 07&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |(This subject has been discussed at FSWeekend)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I'm slowly working on a new &amp;quot;global&amp;quot; GUI created in Canvas. It's still in heavy development and I'm not sure I will have time to finish it for FG 3.4, but if people are helping I think we can get it.&lt;br /&gt;
[[File:Canvas-gui-experiments-by-F-JJTH-1.png|thumb|Canvas GUI experiments by F-JJTH (11/2014) [http://sourceforge.net/p/flightgear/mailman/message/33053113/]]]&lt;br /&gt;
[[File:Canvas-gui-experiments-by-F-JJTH-2.png|thumb|Canvas GUI experiments by F-JJTH (11/2014) [http://sourceforge.net/p/flightgear/mailman/message/33053113/]]]&lt;br /&gt;
[[File:Canvas-gui-experiments-by-F-JJTH-3.png|thumb|Canvas GUI experiments by F-JJTH (11/2014) [http://sourceforge.net/p/flightgear/mailman/message/33053113/]]]&lt;br /&gt;
[[File:Canvas-gui-experiments-by-F-JJTH-4.png|thumb|Canvas GUI experiments by F-JJTH (11/2014) [http://sourceforge.net/p/flightgear/mailman/message/33053113/]]]&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33053113/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Features for 3.4 please&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Clement de l'Hamaide&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-11-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The goal is to replace our dozens of GUI dialog by only 1 dialog with nice architecture/organization.&amp;lt;br/&amp;gt;&lt;br /&gt;
For example, the &amp;quot;General&amp;quot; page is remplacing &amp;quot;File &amp;gt; Sound configuration&amp;quot;, &amp;quot;View &amp;gt; Cockpit View Options&amp;quot;, &amp;quot;View &amp;gt; Adjust HUD Properties&amp;quot; and &amp;quot;View &amp;gt; View Options&amp;quot;.&lt;br /&gt;
Some Canvas tools are missing (slider, radio button, styling helper like &amp;quot;font-bold&amp;quot;, &amp;quot;underline&amp;quot;...) but I know Canvas is under development.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33053113/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Features for 3.4 please&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Clement de l'Hamaide&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-11-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The &amp;quot;Home&amp;quot; page is designed to be the &amp;quot;select airport&amp;quot;, &amp;quot;select aircraft&amp;quot;, &amp;quot;help&amp;quot;... finally this dialog could become the &amp;quot;built-in launcher&amp;quot;.For&lt;br /&gt;
example we can imagine to have an option like --enable-launcher which start FG in a way that he doesn't load any aircraft or position but &lt;br /&gt;
instead we hold the splashscreen and we show this Canvas dialog, then the user can select his airport and his aircraft. Finally a simple &lt;br /&gt;
'reset' with all settings required by the user is triggered that way the user end up in his aircraft at his airport.&lt;br /&gt;
All of this require to be discussed and is likely at the &amp;quot;proof-of-concept&amp;quot; state.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33053113/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Features for 3.4 please&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Clement de l'Hamaide&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-11-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Looks … okay, just be aware how it will interact with the menubar. (Especially on Mac).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I actually considered the same, unifying many settings dialogs into one Preferences dialog; not combing ‘everything’ but all the Rendering / View / Multiplayer / Scenery Download / Instrument settings into one Preferences dialog with tabs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33055321/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Features for 3.4 please&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=&amp;lt;nowiki&amp;gt;2014-11-19&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I would still think that a series of top level dialogs might make more sense, based on frequency of use:&amp;lt;br/&amp;gt;&lt;br /&gt;
* an aircraft  selection / startup location / scenario selection (aka ‘the launcher’) ; something that is shown by default on launch and used every day&amp;lt;br/&amp;gt;&lt;br /&gt;
* a preferences + settings + joystick config one which hopefully is not used every day (once things are setup)&amp;lt;br/&amp;gt;&lt;br /&gt;
* a help + about dialog which again hopefully is not used every day, maybe designed to remain open on screen&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33055321/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Features for 3.4 please&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=&amp;lt;nowiki&amp;gt;2014-11-19&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I’m not sure how the equipment dialogs (which are often customised per-aircraft - eg radios or autopilot), including the GPS and route-manager, fit into this either.&lt;br /&gt;
Of course, it’s great if Canvas is as the point that we can actually consider such things, and hopefully the actual arrangement of screens + widgets is easy to evaluate and adjust. &lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33055321/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Features for 3.4 please&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=&amp;lt;nowiki&amp;gt;2014-11-19&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Feature Requests ==&lt;br /&gt;
=== Supporting separate/external Windows for the GUI ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |This looks promising in a technical/coding perspective of having this and that common GUI feature available also for flightgear. But for me personally one of the big problems of the FlightGear GUI is that it is &amp;quot;inside&amp;quot; the only and one main window. There is no possibility to have a separate window to not cover the main content, the scenery and the cockpit? This would make the GUI much more practical. I would really like to run flightgear with one window &amp;quot;view&amp;quot; and other windows for the program (options). This will improve the usability of all the menus, dialogs etc. a lot in my opinion.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/29586327/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Switching from PUI to osgWidget&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;ys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2012-07-24&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
{{cquote&lt;br /&gt;
  |I've pushed now a first version of an aircraft install/removal dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
Was a lot more effort than expected, but now there are a lot of&amp;lt;br/&amp;gt;&lt;br /&gt;
improvements available useful for every type of dialog.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32441965/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Thomas Geymayer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-06-10&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |The dialog is available in the menu (File &amp;gt; Aircraft Center) and shows&amp;lt;br/&amp;gt;&lt;br /&gt;
a list of the 100 first aircrafts available to install/remove. I've&amp;lt;br/&amp;gt;&lt;br /&gt;
chosen to limit the number, because with showing all aircrafts at once&amp;lt;br/&amp;gt;&lt;br /&gt;
I got a delay of a few seconds on opening the dialog. I will&amp;lt;br/&amp;gt;&lt;br /&gt;
investigate into this more later. You can use the according buttons to&amp;lt;br/&amp;gt;&lt;br /&gt;
install/remove aircrafts - which I have already done successfully.&amp;lt;br/&amp;gt;&lt;br /&gt;
Currently the dialog does not indicate any progress and needs to be&amp;lt;br/&amp;gt;&lt;br /&gt;
reopened to update the buttons.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As the feature freeze is already approaching, I won't be able to add&amp;lt;br/&amp;gt;&lt;br /&gt;
too much features for this release. So I think there won't be any&amp;lt;br/&amp;gt;&lt;br /&gt;
keyboard input/searching for this release. I want to support different&amp;lt;br/&amp;gt;&lt;br /&gt;
tabs to show a list of eg. just the installed aircrafts and do a&amp;lt;br/&amp;gt;&lt;br /&gt;
simple cache for all the downloaded images, to have them visible&amp;lt;br/&amp;gt;&lt;br /&gt;
faster on opening the dialog.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32441965/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Thomas Geymayer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-06-10&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |Thomas Geymayer and I are working on it, I am not sure where’s he go to with the UI, the backend pieces are mostly there but will need some intensive testing. There is a #define flag you can toggle (in HTTPClient.cxx) to enable the code including the Nasal API; it will download / refresh a catalog, which is generated by the scripts I committed to fgmeta a week ago. Then you can access the package system from pkg.root in the Nasal console, using the API defined at the bottom of HTTPClient.cxx.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you are crazy enough to enable this code, and run it, be aware it downloads zips, unpacks them, makes calls to unlink files, renames directories, and so on. I would recommend some caution, and especially, don’t run it as root - while developing it I had it extract a few zips to ‘/‘ or worse due to screwed up path logic.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Equally, I would welcome a code review of the code in simgear/package/Install.cxx to check any security issues or dangerous behaviour. The code /tries/ to be ‘safe’ - extract zip to a temporary folder, and uses rename/unlink to atomically update if the zip extraction succeeds. But it’s only had one pair of eyes on it so far. &lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32440549/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&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=&amp;lt;nowiki&amp;gt;2014-06-10&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |My next objective will be actually switching to an aircraft, and setting up the correct paths so that dependencies work; this is more or less orthogonal, I will make a new command to select an aircraft (and reset the sim) based on an aircraft ID or fully-qualified ID. (Again to allow catalogs with ID collisions, such as org.flightgear.default.747-400 and nl.gijs-hangar.beta.747-400)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If anyone wishes to start adding tags or more meta-data to aircraft in FGdata, please let me know, especially to keep the tag space coherent and hence useful for searching.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32443649/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&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=&amp;lt;nowiki&amp;gt;2014-06-10&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |the whole thing is still pretty experimental, it’s probably not at the ‘this text should be a little to the left’ point. We’re more at the ‘it didn’t erase your C drive? Great!’ stage….&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32457767/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Notes on Aircraft Center...&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=&amp;lt;nowiki&amp;gt;2014-06-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |The layout and widget systems is now maturing, so I think after 3.2 I&amp;lt;br/&amp;gt;&lt;br /&gt;
can start with porting PUI. Just one major component is missing, namely&amp;lt;br/&amp;gt;&lt;br /&gt;
keyboard input and the according input focus.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I guess this will take one or two more releases.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32457866/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Notes on Aircraft Center...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Thomas Geymayer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-06-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Tagging ==&lt;br /&gt;
{{cquote&lt;br /&gt;
  |Related to this, does anyone know how standardised the &amp;lt;status&amp;gt; values are? If there is a defined list of values I will add query support and expose them as an enum to Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And, if anyone who has a custom hangar would like to start maintaining a catalog, please let me know - there is no UI in FG to add additional catalogs yet but it would help with testing. If you already have a web server with zip files of aircraft, you only need to serve one extra XML file to run a ‘package-ified’ hangar. The catalog XML can be hand written or generated using any technology you like - there’s Python scripts in fgmeta, but PHP / shell-script / etc will all work too.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32445402/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&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=&amp;lt;nowiki&amp;gt;2014-06-11&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  | have updated my script with to restrict tags to the set I original wrote on the wiki some time ago:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	http://wiki.flightgear.org/Catalog_metadata&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I am going to do make a drive-by assault on fgdata/Aircraft adding tags - hopefully no maintainer feels this is problematic since it’s purely adding metadata to make the UI more functional. I am sure I will get some entries ‘wrong’ and the tags themselves are still up for discussion, but we have a version control system, and most of the tags are very non-controversial.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The ‘nicer’ Nasal tags syntax is added now too. (Part of the motivation for adding tags to fgdata is to test it better(&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32451527/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&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=&amp;lt;nowiki&amp;gt;2014-06-12&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Variants ==&lt;br /&gt;
{{cquote&lt;br /&gt;
  | I don’t think there’s any pathological examples with more than eight -set.xml. Designating the ‘main’ -set.xml is still an issue.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
What I will do is include the set-file and description in a ‘variants’ list, with the first entry being the default. So in the catalog XML, something like:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;package&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;variant&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;id&amp;gt;747-400-FO&amp;lt;/id&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;name&amp;gt;747-400 First-officer mode&amp;lt;/name&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;/variant&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		...&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/package&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On Package I’ll expose this as string_list of variants() with a nameForVariant(std::string variant) helper. For Nasal I can return a dictionary.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Variant IDs will need to be unique within the Catalog, and I’ll update the search logic to accept /any/ variant ID as matching the package - this will make the aircraft-startup part of everything work, and keeps thing close to how it behaves with unpackaged aircraft.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32457202/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&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=&amp;lt;nowiki&amp;gt;2014-06-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Aircraft developers can make use of a new tag in the [[Aircraft-set.xml]] file.  Added to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;sim&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;variant-of&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag states to the launcher the aircraft type that your aircraft is a variant of.  For example, the [[British Aerospace Sea Harrier|BAe Sea Harrier FA2]] is a variant of the BAe Sea Harrier, and the ''Cessna 172P - Canvas Demo'' is a variant of the [[Cessna C172P|C172P]].&lt;br /&gt;
&lt;br /&gt;
{{note|At the moment, only the Mac Qt launcher (which comes with FlightGear for Mac v3.4+) will read this tag.}}&lt;br /&gt;
&lt;br /&gt;
Syntax:&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;
    ...&lt;br /&gt;
    &amp;lt;variant-of&amp;gt;[aircraft]&amp;lt;/variant-of&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/sim&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example from {{repo link|site=gito|path=Aircraft/777/777-200ER-set.xml|pre=$FG_ROOT}} (see {{gitorious source|proj=fg|repo=fgdata|commit=1017a32b1b078f46959b3b6e7510a7376458b02b|view=commit}}):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;variant-of&amp;gt;777-200&amp;lt;/variant-of&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
{{cquote&lt;br /&gt;
  |I thought about adding a cache add Canvas::Image or rather at the&amp;lt;br/&amp;gt;&lt;br /&gt;
HTTPRequest level to cache all HTTP requests/files which have not set&amp;lt;br/&amp;gt;&lt;br /&gt;
a no-cache header.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32442349/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Thomas Geymayer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-06-10&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  | for a first step I want to limit it only to the&amp;lt;br/&amp;gt;&lt;br /&gt;
HTTPMemoryRequest which is mainly used for downloading canvas images. So&amp;lt;br/&amp;gt;&lt;br /&gt;
it should not affect too many parts.&amp;lt;br/&amp;gt;&lt;br /&gt;
Someday we should probably add a cache limit - but not now ;-) I will&amp;lt;br/&amp;gt;&lt;br /&gt;
also need this for displaying tilemaps.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32443509/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Thomas Geymayer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-06-10&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |A semi-related small thing: I'd like to have saved-between-sessions &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;quot;default aircraft/starting airport&amp;quot; properties (/sim/default-aircraft, &amp;lt;br/&amp;gt;&lt;br /&gt;
/sim/default-airport ?), set by a &amp;quot;make this default&amp;quot; check box in Go To &amp;lt;br/&amp;gt;&lt;br /&gt;
Airport and the new aircraft dialog, so those who prefer something other &amp;lt;br/&amp;gt;&lt;br /&gt;
than c172p@... don't have to select it on every startup.  I should be &amp;lt;br/&amp;gt;&lt;br /&gt;
able to implement this, but comments would be appreciated.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32398014/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Rebecca N. Palmer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-05-30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |Currently box layouts are available. Once they fully&amp;lt;br/&amp;gt;&lt;br /&gt;
work I'll start thinking of other layouts and widgets.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32457866/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Notes on Aircraft Center...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Thomas Geymayer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-06-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |I want&amp;lt;br/&amp;gt;&lt;br /&gt;
to implement a cache to speed it up after the first time, but not for&amp;lt;br/&amp;gt;&lt;br /&gt;
3.2. If an image fails to load there should be a message in the terminal.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;quot;No thumbnail available&amp;quot; is shown if there is no image specified in the&amp;lt;br/&amp;gt;&lt;br /&gt;
catalog.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32457866/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Notes on Aircraft Center...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Thomas Geymayer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-06-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |what I’d want is tabs at the top for ‘installed aircraft’, ‘available updates’ and so on. But again the question is really what UI we can build in the time available.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32457767/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Notes on Aircraft Center...&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=&amp;lt;nowiki&amp;gt;2014-06-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The default aircraft catalog download path is http://fgfs.goneabitbursar.com/pkg/&amp;lt;version&amp;gt;/default-catalog.xml, which does not exist for 3.4.0 or 3.5.0, giving a &amp;quot;catalog download failure:&amp;quot; error and an empty Aircraft Center.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33679386/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Non-existent default catalog&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Rebecca N. Palmer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2015-03-31&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Also, the address includes the micro version: is that intentional or not? catalog download failure:http://fgfs.goneabitbursar.com/pkg/3.4.1/default-catalog.xml&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33679621/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Non-existent default catalog&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Rebecca N. Palmer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2015-03-31&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |It would be good to resolve the missing aircraft center database. &lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33681336/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] fgdata 3.4.1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Curtis Olson&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2015-03-31&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |Prior to a reset, if you edit /sim/aircraft, it works as you would expect. However there are some quirks related to aircraft-specific menu items / dialogs, at least on Mac (the custom menu for previous aircraft is not removed). &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There may be other bugs, since this feature is not used by anyone yet.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32397779/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] select/download aircraft&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=&amp;lt;nowiki&amp;gt;2014-05-30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |If you've created a grid control for Canvas, it would be nice to see the &amp;lt;br/&amp;gt;&lt;br /&gt;
FDM, Systems, Cockpit and Model ratings broken out into individual columns &amp;lt;br/&amp;gt;&lt;br /&gt;
so you could sort by them. :)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you get to the point where you can change aircraft from this dialog, &amp;lt;br/&amp;gt;&lt;br /&gt;
you might want to include a checkbox that will limit the list to installed &amp;lt;br/&amp;gt;&lt;br /&gt;
aircraft.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If the Aircraft Center dialog is open, other dialogs don't appear to work &amp;lt;br/&amp;gt;&lt;br /&gt;
- I tried exiting via File-&amp;gt;Exit and none of the items were selectable. &amp;lt;br/&amp;gt;&lt;br /&gt;
Hitting ESC brings up the Exit dialog, but the buttons were not clickable.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Dismissing the Aircraft Center dialog allowed the other dialogs to operate &amp;lt;br/&amp;gt;&lt;br /&gt;
properly.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32457611/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Notes on Aircraft Center...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;geneb&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-06-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |The Canvas fonts are blurry compared to the in.sim Menu bar Fonts -Richi Muchacho&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96144</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96144"/>
		<updated>2016-03-22T13:20:30Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Phi - 'map in browser' */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
''Not exactly appropriate for the Phi wiki page, leaving till I find something more relevant''&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Phi UI Features ==&lt;br /&gt;
Phi is at foremost a multi-platform user interface that has two-way data binding with FlightGear via the internal HTTP web server. This allows Phi to be a fully functional user interface that can directly control FlightGear. The following list is a set of features that are currently implemented and working.&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
This is where you will find all things related to the currently selected aircraft in-sim, if available. &lt;br /&gt;
*'''Help''' - Displays the aircraft help file '''Help &amp;gt; Aircraft Help'''&lt;br /&gt;
*'''Mass &amp;amp; Balance''' - Displays aircraft specific fuel and payload options '''Equipment &amp;gt; Fuel and Payload'''&lt;br /&gt;
*'''Checklist''' - Displays aircraft checklist '''Help &amp;gt; '''&lt;br /&gt;
*'''Failures''' - &lt;br /&gt;
*'''Panel''' - &lt;br /&gt;
*'''Select''' - ''Known bug in FG for windows versions 7+, assume this feature to not work anytime soon even if you see a list of planes to install''&lt;br /&gt;
=== Environment===&lt;br /&gt;
*'''Date &amp;amp; Time''' - Change in-sim time of day and current date&lt;br /&gt;
*'''Weather''' - &lt;br /&gt;
*'''Position''' - Interface where you can search for airports via ICAO codes and then select a runway/parking spot to load into FlightGear '''Location &amp;gt; Select Airport'''&lt;br /&gt;
=== Map ===&lt;br /&gt;
Loads an OpenStreetMap as the background and updates your current position around the world in real time while you fly. Allows one to not only track current flight, but the ability to drag the plane icon around the map which will instantly update FlightGear with the new lon. and lat. coordinate position. &lt;br /&gt;
=== Tools===&lt;br /&gt;
Things that make for a more realistic experience. Not exactly needed to fly a plane, but these tools will add to the realism.&lt;br /&gt;
*'''Holding Pattern''' - A tool to help one understand how to enter the holding pattern. Enter in the Heading and Inbound Track and the diagram will show you visually the Holding pattern.&lt;br /&gt;
*'''Wind Calculator''' - &lt;br /&gt;
*'''Vertical Navigation (VNAV)''' - ''from my understanding not anytime soon, needs FG integration first''&lt;br /&gt;
*'''Stopwatch''' - Self-explanatory&lt;br /&gt;
=== Simulator ===&lt;br /&gt;
*'''Screenshot''' - Set the time between screen updates. See [[Phi#Screen Shots]]&lt;br /&gt;
*'''Properties''' - In-sim property tree, two-way data binding, good for debugging!&lt;br /&gt;
*'''Config''' - In-sim config settings&lt;br /&gt;
**'''AI''' - Enable/Disable AI&lt;br /&gt;
**'''Multi-Player''' - Enter callsign and select which server to connect to on the multi-player network.&lt;br /&gt;
*'''Reset''' - Reset the FlightGear Sim&lt;br /&gt;
*'''Exit''' - Quit&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
'''Open the SVG file in inkscape and enter the xml editor (Ctrl + shift + X) to view the data-bind attributes for the objects that need animating'''&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.svg&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.js&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96143</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96143"/>
		<updated>2016-03-22T13:06:44Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Updates based on developers input&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
''Not exactly appropriate for the Phi wiki page, leaving till I find something more relevant''&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Phi UI Features ==&lt;br /&gt;
Phi is at foremost a multi-platform user interface that has two-way data binding with FlightGear via the internal HTTP web server. This allows Phi to be a fully functional user interface that can directly control FlightGear. The following list is a set of features that are currently implemented and working.&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
This is where you will find all things related to the currently selected aircraft in-sim, if available. &lt;br /&gt;
*'''Help''' - Displays the aircraft help file '''Help &amp;gt; Aircraft Help'''&lt;br /&gt;
*'''Mass &amp;amp; Balance''' - Displays aircraft specific fuel and payload options '''Equipment &amp;gt; Fuel and Payload'''&lt;br /&gt;
*'''Checklist''' - Displays aircraft checklist '''Help &amp;gt; '''&lt;br /&gt;
*'''Failures''' - &lt;br /&gt;
*'''Panel''' - &lt;br /&gt;
*'''Select''' - ''Known bug in FG for windows versions 7+, assume this feature to not work anytime soon even if you see a list of planes to install''&lt;br /&gt;
=== Environment===&lt;br /&gt;
*'''Date &amp;amp; Time''' - Change in-sim time of day and current date&lt;br /&gt;
*'''Weather''' - &lt;br /&gt;
*'''Position''' - Interface where you can search for airports via ICAO codes and then select a runway/parking spot to load into FlightGear '''Location &amp;gt; Select Airport'''&lt;br /&gt;
=== Map ===&lt;br /&gt;
Loads an OpenStreetMap as the background and updates your current position around the world in real time while you fly. Allows one to not only track current flight, but the ability to drag the plane icon around the map which will instantly update FlightGear with the new lon. and lat. coordinate position. &lt;br /&gt;
=== Tools===&lt;br /&gt;
Things that make for a more realistic experience. Not exactly needed to fly a plane, but these tools will add to the realism.&lt;br /&gt;
*'''Holding Pattern''' - A tool to help one understand how to enter the holding pattern. Enter in the Heading and Inbound Track and the diagram will show you visually the Holding pattern.&lt;br /&gt;
*'''Wind Calculator''' - &lt;br /&gt;
*'''Vertical Navigation (VNAV)''' - ''from my understanding not anytime soon, needs FG integration first''&lt;br /&gt;
*'''Stopwatch''' - Self-explanatory&lt;br /&gt;
=== Simulator ===&lt;br /&gt;
*'''Screenshot''' - Set the time between screen updates. See [[Phi#Screen Shots]]&lt;br /&gt;
*'''Properties''' - In-sim property tree, two-way data binding, good for debugging!&lt;br /&gt;
*'''Config''' - In-sim config settings&lt;br /&gt;
**'''AI''' - Enable/Disable AI&lt;br /&gt;
**'''Multi-Player''' - Enter callsign and select which server to connect to on the multi-player network.&lt;br /&gt;
*'''Reset''' - Reset the FlightGear Sim&lt;br /&gt;
*'''Exit''' - Quit&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
'''Open the SVG file in inkscape and enter the xml editor (Ctrl + shift + X) to view the data-bind attributes for the objects that need animating'''&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.svg&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.js&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96132</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96132"/>
		<updated>2016-03-22T01:32:19Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
'''Open the SVG file in inkscape and enter the xml editor (Ctrl + shift + X) to view the data-bind attributes for the objects that need animating'''&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.svg&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.js&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96131</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96131"/>
		<updated>2016-03-22T01:29:36Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Web-based EFIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
'''Open the SVG file in inkscape and enter the xml editor (Ctrl + shift + X) to view the data-bind attributes for the objects that need animating'''&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.svg&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.js&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96130</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96130"/>
		<updated>2016-03-22T01:29:17Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
'''Open the SVG file in inkscape and enter the xml editor (Ctrl + shift + X) to view the data-bind attributes for the objects that need animating'''&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.svg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.js&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96129</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96129"/>
		<updated>2016-03-22T01:27:45Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
'''Open the SVG file in inkscape and enter the xml editor (Ctrl + shift + X) to view the data-bind attributes for the objects that need animating'''&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.svg&lt;br /&gt;
&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.js&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96128</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96128"/>
		<updated>2016-03-22T01:25:51Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Web-based EFIS */ Added in an example for web-panel instruments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
'''Open the SVG file in inkscape and enter the xml editor (Ctrl + shift + X) to view the data-bind attributes for the objects that need animating'''&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.svg&lt;br /&gt;
  https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Phi/widgets/efis.js&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96127</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96127"/>
		<updated>2016-03-22T01:10:12Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* FFGo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96126</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96126"/>
		<updated>2016-03-22T01:09:33Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* FFGo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
{{Main Article|FFGo}}&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96125</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96125"/>
		<updated>2016-03-22T00:35:35Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making Web-Panel instruments ===&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96124</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96124"/>
		<updated>2016-03-22T00:29:33Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Fixed some references and few minor mistakes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent 2016.1.1 has all it needs. Workload for FlightGear is negligible, for the current EFIS, on page load a few hundred kilobytes of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Making Web-Panel instruments ==&lt;br /&gt;
I use Inkscape to draw the SVGs. The objects to animate are selected by their id attribute, so you should set a reasonable name for those. To get proper scaling of the SVGs, you need to set the viewBox: width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height, and preserveAspectRation of the &amp;lt;svg&amp;gt; tag element. It should be also possible to draw SVG's on the fly e.g. from svg.js and animate this as well. Not much has been on this front.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96123</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96123"/>
		<updated>2016-03-22T00:16:25Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Quoting cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This article is currently in the process of being updated/rewritten by {{Usr|Jaxsin}}}}&lt;br /&gt;
[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, Torsten rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably, a video is more descriptive, here is a shot of an earlier (incomplete) version:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|sYM7uiWIprc}}&lt;br /&gt;
&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out {{wikipedia|Phi}} and pick the one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
{{Main article|Integrated Qt5 Launcher}}&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
The web-based EFIS is created from a scale-able vector graphics (svg), is animated by JavaScript and driven by properties from FlightGear over websockets. The same svg files that are used for the FlightGear internal canvas based instruments can also be used for the browser based display, so both instruments (that of the 3d model and that in your browser) look 100% alike. Web-socket properties are exchanged at frame rate making animations as smooth as they can get. Because it uses SVG, instruments are always rendered at the highest available resolution of the device without scaling artifacts.&lt;br /&gt;
&amp;lt;ref name=&amp;quot;HelloFGP2.0&amp;quot;&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840486/ Goodbye fgPanel, Hello fgPanel 2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most exciting part is, the web based instrument runs on any modern platform without the need to install any spooky software. It also runs flawless on my Android phone and tablet and of course in a standard browser (Firefox and Chrome tested). On mobile OSes, you can add it to your home screen, making this a full-screen web-app to get rid of the browser navigation and toolbar (like shown in the screenshot). There is not much required on the FlightGear side - recent git has all it needs. Workload for FlightGear is neglible, for the current EFIS, on page load a few hundret kilobyte of static files are transmitted and once fully loaded, 10 (ten!) properties are observed and transmitted on change. All the rendering takes place on the web browser's device.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[HelloFGP2.0]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96074</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96074"/>
		<updated>2016-03-21T20:27:59Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Screen Shots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters:&lt;br /&gt;
 &lt;br /&gt;
*'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
&lt;br /&gt;
*'''window:''' the name of the window to capture (for those with multi screen setups)&lt;br /&gt;
&lt;br /&gt;
*'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Force_Feedback_Support_in_FlightGear&amp;diff=96073</id>
		<title>Force Feedback Support in FlightGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Force_Feedback_Support_in_FlightGear&amp;diff=96073"/>
		<updated>2016-03-21T20:06:14Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Force_feedback]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Force_Feedback_Support_in_FlightGear&amp;diff=96072</id>
		<title>Force Feedback Support in FlightGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Force_Feedback_Support_in_FlightGear&amp;diff=96072"/>
		<updated>2016-03-21T20:03:04Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Quoting cleanup - No merge needed, Zan has the force feedback wiki in good order&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96071</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96071"/>
		<updated>2016-03-21T19:35:56Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken '''''FI''''' sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters: &lt;br /&gt;
'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
'''window:''' the name of the window to capture (for those with multi screen &lt;br /&gt;
setups)&lt;br /&gt;
'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96070</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96070"/>
		<updated>2016-03-21T19:30:34Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Screen Shots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters: &lt;br /&gt;
'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
'''window:''' the name of the window to capture (for those with multi screen &lt;br /&gt;
setups)&lt;br /&gt;
'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
===Examples:===&lt;br /&gt;
==== Single screenshot ====&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
==== Motion-jpeg ====&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96069</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96069"/>
		<updated>2016-03-21T19:29:28Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Screen Shots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters: &lt;br /&gt;
'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
'''window:''' the name of the window to capture (for those with multi screen &lt;br /&gt;
setups)&lt;br /&gt;
'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
=== Single screenshot ===&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
=== Motion-jpeg ===&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96068</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96068"/>
		<updated>2016-03-21T19:27:11Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Screen Shots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters: &lt;br /&gt;
'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
'''window:''' the name of the window to capture (for those with multi screen &lt;br /&gt;
setups)&lt;br /&gt;
'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96067</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96067"/>
		<updated>2016-03-21T19:26:26Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: Quoting cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
You can access the new screenshot handler after starting FlightGear per instructions here [[Phi#Usage|Usage]] &lt;br /&gt;
  http://localhost:8080/screenshot&lt;br /&gt;
&lt;br /&gt;
It understands some request parameters: &lt;br /&gt;
'''type:''' either png or jpg (guess what this does)&lt;br /&gt;
'''window:''' the name of the window to capture (for those with multi screen &lt;br /&gt;
setups)&lt;br /&gt;
'''stream:''' provide mjpeg stream&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
send png instead of jpg (jpg is default)&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&lt;br /&gt;
  http://localhost:8080/screenshot?type=png&amp;amp;window=WindowA&lt;br /&gt;
use default jpg encoding&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&lt;br /&gt;
&lt;br /&gt;
  http://localhost:8080/screenshot?window=WindowA&amp;amp;stream=y&lt;br /&gt;
Send a motion-jpeg encoded video stream.&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&lt;br /&gt;
  ffplay -f mjpeg http://localhost:8080/screenshot/stream=y&lt;br /&gt;
&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY hardcoded to 80. These seem to be a good balance of performance vs. quality&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96066</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96066"/>
		<updated>2016-03-21T19:15:33Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* FFGo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file. Please visit [[FFGo]] for further details &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |You can access the new screenshot handler after starting with &amp;lt;br/&amp;gt;&lt;br /&gt;
--httpd{{=}}8080 at http://localhost:8080/screenshot&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It understands some request parameters:&amp;lt;br/&amp;gt;&lt;br /&gt;
type: either png or jpg (guess what this does)&amp;lt;br/&amp;gt;&lt;br /&gt;
window: the name of the window to capture (for those with multi screen &amp;lt;br/&amp;gt;&lt;br /&gt;
setups)&amp;lt;br/&amp;gt;&lt;br /&gt;
stream: provide mjpeg stream&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Examples:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type=png&amp;lt;br/&amp;gt;&lt;br /&gt;
send png instead of jpg (jpg is default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type{{=}}png&amp;amp;window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &amp;lt;br/&amp;gt;&lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
do the same as before, but use default jpg encoding&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |http://localhost:8080/screenshot?window{{=}}WindowA&amp;amp;stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
same as before, but not just send a single image but a motion-jpeg &amp;lt;br/&amp;gt;&lt;br /&gt;
encoded video stream.&amp;lt;br/&amp;gt;&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&amp;lt;br/&amp;gt;&lt;br /&gt;
try ffplay -f mjpeg http://localhost:8080/screenshot/stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY &amp;lt;br/&amp;gt;&lt;br /&gt;
hardcoded to 80.&amp;lt;br/&amp;gt;&lt;br /&gt;
These seem to be a good balance of performance vs. quality.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96065</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96065"/>
		<updated>2016-03-21T19:05:56Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''FI''''' = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |You can access the new screenshot handler after starting with &amp;lt;br/&amp;gt;&lt;br /&gt;
--httpd{{=}}8080 at http://localhost:8080/screenshot&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It understands some request parameters:&amp;lt;br/&amp;gt;&lt;br /&gt;
type: either png or jpg (guess what this does)&amp;lt;br/&amp;gt;&lt;br /&gt;
window: the name of the window to capture (for those with multi screen &amp;lt;br/&amp;gt;&lt;br /&gt;
setups)&amp;lt;br/&amp;gt;&lt;br /&gt;
stream: provide mjpeg stream&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Examples:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type=png&amp;lt;br/&amp;gt;&lt;br /&gt;
send png instead of jpg (jpg is default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type{{=}}png&amp;amp;window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &amp;lt;br/&amp;gt;&lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
do the same as before, but use default jpg encoding&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |http://localhost:8080/screenshot?window{{=}}WindowA&amp;amp;stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
same as before, but not just send a single image but a motion-jpeg &amp;lt;br/&amp;gt;&lt;br /&gt;
encoded video stream.&amp;lt;br/&amp;gt;&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&amp;lt;br/&amp;gt;&lt;br /&gt;
try ffplay -f mjpeg http://localhost:8080/screenshot/stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY &amp;lt;br/&amp;gt;&lt;br /&gt;
hardcoded to 80.&amp;lt;br/&amp;gt;&lt;br /&gt;
These seem to be a good balance of performance vs. quality.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96064</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96064"/>
		<updated>2016-03-21T19:04:14Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Console */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FI = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd Example.&lt;br /&gt;
  fgfs --httpd=8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. '''Select Equipment &amp;gt; Map (opens in browser)''' or launch a web browser and enter the URL &lt;br /&gt;
  http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |You can access the new screenshot handler after starting with &amp;lt;br/&amp;gt;&lt;br /&gt;
--httpd{{=}}8080 at http://localhost:8080/screenshot&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It understands some request parameters:&amp;lt;br/&amp;gt;&lt;br /&gt;
type: either png or jpg (guess what this does)&amp;lt;br/&amp;gt;&lt;br /&gt;
window: the name of the window to capture (for those with multi screen &amp;lt;br/&amp;gt;&lt;br /&gt;
setups)&amp;lt;br/&amp;gt;&lt;br /&gt;
stream: provide mjpeg stream&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Examples:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type=png&amp;lt;br/&amp;gt;&lt;br /&gt;
send png instead of jpg (jpg is default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type{{=}}png&amp;amp;window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &amp;lt;br/&amp;gt;&lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
do the same as before, but use default jpg encoding&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |http://localhost:8080/screenshot?window{{=}}WindowA&amp;amp;stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
same as before, but not just send a single image but a motion-jpeg &amp;lt;br/&amp;gt;&lt;br /&gt;
encoded video stream.&amp;lt;br/&amp;gt;&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&amp;lt;br/&amp;gt;&lt;br /&gt;
try ffplay -f mjpeg http://localhost:8080/screenshot/stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY &amp;lt;br/&amp;gt;&lt;br /&gt;
hardcoded to 80.&amp;lt;br/&amp;gt;&lt;br /&gt;
These seem to be a good balance of performance vs. quality.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96063</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96063"/>
		<updated>2016-03-21T19:01:43Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* FFGo */ added image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FI = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd command switch somewhere in the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FFGo launcher.PNG|300px|FFGo launcher]]&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd=8080&lt;br /&gt;
*insert image&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. Select Equipment &amp;gt; Map (opens in browser) or launch a web browser and enter the url http://localhost:8080 and press enter.&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |You can access the new screenshot handler after starting with &amp;lt;br/&amp;gt;&lt;br /&gt;
--httpd{{=}}8080 at http://localhost:8080/screenshot&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It understands some request parameters:&amp;lt;br/&amp;gt;&lt;br /&gt;
type: either png or jpg (guess what this does)&amp;lt;br/&amp;gt;&lt;br /&gt;
window: the name of the window to capture (for those with multi screen &amp;lt;br/&amp;gt;&lt;br /&gt;
setups)&amp;lt;br/&amp;gt;&lt;br /&gt;
stream: provide mjpeg stream&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Examples:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type=png&amp;lt;br/&amp;gt;&lt;br /&gt;
send png instead of jpg (jpg is default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type{{=}}png&amp;amp;window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &amp;lt;br/&amp;gt;&lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
do the same as before, but use default jpg encoding&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |http://localhost:8080/screenshot?window{{=}}WindowA&amp;amp;stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
same as before, but not just send a single image but a motion-jpeg &amp;lt;br/&amp;gt;&lt;br /&gt;
encoded video stream.&amp;lt;br/&amp;gt;&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&amp;lt;br/&amp;gt;&lt;br /&gt;
try ffplay -f mjpeg http://localhost:8080/screenshot/stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY &amp;lt;br/&amp;gt;&lt;br /&gt;
hardcoded to 80.&amp;lt;br/&amp;gt;&lt;br /&gt;
These seem to be a good balance of performance vs. quality.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:FFGo_launcher.PNG&amp;diff=96062</id>
		<title>File:FFGo launcher.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:FFGo_launcher.PNG&amp;diff=96062"/>
		<updated>2016-03-21T19:00:52Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=http daemon option for FG in FFGo launcher}}&lt;br /&gt;
|date=2016-03-21&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Jaxsin|Jaxsin]]&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;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FFGo screenshots]]&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96048</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96048"/>
		<updated>2016-03-21T18:13:35Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Qt5 Launcher */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FI = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Phi launcher option.PNG|300px|Qt5 launcher option for Phi]]&lt;br /&gt;
&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd=8080 command switch end of the config file.&lt;br /&gt;
*insert image&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd=8080&lt;br /&gt;
*insert image&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. Select Equipment &amp;gt; Map (opens in browser) or launch a web browser and enter the url http://localhost:8080 and press enter.&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |You can access the new screenshot handler after starting with &amp;lt;br/&amp;gt;&lt;br /&gt;
--httpd{{=}}8080 at http://localhost:8080/screenshot&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It understands some request parameters:&amp;lt;br/&amp;gt;&lt;br /&gt;
type: either png or jpg (guess what this does)&amp;lt;br/&amp;gt;&lt;br /&gt;
window: the name of the window to capture (for those with multi screen &amp;lt;br/&amp;gt;&lt;br /&gt;
setups)&amp;lt;br/&amp;gt;&lt;br /&gt;
stream: provide mjpeg stream&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Examples:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type=png&amp;lt;br/&amp;gt;&lt;br /&gt;
send png instead of jpg (jpg is default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type{{=}}png&amp;amp;window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &amp;lt;br/&amp;gt;&lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
do the same as before, but use default jpg encoding&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |http://localhost:8080/screenshot?window{{=}}WindowA&amp;amp;stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
same as before, but not just send a single image but a motion-jpeg &amp;lt;br/&amp;gt;&lt;br /&gt;
encoded video stream.&amp;lt;br/&amp;gt;&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&amp;lt;br/&amp;gt;&lt;br /&gt;
try ffplay -f mjpeg http://localhost:8080/screenshot/stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY &amp;lt;br/&amp;gt;&lt;br /&gt;
hardcoded to 80.&amp;lt;br/&amp;gt;&lt;br /&gt;
These seem to be a good balance of performance vs. quality.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96047</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96047"/>
		<updated>2016-03-21T18:08:27Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32068663/ Initial motivation]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/32840980/ Video reference]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FI = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;[[http://sourceforge.net/p/flightgear/mailman/message/33347855/ Why Phi?]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
[[File:Phi launcher option.PNG|thumb|Qt5 launcher option for Phi]]&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd=8080 command switch end of the config file.&lt;br /&gt;
*insert image&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd=8080&lt;br /&gt;
*insert image&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. Select Equipment &amp;gt; Map (opens in browser) or launch a web browser and enter the url http://localhost:8080 and press enter.&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |You can access the new screenshot handler after starting with &amp;lt;br/&amp;gt;&lt;br /&gt;
--httpd{{=}}8080 at http://localhost:8080/screenshot&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It understands some request parameters:&amp;lt;br/&amp;gt;&lt;br /&gt;
type: either png or jpg (guess what this does)&amp;lt;br/&amp;gt;&lt;br /&gt;
window: the name of the window to capture (for those with multi screen &amp;lt;br/&amp;gt;&lt;br /&gt;
setups)&amp;lt;br/&amp;gt;&lt;br /&gt;
stream: provide mjpeg stream&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Examples:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type=png&amp;lt;br/&amp;gt;&lt;br /&gt;
send png instead of jpg (jpg is default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type{{=}}png&amp;amp;window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &amp;lt;br/&amp;gt;&lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
do the same as before, but use default jpg encoding&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |http://localhost:8080/screenshot?window{{=}}WindowA&amp;amp;stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
same as before, but not just send a single image but a motion-jpeg &amp;lt;br/&amp;gt;&lt;br /&gt;
encoded video stream.&amp;lt;br/&amp;gt;&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&amp;lt;br/&amp;gt;&lt;br /&gt;
try ffplay -f mjpeg http://localhost:8080/screenshot/stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY &amp;lt;br/&amp;gt;&lt;br /&gt;
hardcoded to 80.&amp;lt;br/&amp;gt;&lt;br /&gt;
These seem to be a good balance of performance vs. quality.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96046</id>
		<title>Phi</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Phi&amp;diff=96046"/>
		<updated>2016-03-21T18:05:58Z</updated>

		<summary type="html">&lt;p&gt;Jaxsin: moved to background section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Early-Phi-screen shot.PNG|thumb|right|Early Phi screenshot]]&lt;br /&gt;
&lt;br /&gt;
== Phi - 'map in browser' ==&lt;br /&gt;
&lt;br /&gt;
'''Phi''' is an HTML5/JavaScript/CSS based multi-platform user interface and instructor station. The implementation uses some state-of-the-art JavaScript libraries, most notably jQuery, knockoutjs and requirejs (files included for offline usage). Phi is capable of being run on any device that has a web browser or web app's like Apple's iPad without the browser decorations. See [[Phi#Usage | Usage]] section below for further details.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
While working on the new radio/atis implementation, I rediscovered the internal httpd (aka web-server) to browse the property tree. It's much easier to have multiple browser windows open and point to various locations in the property tree than to reopen the internal property browser and navigate to the locations after each sim restart. After a while, I got disappointed by the functionality, look, and feel of the http property-browser. So I had a look at the code to see if it could be improved. I quickly realized, that the implementation was simple but not scale-able. I looked for alternatives already available on the GPL market. I found Mongoose as a well maintained, feature rich and yet simple implementation of a web server and started to embed that into FlightGear.&lt;br /&gt;
&amp;lt;ref&amp;gt;http://sourceforge.net/p/flightgear/mailman/message/32068663/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably a video is more descriptive, here is a shot of an earlier (incomplete) version: http://youtu.be/sYM7uiWIprc &amp;lt;br/&amp;gt;&lt;br /&gt;
You can see a FlightGear instance on the top right of the big monitor and Firefox on the left showing the EFIS. Both run on the same computer. Below the monitor are an old iPod touch (left) and a Nexus 7 (right), both running the EFIS as a web-app in full screen mode connected over WLAN. The EFIS in the FlightGear window is based on Canvas/Nasal. The other EFISes are 100% Nasal free, just HTML/SVG/CSS/JavaScript&lt;br /&gt;
&amp;lt;ref&amp;gt;http://sourceforge.net/p/flightgear/mailman/message/32840980/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FI = Flight Instructor (you sure know that), or FlightGear Interface. In Deutsch (my native language) the spoken FI sounds like the Greek letter &lt;br /&gt;
Phi. And I like the uppercase letter of Phi for it's symmetry. It's vertical bar reminds me of the projector screen in a simulator, watched &lt;br /&gt;
from both sides: the trainer and the trainee. For the less philosophical meanings of Phi, check out http://en.wikipedia.org/wiki/Phi and pick the &lt;br /&gt;
one that suits best ;-)&lt;br /&gt;
&amp;lt;ref&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
==== Qt5 Launcher ====&lt;br /&gt;
To use Phi you need to start the internal httpd server before FlightGear is started. The easiest way to do this is using the built-in Qt5 launcher and add the following line to '''Settings &amp;gt; Additional options'''.&lt;br /&gt;
[[File:Phi launcher option.PNG|thumb|Qt5 launcher option for Phi]]&lt;br /&gt;
==== FFGo ====&lt;br /&gt;
Add the --httpd=8080 command switch end of the config file.&lt;br /&gt;
*insert image&lt;br /&gt;
==== Console ====&lt;br /&gt;
run fgfs with the command line switch --httpd=8080&lt;br /&gt;
*insert image&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is up and running we can access the Phi user interface from the main menu in FlightGear. Select Equipment &amp;gt; Map (opens in browser) or launch a web browser and enter the url http://localhost:8080 and press enter.&lt;br /&gt;
&lt;br /&gt;
== Screen Shots ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |You can access the new screenshot handler after starting with &amp;lt;br/&amp;gt;&lt;br /&gt;
--httpd{{=}}8080 at http://localhost:8080/screenshot&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It understands some request parameters:&amp;lt;br/&amp;gt;&lt;br /&gt;
type: either png or jpg (guess what this does)&amp;lt;br/&amp;gt;&lt;br /&gt;
window: the name of the window to capture (for those with multi screen &amp;lt;br/&amp;gt;&lt;br /&gt;
setups)&amp;lt;br/&amp;gt;&lt;br /&gt;
stream: provide mjpeg stream&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Examples:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type=png&amp;lt;br/&amp;gt;&lt;br /&gt;
send png instead of jpg (jpg is default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?type{{=}}png&amp;amp;window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
send a png screenshot from the window named &amp;quot;WindowA&amp;quot; as defined under &amp;lt;br/&amp;gt;&lt;br /&gt;
rendering/camera-group/window/name in your screen configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://localhost:8080/screenshot?window{{=}}WindowA&amp;lt;br/&amp;gt;&lt;br /&gt;
do the same as before, but use default jpg encoding&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |http://localhost:8080/screenshot?window{{=}}WindowA&amp;amp;stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
same as before, but not just send a single image but a motion-jpeg &amp;lt;br/&amp;gt;&lt;br /&gt;
encoded video stream.&amp;lt;br/&amp;gt;&lt;br /&gt;
Can be used by ffmpeg to directly encode various video formats.&amp;lt;br/&amp;gt;&lt;br /&gt;
try ffplay -f mjpeg http://localhost:8080/screenshot/stream{{=}}y&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Compression level for PNG is hardcoded to 9 (highest) and JPEG_QUALITY &amp;lt;br/&amp;gt;&lt;br /&gt;
hardcoded to 80.&amp;lt;br/&amp;gt;&lt;br /&gt;
These seem to be a good balance of performance vs. quality.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32889510/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Heads up: --jpg-httpd is gone&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-10-02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Web-based EFIS ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I have made some improvement and created a basic JavaScript API.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
First victim of my work is the SenecaII.&amp;lt;br/&amp;gt;&lt;br /&gt;
Pull latest fgdata and run fgfs --aircraft{{=}}SenecaII --httpd{{=}}8080&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Select &amp;quot;Panel in a browser&amp;quot; from the &amp;quot;Seneca&amp;quot; menuentry in the menubar.&amp;lt;br/&amp;gt;&lt;br /&gt;
A browser should pop up, showing the Airspeed indicator after a short &amp;lt;br/&amp;gt;&lt;br /&gt;
loading-delay.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32846474/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-18&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |for a long time, I have been dreaming of a cross-platform, simple &amp;lt;br/&amp;gt;&lt;br /&gt;
solution to render 2d panels on a remote device.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I have just succeeded with my first partial implementation of a EFIS PFD &amp;lt;br/&amp;gt;&lt;br /&gt;
rendered in a web browser using nothing but existing web standards and a &amp;lt;br/&amp;gt;&lt;br /&gt;
running FlightGear instance having the internal web server enabled.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The EFIS is created from scalable vector graphics (svg), is animated by &amp;lt;br/&amp;gt;&lt;br /&gt;
JavaScript and driven by properties from FlightGear over websockets.&amp;lt;br/&amp;gt;&lt;br /&gt;
The same svg files that are used for the FlightGear internal canvas &amp;lt;br/&amp;gt;&lt;br /&gt;
based instruments can also be used for the browser based display, so &amp;lt;br/&amp;gt;&lt;br /&gt;
both instruments (that of the 3d model and that in your browser) look &amp;lt;br/&amp;gt;&lt;br /&gt;
100% alike. Websocket properties are exchanged at frame rate making &amp;lt;br/&amp;gt;&lt;br /&gt;
animations as smooth as they can get. Because it uses SVG, instruments &amp;lt;br/&amp;gt;&lt;br /&gt;
are always rendered at the highest available resolution of the device &amp;lt;br/&amp;gt;&lt;br /&gt;
without scaling artefacts.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The most exciting part is, the web based instrument runs on any modern &amp;lt;br/&amp;gt;&lt;br /&gt;
platform without the need to install any spooky software. See a &amp;lt;br/&amp;gt;&lt;br /&gt;
screenshot of the EFIS rendered on my iPad. &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/uo6hu7jeubuy0vn/EFIS.png?dl{{=}}0&amp;lt;br/&amp;gt;&lt;br /&gt;
It also runs flawless on my Android phone and tablet and of course in a &amp;lt;br/&amp;gt;&lt;br /&gt;
standard browser (Firefox and Chrome tested). On mobile OSes, you can &amp;lt;br/&amp;gt;&lt;br /&gt;
add it to your home screen, making this a full-screen web-app to get rid &amp;lt;br/&amp;gt;&lt;br /&gt;
of the browser navigation and toolbar (like shown in the screenshot).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is not much required on the FlightGear side - recent git has all &amp;lt;br/&amp;gt;&lt;br /&gt;
it needs. Workload for FlightGear is neglible, for the current EFIS, on &amp;lt;br/&amp;gt;&lt;br /&gt;
page load a few hundret kilobyte of static files are transmitted and &amp;lt;br/&amp;gt;&lt;br /&gt;
once fully loaded, 10 (ten!) properties are observed and transmitted on &amp;lt;br/&amp;gt;&lt;br /&gt;
change. All the rendering takes place on the web browser's device.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |If you want to give it a try, make sure you have fg and fgdata from &amp;lt;br/&amp;gt;&lt;br /&gt;
latest git HEAD.&amp;lt;br/&amp;gt;&lt;br /&gt;
Clone my ZivkoEdge repository from &amp;lt;br/&amp;gt;&lt;br /&gt;
git@...:t3r-fg-ac/zivkoedge.git, add the folder to your &amp;lt;br/&amp;gt;&lt;br /&gt;
--fg-aircraft option, fire up the Edge and pick &amp;quot;EFIS&amp;quot; from the &amp;quot;EDGE&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
menu item.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As always: feedback is welcome.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32840486/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== EFIS via SVG ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I use Inkscape to draw the svgs. The elements to animate are selected by &amp;lt;br/&amp;gt;&lt;br /&gt;
their id attribute, so you have to set a reasonabl name for those.&amp;lt;br/&amp;gt;&lt;br /&gt;
To get proper scaling of the svg, you need to set the viewBox, width, &amp;lt;br/&amp;gt;&lt;br /&gt;
height and preserveAspectRation of the &amp;lt;svg&amp;gt; element.&amp;lt;br/&amp;gt;&lt;br /&gt;
It should be also possible to draw svg on the fly e.g. from svg.js and &amp;lt;br/&amp;gt;&lt;br /&gt;
animate this, too. I havn't looked into this so far.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The port number for the httpd is set from the commandline, use whatever &amp;lt;br/&amp;gt;&lt;br /&gt;
suits your needs. No other ports are involved or hardcoded, everything &amp;lt;br/&amp;gt;&lt;br /&gt;
runs over http protocol at that port, the websocket included. The &amp;lt;br/&amp;gt;&lt;br /&gt;
individual services are distinguished by their url (/props/, /json/, &amp;lt;br/&amp;gt;&lt;br /&gt;
/screenshot/, PropertyListener etc). Again, everything runs over port &amp;lt;br/&amp;gt;&lt;br /&gt;
8080 (or whatever you told http to bind to).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Personally, I like to stick with fgdata as the repo. Master branch is a &amp;lt;br/&amp;gt;&lt;br /&gt;
good enough playground. During the development cycle things don't &amp;lt;br/&amp;gt;&lt;br /&gt;
necessarily have to be stable to get checked in there, if they are new &amp;lt;br/&amp;gt;&lt;br /&gt;
and mostly unused parts and do not get sucked into the running fgfs &amp;lt;br/&amp;gt;&lt;br /&gt;
instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
I am planning to move the .js library files out of the aircraft &amp;lt;br/&amp;gt;&lt;br /&gt;
directory into common fgdata once they seem to be in someway usable.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to contribute to that area, I'm happy to handle merge &amp;lt;br/&amp;gt;&lt;br /&gt;
requests or appyl diffs.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/32854893/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Goodbye fgpanel - hello fgpanel 2.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Torsten Dreyer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-09-22&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jaxsin</name></author>
	</entry>
</feed>