<?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=Drdavid</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=Drdavid"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Drdavid"/>
	<updated>2026-04-05T04:16:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Canvas_ND_framework&amp;diff=69555</id>
		<title>Canvas ND framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Canvas_ND_framework&amp;diff=69555"/>
		<updated>2014-04-08T06:21:02Z</updated>

		<summary type="html">&lt;p&gt;Drdavid: /* Adding the navigation display to your aircraft */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Non-stable|version=3.2|progress=60}}&lt;br /&gt;
&lt;br /&gt;
[[File:Canvasready.png|right]]&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image        = Navigation display MAP mode.png&lt;br /&gt;
|alt          = MAP mode with a [[Standard Instrument Departure|SID]] from Eindhoven Airport&lt;br /&gt;
|name         = NavDisplay&lt;br /&gt;
|started      = 11/2013 &lt;br /&gt;
|description  = [[Canvas]]/[[Nasal]] driven NDs&lt;br /&gt;
|status       = Under active development as of 12/2013&lt;br /&gt;
|maintainers  = Gijs (B747), Hyde(B777), Soitanen(B737NG), (Hooray, Philosopher &amp;amp; D-LEON via [[MapStructure]])&lt;br /&gt;
|developers   = [[User:Gijs]] (since 11/2013)&lt;br /&gt;
}}&lt;br /&gt;
The '''navigation display''' ('''ND''') is a display in a glass cockpit, providing information about an aircraft's lateral situation. As of late 2013, a new ND ([[Navigation display]] being the old) is in development for [[FlightGear]] using the new [[MapStructure]] back-end for charting purposes, and SVG symbols animated via Nasal functions for any non-mapping aspects. Thanks to [[Canvas]], much more complex and sophisticated graphics are possible now, without having to know any C++, and without having to rebuild FlightGear from source. Anybody able to run FlightGear and a text editor, can now easily use and extend the ND framework.&lt;br /&gt;
&lt;br /&gt;
It can be found on [[Git]] in fgdata/master (2.99). The main source is located in &amp;lt;tt&amp;gt;{{Git link|gitorious|fg/fgdata|master|Nasal/canvas/map/navdisplay.mfd|pre=[[$FG_ROOT]]/}}&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Adding the navigation display to your aircraft ==&lt;br /&gt;
The new ND is available in FlightGear 3.0 as of February 2014. &lt;br /&gt;
&lt;br /&gt;
Note that the latest ND code is currently only available in Git and not in the latest stable release. &lt;br /&gt;
# Add a surface object to your 3D model and apply a place holder texture to it. You can refer to the 747-400 and 777 for examples.&lt;br /&gt;
# Copy the ND.nas file of the Boeing 777 into your own aircraft directory (&amp;lt;tt&amp;gt;{{Git link|gitorious|fg/fgdata|master|Aircraft/777/Models/Instruments/ND/ND.nas|pre=[[$FG_ROOT]]/}}&amp;lt;/tt&amp;gt;). &lt;br /&gt;
# Add the file to the &amp;lt;nasal&amp;gt; block in your aircraft's [[Aircraft-set.xml|-set.xml]] file.&lt;br /&gt;
# In order to customize the ND for your specific aircraft, change a few options in your ND.nas file:&lt;br /&gt;
## the node behind &amp;lt;code&amp;gt;addPlacement&amp;lt;/code&amp;gt; is the name of the object in your 3D model. For multiple independent NDs, each ND should have its own object (and thus placement node). The 777 for example has a &amp;quot;ndScreenL&amp;quot; and a &amp;quot;ndScreenR&amp;quot;.&lt;br /&gt;
## Rename the properties in the &amp;quot;myCockpit_switches&amp;quot; hash at the top of the ND.nas file to match your own properties (range selector, mode selector etc.), see {{Git link|gitorious|fg/fgdata|master|Aircraft/747-400/Models/Cockpit/Instruments/ND/ND.nas|3|22|pre=[[$FG_ROOT]]/}} You're advised to use the defaults (and change other systems of your aircraft accordingly). For an overview of switches, see [[#Cockpit switches]].&lt;br /&gt;
# Add knobs/buttons to the 3D model of your cockpit to control the various options of the ND. See &amp;lt;tt&amp;gt;{{Git link|gitorious|fg/fgdata|master|Aircraft/777/Models/Instruments/EFIS/efis-ctl1.xml|pre=[[$FG_ROOT]]/}}&amp;lt;/tt&amp;gt; for an example.&lt;br /&gt;
# Add a binding to your screen(s) to open the ND in a popup dialog. See &amp;lt;tt&amp;gt;{{Git link|gitorious|fg/fgdata|master|Aircraft/777/Models/Instruments/ND/ND_L.xml|pre=[[$FG_ROOT]]/}}&amp;lt;/tt&amp;gt; for an example.&lt;br /&gt;
&lt;br /&gt;
That's the only thing you need to do right now. future changes will be in navdisplay.mfd and will be automatically available to you once they're committed/merged, no changes needed in your ND.nas at all, except for additional switches/buttons that may be created, and which would obviously need to be mapped to your cockpit hot spots.&lt;br /&gt;
&lt;br /&gt;
If you are facing problems with the steps outlined above, please get in touch via the article's talk page or the forum, so that the instructions can be improved accordingly. Thank you!&lt;br /&gt;
&lt;br /&gt;
{{Note|The following section is currently work-in-progress, it is being written by 5H1N0B1 and drdavid, please get in touch to help reviewing/improving things.}}&lt;br /&gt;
More detailed instruction. See if it could help. &lt;br /&gt;
ND integration: How it was done on the Mirage 2000:&lt;br /&gt;
The integration is simple:&lt;br /&gt;
&lt;br /&gt;
0) Have an updated version of FlightGear (V. 3.0+).&lt;br /&gt;
&lt;br /&gt;
1) Set up the 3D model in this way: &lt;br /&gt;
&lt;br /&gt;
 To create a 3D MFD -&amp;gt;&lt;br /&gt;
   - a) Select a 3D Border (border of the screen, with screws, etc.)&lt;br /&gt;
   - b) Need to have a 3D Button/switch, molette, or turnable knob&lt;br /&gt;
   - c) A 3D Screen object, with:&lt;br /&gt;
     - correct dimensions&lt;br /&gt;
     - Single texture, -&amp;gt; with correct dimensions&lt;br /&gt;
     - Correct dimension of the UVmap&lt;br /&gt;
&lt;br /&gt;
2) Copy and paste the ND.nas file to the appropriate folder (In the Mirage 2000 this was the &amp;quot;Center-mfd&amp;quot; folder).&lt;br /&gt;
   2.1) Add the ND.nas pathway to your base .xml file in the Nasal block.&lt;br /&gt;
&lt;br /&gt;
3) Edit ND.nas : &lt;br /&gt;
  -a) Rename the screen to match the object in 1)c) if needed.&lt;br /&gt;
  -b) If installing a single MFD, you do not need another object, so suppress the line (when it's calling the object itself)&lt;br /&gt;
  -c) Keep the property's name -&amp;gt; it's ok. You just need to input it with the .xml button in 1)b)&lt;br /&gt;
&lt;br /&gt;
4) Code the xml itself.&lt;br /&gt;
&lt;br /&gt;
Really simple, it's just playing with properties. For example, see this for the airport property: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--######################## Airports ############################--&amp;gt;&lt;br /&gt;
  &amp;lt;animation&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;pick&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;object-name&amp;gt;bt-h1&amp;lt;/object-name&amp;gt;&lt;br /&gt;
    &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
        &amp;lt;button&amp;gt;0&amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;binding&amp;gt;&lt;br /&gt;
         &amp;lt;command&amp;gt;property-toggle&amp;lt;/command&amp;gt;&lt;br /&gt;
         &amp;lt;property&amp;gt;/instrumentation/efis/inputs/arpt&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
  &amp;lt;/animation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or here again for the range selection:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;animation&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;pick&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;object-name&amp;gt;trim1&amp;lt;/object-name&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;button&amp;gt;4&amp;lt;/button&amp;gt;&lt;br /&gt;
      &amp;lt;!--  scroll up --&amp;gt;&lt;br /&gt;
      &amp;lt;repeatable&amp;gt;false&amp;lt;/repeatable&amp;gt;   &lt;br /&gt;
      &amp;lt;binding&amp;gt;&lt;br /&gt;
                &amp;lt;command&amp;gt;property-cycle&amp;lt;/command&amp;gt;&lt;br /&gt;
                &amp;lt;property&amp;gt;/instrumentation/efis/inputs/range-nm&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;10&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;20&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;40&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;80&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;160&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;320&amp;lt;/value&amp;gt;&lt;br /&gt;
      &amp;lt;/binding&amp;gt;   &lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
  &amp;lt;/animation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;animation&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;pick&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;object-name&amp;gt;trim1&amp;lt;/object-name&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;button&amp;gt;3&amp;lt;/button&amp;gt;&lt;br /&gt;
      &amp;lt;!--  scroll up --&amp;gt;&lt;br /&gt;
      &amp;lt;repeatable&amp;gt;false&amp;lt;/repeatable&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
      &amp;lt;binding&amp;gt;&lt;br /&gt;
                &amp;lt;command&amp;gt;property-cycle&amp;lt;/command&amp;gt;&lt;br /&gt;
                &amp;lt;property&amp;gt;/instrumentation/efis/inputs/range-nm&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;320&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;160&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;80&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;40&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;20&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;10&amp;lt;/value&amp;gt;              &lt;br /&gt;
      &amp;lt;/binding&amp;gt;   &lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
  &amp;lt;/animation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5) Then you can optionally add this: &lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;animation&amp;gt;&lt;br /&gt;
   &amp;lt;type&amp;gt;pick&amp;lt;/type&amp;gt;&lt;br /&gt;
   &amp;lt;object-name&amp;gt;blackbkd&amp;lt;/object-name&amp;gt;&lt;br /&gt;
   &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;button&amp;gt;0&amp;lt;/button&amp;gt;&lt;br /&gt;
      &amp;lt;repeatable&amp;gt;false&amp;lt;/repeatable&amp;gt;&lt;br /&gt;
      &amp;lt;binding&amp;gt;&lt;br /&gt;
         &amp;lt;command&amp;gt;nasal&amp;lt;/command&amp;gt;&lt;br /&gt;
         &amp;lt;script&amp;gt;mirage2000.showNd();&amp;lt;/script&amp;gt;&lt;br /&gt;
      &amp;lt;/binding&amp;gt;&lt;br /&gt;
   &amp;lt;/action&amp;gt;&lt;br /&gt;
  &amp;lt;/animation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Where 'blackbkd' is the screen 1)c). This last option allows you to open a dialog box with what the actual canvas should display in your 1)c) screen. This is very useful to check all the different steps when something isn't working well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Normally following these steps, you should have a working MFD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cockpit switches ===&lt;br /&gt;
{{Note|The default property is '''relative''' to the root location of your ND, it is NOT an absolute path. Boolean values (true/false) can also be just 1/0. The list of switches below is correct for FG 3.0 - future versions may support additional switches. In the future, we're also going to make the ND style-able this way, so that colors, fonts, size (LOD) and symbols can be customized easily via ND.nas. FlightGear 3.1 introduces an optional hash argument called '''options''' which is a hash that supports layer-specific options (more details to follow) }}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Switch !! Description !! Default property !! Accepted values !! new in 3.1+&lt;br /&gt;
|-&lt;br /&gt;
| toggle_airports || Display airports on the map || /inputs/arpt || true, false&lt;br /&gt;
|-&lt;br /&gt;
| toggle_centered || Center ND modes || /inputs/nd-centered || true, false&lt;br /&gt;
|-&lt;br /&gt;
| toggle_data || Display way point data on the map || /inputs/data || true, false&lt;br /&gt;
|-&lt;br /&gt;
| toggle_display_mode || Change display mode || /mfd/display-mode || APP, MAP, PLAN, VOR&lt;br /&gt;
|-&lt;br /&gt;
| toggle_display_type || Change display type || /mfd/display-type || CRT, LCD&lt;br /&gt;
|-&lt;br /&gt;
| toggle_position || Display position data on the map (currently unused) || /inputs/pos || true, false&lt;br /&gt;
|-&lt;br /&gt;
| toggle_range || Range of the maps in nautical miles || /inputs/range-nm || Any positive number&lt;br /&gt;
|-&lt;br /&gt;
| toggle_stations || Show/hide stations (VOR/DME/NDB) || /inputs/sta || true/false || options:{ radios:[0,1] } (WIP)&lt;br /&gt;
|-&lt;br /&gt;
| toggle_terrain || Terrain radar (currently unused) || /inputs/terr || true, false&lt;br /&gt;
|-&lt;br /&gt;
| toggle_track_heading || toggle track/heading mode (new in 3.1+)|| ??? || 1/0 || &lt;br /&gt;
|-&lt;br /&gt;
| toggle_traffic || Display [[Traffic alert and collision avoidance system|TCAS]] data || /inputs/tfc || true, false&lt;br /&gt;
|-&lt;br /&gt;
| toggle_true_north || Toggle true or magnetic north || /mfd/true-north || true, false&lt;br /&gt;
|-&lt;br /&gt;
| toggle_waypoints || Display way points (fixes) on the map || /inputs/wpt || true, false&lt;br /&gt;
|-&lt;br /&gt;
| toggle_weather || Weather radar || /inputs/wxr || true, false&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Aircraft Support ==&lt;br /&gt;
For the framework to  become sufficiently generalized and aircraft-agnostic, we need many different aircraft to adopt it and aircraft developers to provide feedback regarding missing features. &lt;br /&gt;
We are looking for people interested in integrating the new system, so that it can be better developed with different requirements in mind.&lt;br /&gt;
&lt;br /&gt;
The 747 and 777 are the primary reference examples for now.&lt;br /&gt;
The following people/aircraft are currently in the process of adopting the new NavDisplay (please add any related efforts here):&lt;br /&gt;
&lt;br /&gt;
* 01/2014: Gijs  (747-400) {{Progressbar|100}}&lt;br /&gt;
* 01/2014: Hyde (777-200) {{Progressbar|100}}&lt;br /&gt;
* 02/2014: mueko (A320) {{Progressbar|90}} [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=22045&amp;amp;p=200427#p200422]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* 02/2014: D-MKF1 (707) {{Progressbar|10}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* 02/2014: Soitanen (737-300) {{Progressbar|80}} [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=21509&amp;amp;start=15#p200304]&lt;br /&gt;
* 02/2014: Sascha (A310) {{Progressbar|10}}&lt;br /&gt;
* 02/2014: drdavid (DC10) {{Progressbar|30}}&lt;br /&gt;
* 02/2014: 5H1N0B1 (m2000-5) {{Progressbar|100}}&lt;br /&gt;
&lt;br /&gt;
If you are finding yourself having problems integrating the framework, please refer to already integrated aircraft as reference/example, or get in touch with their  maintainers - ideally, via the forum, so that everybody can contribute and benefit.&lt;br /&gt;
&lt;br /&gt;
Note that this will initially just give you a Boeing-centric ND, because it is currently being developed by the 747/777 maintainers primarily - please use the issue tracker to file feature requests for missing features. Over time, the framework will grow and become more flexible,so that also specifics of non-Boeing aircraft can be properly emulated. But obviously this will take a while. We invite aircraft developers to help extend and refine the framework accordingly.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=packed widths=230px heights=230px&amp;gt;&lt;br /&gt;
Navigation display MAP mode.png|MAP mode&lt;br /&gt;
Navigation display centered MAP mode.png|Centered MAP mode&lt;br /&gt;
Navigation display PLAN mode.png|PLAN mode&lt;br /&gt;
NavDisplay-GUIFrontend.png|NavDisplay/MapStructure testbed&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding new features ==&lt;br /&gt;
{{Note|Please get in touch with [[User:Gijs]] before touching navdisplay.mfd&lt;br /&gt;
If you are primarily interested in porting/adding new '''mapping''' layers (such as e.g. waypoints, route, weather etc), please see the [[MapStructure]] article for details. &lt;br /&gt;
Otherwise, this section is focused on dealing with non-mapping aspects, i.e. ND-specific SVG symbols and animating them via properties and calculations. Typically, a new symbol will require 10-20 lines of code added to navdisplay.mfd - it will typically take 5-10 minutes to add a new animated symbol to the ND.}}&lt;br /&gt;
If you want to add new features to the navdisplay.mfd code, you need to open that file and map an SVG element to a callback routine - that's how everything is working currently.&lt;br /&gt;
&lt;br /&gt;
There's a &amp;quot;configuration hash&amp;quot; called &amp;quot;NDStyles&amp;quot; at the top of the file. Each aircraft can have its own entry in NDStyles, such as NDStyles[&amp;quot;B747-400&amp;quot;] or NavDisplay[&amp;quot;777&amp;quot;]. Then, all the required canvas callbacks are listed there, i.e. the font mapper etc.&lt;br /&gt;
&lt;br /&gt;
There's also an entry for a custom SVG filename. However, we encourage people to get in touch with Gijs and Hyde to help coordinate all ND development a little - so that a common (and shared) SVG file can be used, this is already the case for the B744 and B777 - we're hoping to get other aircraft developers involved, to help generalize the SVG file, instead of having dozens of different files and symbols. Most features should be identical or at least very similar. Which is why it's a good idea to get in touch with other people working on the ND code.&lt;br /&gt;
&lt;br /&gt;
Lines 52-131 set up existing layers, which are now shared with the GUI code - so that is where new layers are added.&lt;br /&gt;
Aircraft specific SVG elements are added at the end, after line 132&lt;br /&gt;
&lt;br /&gt;
For now, we suggest to directly use the 747-400 ND - but the framework is now prepared to easily style &amp;amp; customize it for different aircraft, we will probably add a tutorial to the wiki to explain how things are hanging together there. The constructor and init methods may still need some work to generalize things there, because they are basically still the original code.&lt;br /&gt;
&lt;br /&gt;
So to replace the 747 ND and customize it, these are the steps:&lt;br /&gt;
&lt;br /&gt;
* add a new entry to the NDStyles hash, for example &amp;quot;777-200&amp;quot;&lt;br /&gt;
* you can simply copy the configuration stuff from the 747 to get started&lt;br /&gt;
* start customizing things there&lt;br /&gt;
* open the SVG file in inkscape and change it as required, save it &lt;br /&gt;
* change the SVG filename in your NDStyles[&amp;quot;777-200&amp;quot;] hash entry to  match your own file name&lt;br /&gt;
* provide animation callbacks for any 777 specific elements&lt;br /&gt;
* open your own copy of ND.nas&lt;br /&gt;
* change the constructor call .new() to specify the name of your new NDStyles entry&lt;br /&gt;
* by default, this is 747-400 for the time being, for example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var NDCpt = ND.new(&amp;quot;instrumentation/efis&amp;quot;, myCockpit_switches, &amp;quot;777-200&amp;quot; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the &amp;quot;777-200&amp;quot; part needs to match the identifier used in the NDStyles hash.&lt;br /&gt;
&lt;br /&gt;
To get started, just copy the whole 747-400 section in NDStyles and rename it to match your needs. Once that is working (getting a 747-400 ND via the 777-200 identifier), you can simply replace the SVG file name and add your own update handlers to incrementally come up with your own ND.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
=== mapping vs. SVG animation ===&lt;br /&gt;
&lt;br /&gt;
It would be really nice to have two sides to navdisplay.mfd: a map (your/my area) and svg ui (Gijs' and aircraft devs' responsibility) 0.o.&lt;br /&gt;
&lt;br /&gt;
:  am all for supporting the two use-cases you mentioned - then again, the old code is fragile enough, so I wouldn't add to it - the main thing the old code was all about was establishing the MVC separation so that draw routines can be reused - and that's basically done, so no need to keep the old cruft around ...&lt;br /&gt;
&lt;br /&gt;
: Regarding the navdisplay stuff itself - well, it's pretty much the original code still, i.e. the design is only just evolving - algorithmically, it's still not very optimized - MapStructure only helps with mapping aspects obviously.&lt;br /&gt;
&lt;br /&gt;
: I was going to suggest the &amp;quot;SVG/element animation&amp;quot; separation too - but I think Gijs etc already need to handle quite a bit of re-thinking, because things are no longer as straightforward. In the long run, it will probably happen over time - especially once other things are generalized, especially for generic PFD/EICAS/CDU/EFB functionality - these would all benefit from a corresponding &amp;quot;symbol animation&amp;quot; abstraction eventually like TheTom mentioned on the forum: PFD: A common framework in the background&lt;br /&gt;
&lt;br /&gt;
: Honestly, it would have been great to have such a framework to implement MapStructure on top of it - but obviously, it's a chicken/egg issue :-)&lt;br /&gt;
&lt;br /&gt;
: Currently, the main danger here is that people are going to start using copy &amp;amp; paste again to adopt things like Gijs' PFD, like mentioned by Zakalawe: if someone provides a 'system' I'll use it but I'm not interested in writing it myself&lt;br /&gt;
&lt;br /&gt;
: So the real question is if people can be convinced to team up and come up with a generic and reusable design, or follow the original PFD/ND approach instead - interestingly, most of TheTom's work in this area (MCDU/EICAS) seems pretty reusable, also outside aircraft, i.e. usable via the GUI.&lt;br /&gt;
&lt;br /&gt;
After having looked at navdisplay.mfd, I think we only need to separate a few things using io.include() to make this happen automatically over time - all the 747/Boeing-specific stuff would be moved into &amp;quot;config&amp;quot; hashes and factored out of navdisplay.mfd - into something like &amp;quot;boeing747.nd&amp;quot; that would leave us with very little code remaining in navdisplay - basically a single class and a few methods with foreach loops.&lt;br /&gt;
&lt;br /&gt;
So we would end up with a layered design like this:&lt;br /&gt;
&lt;br /&gt;
* boeing.nd (config hashes via io.include)&lt;br /&gt;
* navdisplay (down-stripped code, aircraft-agnostic)&lt;br /&gt;
* MapStructure (needs no changes)&lt;br /&gt;
* Symbol/Animation Layer (shared with PFD, ND, CDU, EFB, would be developed/grown over time), some animations currently implemented manually in the PFD/ND code:&lt;br /&gt;
** rotate (heading,bearing, azimuth)&lt;br /&gt;
** scale&lt;br /&gt;
** colorize&lt;br /&gt;
** update text labels (font size, font type, font color)&lt;br /&gt;
* canvas APIs (as is)&lt;br /&gt;
* canvas subsystem (as is)&lt;br /&gt;
* OSG / Shiva (as is)&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
* use switches hash to procedurally create a GUI dialog with buttons for each toggle_action (TFC,CTR,WXR etc) {{Not done}}&lt;br /&gt;
* make sure that the frameworks with properly with time-warp, sim-rate speed-up and replay {{Not done}}&lt;br /&gt;
* remove (old) disabled layers &lt;br /&gt;
* make the timer update interval configurable via constructor {{Not done}}&lt;br /&gt;
* consider adding hooks to generalize those huge conditionals in update() some more {{Not done}}&lt;br /&gt;
* use foreach() to hide()/show() or setVisible() groups of symbols {{Not done}}&lt;br /&gt;
* make this more aircraft agnostic by getting  rid of 747/Boeing specific assumptions {{Not done}}&lt;br /&gt;
* unify switch/case|default handling (again, huge conditionals in there) {{Not done}}&lt;br /&gt;
* on_update() helper should probably support global listeners and timers, too - i.e. via a hash spec ? {{Not done}}&lt;br /&gt;
* the whole symbol lookup needs to cleaned up (getElementById etc) {{Not done}}&lt;br /&gt;
* introduce a common &amp;quot;compute&amp;quot; field in the update/predicate hash and make its results available to is_true/false etc {{Not done}}&lt;br /&gt;
* use io.include to include boeing specific stuff{{Not done}}&lt;br /&gt;
* NDSoruceDriver should be generalized and combined with MapStructure's aircraftpos.controller {{Not done}}&lt;br /&gt;
* the radio/autopilot listeners need to be set up in the lcontroller file, they're just empty stubs for now {{Not done}}&lt;br /&gt;
* there are 3 foreach loops in newMFD() setting up symbols currently-we only need ONE: loop 2+3 should be removed and use the loop #1 method {{Not done}}  &lt;br /&gt;
* clean up the ctor and generalize the newMFD() method {{Not done}}&lt;br /&gt;
* move stuff out of the update() method into the aircraft-specific configuration hash {{Not done}}&lt;br /&gt;
* generalize/extend on_update() method to support other (global) properties and/or listeners/timers to run predicates {{Not done}}&lt;br /&gt;
* identify opportunities for improving the framework {{Not done}}&lt;br /&gt;
* support multiple routes (WPT/RTE), as per the [[Nasal Flightplan]] API (Hooray) {{Not done}}&lt;br /&gt;
* move the config hash out of the navdisplay.mfd file and use io.include instead {{Not done}}&lt;br /&gt;
* document SVG symbols currently assumed to be available in the ctor {{Not done}}&lt;br /&gt;
* consider using some of the SGCondition/StateMachine stuff in SG {{Not done}}&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
== Feature Requests ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;br /&gt;
[[Category:Canvas]]&lt;/div&gt;</summary>
		<author><name>Drdavid</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_January_2014&amp;diff=67106</id>
		<title>FlightGear Newsletter January 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_January_2014&amp;diff=67106"/>
		<updated>2014-02-02T07:34:42Z</updated>

		<summary type="html">&lt;p&gt;Drdavid: /* DC-10-30 Getting a Flightdeck Refit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{newsletter}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
&lt;br /&gt;
''We would like to emphasize that the monthly newsletter can not live without the contributions of FlightGear users and developers. Everyone with a wiki account (free to register) can edit the newsletter and every contribution is welcome. So if you know about any FlightGear related news or projects such as for example updated scenery or aircraft, please do feel invited to add such news to the newsletter. Core developers are encouraged to add news about their latest work to the newsletter's development section and [[Next Changelog|the changelog of the upcoming release]]. At the end of each month, it's generally a good idea to get in touch with other contributors to ask them to add news about their contributions to the newsletter.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
Note to all contributors: Please also copy your newsletter additions to the changelog for the upcoming release: [[Next Changelog]].&lt;br /&gt;
&lt;br /&gt;
=== Soaring instrumentation SDK ===&lt;br /&gt;
&lt;br /&gt;
Galvedro has started documenting the new soaring instrumentation Software Development Kit (SDK). The soaring instrumentation toolkit is a small library of Nasal objects that you can use for adding specialised soaring gauges to your glider. The library is comprised of several building blocks that you can connect together in different ways in order to get the desired functionality.&lt;br /&gt;
&lt;br /&gt;
In order to use the library, you will need to write a Nasal script that will be loaded together with your aircraft. You do so by referencing this script in the &amp;lt;Nasal&amp;gt; section of your aircraft definition XML file. But don´t be scared, the scripts will be very simple. Lets see some examples.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
io.include(&amp;quot;Aircraft/Generic/soaring-instrumentation-sdk.nas&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
var probe = TotalEnergyProbe.new();&lt;br /&gt;
&lt;br /&gt;
var vario_needle = Dampener.new(&lt;br /&gt;
	input: probe,&lt;br /&gt;
	dampening: 2.7,&lt;br /&gt;
	on_update: update_prop(&amp;quot;instrumentation/vario/te_reading&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
var vario_instrument = Instrument.new(&lt;br /&gt;
	components: [probe, vario_needle],&lt;br /&gt;
	enable: 1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code implements a basic total energy compensated variometer, writing the needle reading to the property &amp;quot;instrumentation/vario/te_reading&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Continue reading at [[Soaring instrumentation sdk]]...&lt;br /&gt;
=== Creating a custom ATC/RADAR Layer in 10 minutes ===&lt;br /&gt;
Philosopher and Hooray have added a new tutorial that demonstrates how to create new [[MapStructure]]-based Canvas displays. People already having some Nasal experience (property tree, OOP), should be able to complete this in less than 15-20 minutes. So, to learn how to create a simple ATC/RADAR display, continue reading at [[MapStructure#Creating_a_custom_ATC.2FRADAR_Layer_in_10_minutes]]...&lt;br /&gt;
&lt;br /&gt;
=== Behind the Scenes of: Nasal Loops ===&lt;br /&gt;
Nasal has several ways to implement an iteration, including repeated events run from listeners or timers.&lt;br /&gt;
A polling loop, run via a timer, is akin to somebody permanently running to a room to check if the lights are on - a listener is like somebody being INSIDE the room SLEEPING and only WAKING up once the lights are turned on.&lt;br /&gt;
The setlistener API is intended to catch rare events, whereas timers are run often, pretty much regardless of external events. Both are triggered by calling a so-called &amp;quot;callback&amp;quot; - which is just a provided function to be called as the event-handler, i.e. the function specifies what is to be done once the event is triggered.&lt;br /&gt;
&lt;br /&gt;
In general, timers are not bad or expensive, because it really depends on what you're doing inside the callback (function) that is called, but some constructs benefit from listeners. &lt;br /&gt;
&lt;br /&gt;
Any callback will be executed within a single frame normally - so a long-running timer will add up to the frame spacing (latency), as will a listener triggered just as often or even multiple times per frame. &lt;br /&gt;
&lt;br /&gt;
It doesn't matter if the code/callback is run inside a timer or a listener - what matters is the complexity of the code that runs. Ultimately, though, some code has to be executed somewhere to get the desired result, but in most cases that code can be simple rather than complex. Listeners are only really preferable over timers when it comes to checking for some condition, because timer-loop-based polling is called &amp;quot;busy-waiting&amp;quot;, i.e. more expensive, see the previous analogy of somebody having to do something regularly in order to perform a check. &lt;br /&gt;
&lt;br /&gt;
A listener on the other hand, is not resource-hungry while it is &amp;quot;waiting&amp;quot;, it's not even &amp;quot;busy&amp;quot; - it's just not doing anything until it is &amp;quot;fired&amp;quot; (analogous to Interrupt Service Routines, i.e. a smoke detector firing an alarm once it detects smoke). However, there are often times where loops make a lot of sense, mainly when lots of values of properties need to be used to drive or evaluate a subsystem or equation.&lt;br /&gt;
&lt;br /&gt;
Continue reading at [[Nasal Loops]]...&lt;br /&gt;
&lt;br /&gt;
=== Atmospheric Light Scattering ===&lt;br /&gt;
&lt;br /&gt;
Since the uv-mapping of dirt runways in the World Scenery 2.0 is sound, Atmospheric Light Scattering is receiving a hires procedural texturing effect of dirt runways. This effect allows to render puddles and thin snowcover on the runway, as well as allowing patches of another material intruding (here patches of grass). Ultimately, this will make the appearance of dirt runways also regionally configurable, with different mixtures of sand, rocks and grass.&lt;br /&gt;
&lt;br /&gt;
[[File:dirt_rwy.jpg|500px|A procedurally textured wet dirt runway]]&lt;br /&gt;
&lt;br /&gt;
=== Using OpenStreetMap Data in FlightGear ===&lt;br /&gt;
In 2013, we've seen quite a bit of progress on procedural scenery generation using OSM data, including buildings &amp;amp; cities (radi, Soitanen/osm2fg), roads, rivers - even railways (vivian) and procedural bridge generation (radi), but also procedural power lines (vanosten). &lt;br /&gt;
&lt;br /&gt;
In other words, there's now some serious -and unprecedented manpower, including quite a few folks who are able to build from source and able to write C++ code. So this deserves being coordinated among all interested parties. And it would clearly make sense not to just expose things to the Canvas system, but to expose the corresponding APIs so that other subsystems and users can access these and use these for the purposes outlined above.&lt;br /&gt;
&lt;br /&gt;
Which is why we have created a summary of the main OSM related efforts we've seen in the last 18  months, continue reading at [[Using OSM Vector Data in FlightGear]]...&lt;br /&gt;
=== Project Rembrandt ===&lt;br /&gt;
A number of Mac users have been reporting issues related to running [[Project Rembrandt]] (deferred rendering/shadows) on Mac OSX with ATI/AMD GPUS, we are now looking for Mac users to provide feedback on running Rembrandt on Mac OSX, required information includes errors and warnings shown during startup/runtime, but also screen shots showing any issues. Please see: [[Project Rembrandt#Mac Issues]].&lt;br /&gt;
&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Getting involved as a programmer ===&lt;br /&gt;
Unfortunately, most of the active FG developers are currently very overstretched in terms of the areas that they have ownership of, which is affecting how much can actually be done.  Fundamentally we need more core devs.&lt;br /&gt;
&lt;br /&gt;
If you are interested in contributing as a core developer, please see [[Howto:Start core development]].&lt;br /&gt;
&lt;br /&gt;
== Release ChangeLog ==&lt;br /&gt;
This section lists changes committed this month that will be available in the next release, these will be copied to the release changelog shortly before a release (for each month), so that we hopefully get a comprehensive list of new features.&lt;br /&gt;
&lt;br /&gt;
== Interview with a contributor (NAME) ==&lt;br /&gt;
''In each edition we have an interview with a contributor. Suggestions for possible questions are available on [[interview questions]], you are invited to come up with new questions and interview ideas obviously! Anyone is free to write an interview (with him-/herself or others) for next month's newsletter! If you'd like to help interview a contributor or get interviewed, please do consider adding yourself to the [[list of interview volunteers]]! To keep this going and less awkward, we are currently trying to come up with the convention that former interviewees become next month's interviewers.''&lt;br /&gt;
&lt;br /&gt;
* How long have you been involved in FlightGear?&lt;br /&gt;
* What are your major interests in FlightGear?&lt;br /&gt;
* What project are you working on right now?&lt;br /&gt;
* What do you plan on doing in the future?&lt;br /&gt;
* Are you happy with the way the FlightGear project is going?&lt;br /&gt;
* What do you enjoy most about developing for FlightGear?&lt;br /&gt;
* Are there any &amp;quot;hidden features&amp;quot; you have worked on in FlightGear that new users may miss?&lt;br /&gt;
* What advice can you give to new developers who want to get started on their first aircraft/new feature/Nasal script?&lt;br /&gt;
&lt;br /&gt;
More questions are being collected here: [[Interview questions]].&lt;br /&gt;
&lt;br /&gt;
Stay tuned for next month's interview, featuring FlightGear contributor XXXXXXXX &lt;br /&gt;
&lt;br /&gt;
== Nasal for newbies ==&lt;br /&gt;
&lt;br /&gt;
== New software tools and projects ==&lt;br /&gt;
&lt;br /&gt;
== FlightGear addons and mods ==&lt;br /&gt;
&lt;br /&gt;
===Bombable add-on updated to Version 4.5b===&lt;br /&gt;
Flightgear add-on Bombable, which turns Flightgear into a full-featured combat flight simulator, was updated to version 4.5b on January 9th.&lt;br /&gt;
&lt;br /&gt;
Highlights of the new version: [[File:A-10 Warthog in Bombable.png|thumb|A-10 Warthogs in an AI Scenario running with the Bombable add-on.]]&lt;br /&gt;
&lt;br /&gt;
* '''Improvements that help with FG 2.12 compatibility''' (particularly FG 2.12's new/improved way of handling AI scenarios)&lt;br /&gt;
*  '''Improved version of the historically accurate Sopwith Camel''' (choose the JSBSim version of the Camel that is included in the package)&lt;br /&gt;
* '''Respawn scenario aircraft, vehicles, and ships either a single clump OR retaining their relative positions and altitudes'''&lt;br /&gt;
* Together with FG's new more flexible scenario system, this means '''you can load Bombable's scenarios instantly and move them to wherever you are in the world instantly'''--making it a lot quicker and more fun to run the Bombable AI scenarios. You're not stuck with doing scenarios in the one place they were originally set up--you can easily move them to anywhere in the world, while retaining the original scenario's general setup (bombers in a formation, fighter flying cover, tanks scattered around hillsides, etc)&lt;br /&gt;
* '''Improvements to AI aircraft realism''', bug fixes.&lt;br /&gt;
&lt;br /&gt;
[http://forum.flightgear.org/viewtopic.php?f=6&amp;amp;t=5742 Read more about Bombable or download the add-on here.]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|PirnWJHZtcg|400}}&lt;br /&gt;
&lt;br /&gt;
This very well explained video made by Jetman shows how to do a short flight mission from San Francisco (KSFO) intercepting an [[A-10 Warthog]] air patrol near Sausalito in a [[F-14_Tomcat]] running in FlightGear Bombable.&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&lt;br /&gt;
==== '''DC-10-30 Getting a Flightdeck Refit''' ====&lt;br /&gt;
&lt;br /&gt;
'''David Waggoner, “DrDavid”'''&lt;br /&gt;
&lt;br /&gt;
[[File:DC-10-30ER_Over_Mt_Everest.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''DC-10-30ER over Mt. Everest'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A New Front Office for a Great Widebody Airliner '''&lt;br /&gt;
&lt;br /&gt;
The DC-10-30 (by Ryan Miller) is getting an updated flightdeck with state of the art glass cockpit avionics.  The purpose of the project is to create a theoretical refit of the aircraft as if Boeing/McDonnell-Douglas had continued to produce the airplane.  The original instrument panel is historically accurate, but as FlightGear has evolved, the advances in avionics technologies have opened up a whole new universe for giving the pilot real-time situational awareness.  It proved too good of a prospect to pass by.&lt;br /&gt;
&lt;br /&gt;
The DC-10-30 makes a great platform for this kind of revision because of its sophisticated flight dynamics, autopilot and it is Rembrandt enabled. Rembrandt provides superior lighting capabilities both outside and inside the aircraft, but not all FG instruments are Rembrandt-compatible.  Therefore, a new avionics package had to be functional in that environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DC-10-30_Flightdeck_Day_Screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''State of the Project'''&lt;br /&gt;
&lt;br /&gt;
Fortunately, the CRJ-700 Family Series (also by Ryan Miller) has a glass cockpit set up for Rembrandt.  The PFD, MFD, EICAS, CDU, Radio Stack, Upper Light Switch Panel, and Side Panels were transferred from the CRJ700 to the DC-10-30.  After much tweaking and trial and error, many, but not all of the CRJ’s screens are functional.  In addition, a set of standby instruments have been added to support the three glass screens.  Note there is cleanup work to be done on the panel—this is a work in development. The choice of instruments and layout are designed to meet my preferences, but that is expected to continue to progress.&lt;br /&gt;
The two screenshots illustrate the great effectiveness of having Rembrandt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DC-10-30_Flightdeck_Night_Screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rembrandt and Now the Canvas-Ready NavDisplay'''&lt;br /&gt;
&lt;br /&gt;
A brilliant opportunity has popped up, in the mean time.  The release of the new Canvas-ready NavDisplay screens, which will be developed by FlightGear over time to match specific aircraft, is now available.  I am in the process of installing the ND in the DC-10’s MFD.  Once a stable MFD is achieved, the aircraft will be uploaded into Git for the FlightGear Community to take a look at.  I have a long TODO list for other improvements to the model, and will welcome other collaborators—I suspect you might have some ideas I haven’t even thought of that would be great to include.  There is also the opportunity to create more liveries for the airplane.&lt;br /&gt;
&lt;br /&gt;
==== McDonnell Douglas MD 902 Explorer ====&lt;br /&gt;
The [[McDonnell Douglas MD 902 Explorer]] had an significant improvement. Heiko Schulz made a brand new FDM for the MD 902. The helicopter has also a new cockpit with working instruments (most instruments are taken from the [[EC135]]). This helicopter has a role as light twin helicopter and makes use of a NOTAR system. So this is a helicopter without a tailrotor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=packed widths=350px heights=350px&amp;gt;&lt;br /&gt;
MD 902 flying near EDMA.png|Screen shot showing the MD 902 in Polizei livery near EDMA.&lt;br /&gt;
Cockpit from the MD 902.png|The cockpit of the MD 902.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Updated JSBSim FDM for Sopwith Camel with historical features====&lt;br /&gt;
&lt;br /&gt;
A new JSBSim Flight Dynamics Model for the Sopwith Camel was [https://www.youtube.com/playlist?list=PLttk_Y2c7I-c4_SH4zvqJXx1WMt9U1CUF Aircraft of the Month] in May 2013. The FDM attempts to incorporate all known performance characteristics of the Camel documented in various historical accounts by pilots as well as published technical documents.  Many of these documents and interesting historical accounts of the Camel can by found in the Docs directory of the release.&lt;br /&gt;
&lt;br /&gt;
Now version 1.8 of the JSBSim FDM for the Camel has been released, taking into consideration feedback from users and making various improvements.&lt;br /&gt;
&lt;br /&gt;
[http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=19584 Find out more or download the Sopwith Camel here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=packed widths=350px heights=350px&amp;gt;&lt;br /&gt;
Sopwith Camels battle in Bombable 02.png|Sopwith Camels in an AI Scenario running with the Bombable add-on.&lt;br /&gt;
Sopwith Camels battle in Bombable 01.png|Sopwith Camels in an AI Scenario running with the Bombable add-on.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Liveries ===&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
=== Airports ===&lt;br /&gt;
&lt;br /&gt;
Works have been added to '''Václav Havel Airport Prague - LKPR''' with a lot of hangars, terminals and other buildings. More informations you can find on this FG wiki page: [[Václav_Havel_Airport_Prague|Václav Havel Airport Prague]]&lt;br /&gt;
&lt;br /&gt;
''TerraSync has it all! You don't need to download a custom scenery.''&lt;br /&gt;
&amp;lt;gallery mode=Packed-overlay widths=300px heights=300px&amp;gt;&lt;br /&gt;
LKPR North Apron.jpg|The north apron of LKPR&lt;br /&gt;
LKPR East Apron.jpg|The east apron of LKPR&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Regional textures ===&lt;br /&gt;
&lt;br /&gt;
Regional texture definitions for Iceland have been updated on GIT to match the newly available CORINE based version of Iceland in our World Scenery 2.0. Check it out - the place looks gorgeous now!&lt;br /&gt;
&lt;br /&gt;
[[File:Iceland new01.jpg|260px|Öskjuvatn, Iceland in World Scenery 2.0]]&lt;br /&gt;
[[File:Iceland_new02.jpg|260px|Vatnajökull, Iceland in World Scenery 2.0]]&lt;br /&gt;
[[File:Iceland_new03.jpg|260px|Hills near Akureyri, Iceland, in World Scenery 2.0]]&lt;br /&gt;
&lt;br /&gt;
In addition, new regional texture definitions are also available for South Africa - view the famous table mountain near Cape Town and explore grasslands and lush vinyards between rugged hills!&lt;br /&gt;
&lt;br /&gt;
[[File:SouthAfrica01.jpg|260px|Stellenbosch, ZA in World Scenery 2.0]]&lt;br /&gt;
[[File:SouthAfrica02.jpg|260px|Assegaiboschkloof, ZA in World Scenery 2.0]]&lt;br /&gt;
[[File:SouthAfrica03.jpg|260px|Near Franshoek, ZA  in World Scenery 2.0]]&lt;br /&gt;
&lt;br /&gt;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
&lt;br /&gt;
Flightgear goes back to space! &lt;br /&gt;
&lt;br /&gt;
Arc top of a ballistic trajectory with the X-15 - 330.000 ft above Iceland, 600 km visibility range!&lt;br /&gt;
&lt;br /&gt;
[[File:X-15-iceland03.jpg|600px|The X-15 on the falling leg of a high-altitude ballistic trajectory above Iceland]]&lt;br /&gt;
&lt;br /&gt;
And falling down to Earth again:&lt;br /&gt;
&lt;br /&gt;
[[File:X-15-iceland05.jpg|600px|The X-15 on the falling leg of a high-altitude ballistic trajectory above Iceland]]&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
=== Translators required ===&lt;br /&gt;
{|&lt;br /&gt;
|[[File:en.gif]]&lt;br /&gt;
|The FlightGear Wiki still needs help for translating it into various languages. If you are interested in making the FlightGear Wiki multi-language then start at [[Help:Translate]].&lt;br /&gt;
|-&lt;br /&gt;
|[[File:de.gif]]&lt;br /&gt;
|Das FlightGear Wiki benötigt immer noch Hilfe bei der Übersetzung in verschiedene Sprachen. Wenn Du Interesse daran hast, das FlightGear Wiki Mehrsprachig zu machen, dann fang doch mit [[:de:Help:Übersetzen|Help:Übersetzen]] an.&lt;br /&gt;
|-&lt;br /&gt;
|[[File:nl.gif]]&lt;br /&gt;
|De FlightGear Wiki kan nog steed hulp gebruiken bij het vertalen van artikelen. Als je interesse hebt om de wiki meertalig te maken, raden we je aan om een kijkje te nemen bij [[:nl:Help:Vertalen|Help:Vertalen]].&lt;br /&gt;
|-&lt;br /&gt;
|[[File:es.gif]]&lt;br /&gt;
|La FlightGear wiki todavía necesita ayuda para traducirla a varios lenguajes. Si estás interesado en hacer la FlightGear wiki multilingüe, entonces comienza en [[:es:Help:Traducir|Help:Traducir]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Community news ==&lt;br /&gt;
=== FlightGear on YouTube ===&lt;br /&gt;
&lt;br /&gt;
=== New tutorials and screencasts ===&lt;br /&gt;
=== Forum news ===&lt;br /&gt;
=== Multiplayer ===&lt;br /&gt;
=== Virtual airlines ===&lt;br /&gt;
=== FlightGear events ===&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
== And finally ... ==&lt;br /&gt;
=== Contributing ===&lt;br /&gt;
One of the regular thoughts expressed on the FlightGear forums is &amp;quot;I'd like to contribute but I don't know how to program, and I don't have the time&amp;quot;. Unfortunately, there is a common mis-conception that contributing requires programming and lots of free time. In fact, there are a huge range of ways to contribute to the project without needing to write code or spending days working on something. &lt;br /&gt;
&lt;br /&gt;
For ideas on starting to contribute to FlightGear, you may want to check out: [[Volunteer]].&lt;br /&gt;
&lt;br /&gt;
To learn more about how the project works, please see [http://flightgear.org/forums/viewtopic.php?f=42&amp;amp;t=15267#p149971 this short essay] written by Thorsten, for a more detailed article see [[How the FlightGear project works]].&lt;br /&gt;
&lt;br /&gt;
=== YASim looking for a new maintainer ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{cquote|There are some pending merge requests to add some Yasim features, but we have an issue that since none of the current C++ developers own, or are experts in Yasim, we're reluctant to be the person who merges such changes, and potentially introduces subtle regressions.&lt;br /&gt;
&lt;br /&gt;
Obviously this is chicken-and-egg, since no one can become expert enough in the  code to become a maintainer :)&lt;br /&gt;
&lt;br /&gt;
So, I'm more than happy to apply patches *providing* I can be convinced they are sane+reasonable from a pure code perspective (happy to help with that, too, &lt;br /&gt;
if people are new to C++), and providing we have some assurance that a representative sample of yasim aircraft are unchanged or improved by the patch. &lt;br /&gt;
Suggestions for that means in practice, are most welcome!&lt;br /&gt;
&lt;br /&gt;
Otherwise I worry, given the nature of the solver, we'll keep optimising the solver for some aircraft, and making other existing aircraft worse - until someone tests them, and announced that they're no longer working.&amp;lt;ref&amp;gt;{{cite web |url=http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg23986.html &lt;br /&gt;
|title=YASim and documentation&lt;br /&gt;
|author=James Turner |date= Fri, 05 Oct 2012 03:54:43 -0700}}&amp;lt;/ref&amp;gt;|James Turner}}&lt;br /&gt;
&lt;br /&gt;
{{cquote|I am still broadly happy to answer questions if posed (as long as I remember enough to come up with a meaningful answer).  Just cc: me if you do, because my&lt;br /&gt;
latencies here are measured in weeks. &lt;br /&gt;
Bugs can always be fixed.  What YASim needs is a maintainer, not really expertise per se.  The latter comes from the former.&amp;lt;ref&amp;gt;{{cite web |url=http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg23986.html &lt;br /&gt;
|title=YASim and documentation&lt;br /&gt;
|author=Andy Ross |date= Fri, 05 Oct 2012 03:54:43 -0700}}&amp;lt;/ref&amp;gt;|Andy Ross}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[Target4Today]] team is looking for volunteers to help improving FlightGear's combat support&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2014 01]]&lt;br /&gt;
[[Category:Changes after 2.12]]&lt;/div&gt;</summary>
		<author><name>Drdavid</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:DC-10-30ER_Over_Mt_Everest.jpg&amp;diff=67079</id>
		<title>File:DC-10-30ER Over Mt Everest.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:DC-10-30ER_Over_Mt_Everest.jpg&amp;diff=67079"/>
		<updated>2014-02-02T03:43:30Z</updated>

		<summary type="html">&lt;p&gt;Drdavid: 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=FlightGear DC-10-30ER in Lufthansa livery flying in front of Mt Everest.}}&lt;br /&gt;
|date=2014-02-01 11:25:44&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Drdavid|David]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other_versions=&lt;br /&gt;
|other_fields=&lt;br /&gt;
}}&lt;br /&gt;
{{Location dec|0|0}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-3.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter]]&lt;/div&gt;</summary>
		<author><name>Drdavid</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_February_2014&amp;diff=67077</id>
		<title>FlightGear Newsletter February 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_February_2014&amp;diff=67077"/>
		<updated>2014-02-02T01:45:52Z</updated>

		<summary type="html">&lt;p&gt;Drdavid: DC-10-30 Getting a Flightdeck Refit Incorporating Latest NavDisplay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== '''DC-10-30 Getting a Flightdeck Refit''' ==&lt;br /&gt;
&lt;br /&gt;
'''David Waggoner, “DrDavid”'''&lt;br /&gt;
&lt;br /&gt;
The DC-10-30 (by Ryan Miller) is getting an updated flightdeck with state of the art glass cockpit avionics.  The purpose of the project is to create a theoretical refit of the aircraft as if Boeing/McDonnell-Douglas had continued to produce the airplane.  The original instrument panel is historically accurate, but as FlightGear has evolved, the advances in avionics technologies have opened up a whole new universe for giving the pilot real-time situational awareness.  It proved too good of a prospect to pass by.&lt;br /&gt;
&lt;br /&gt;
The DC-10-30 makes a great platform for this kind of revision because of its sophisticated flight dynamics, autopilot and it is Rembrandt enabled. Rembrandt provides superior lighting capabilities both outside and inside the aircraft, but not all FG instruments are Rembrandt-compatible.  Therefore, a new avionics package had to be functional in that environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DC-10-30_Flightdeck_Day_Screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fortunately, the CRJ-700 Family Series (also by Ryan Miller) has a glass cockpit set up for Rembrandt.  The PFD, MFD, EICAS, CDU, Radio Stack, Upper Light Switch Panel, and Side Panels were transferred from the CRJ700 to the DC-10-30.  After much tweaking and trial and error, many, but not all of the CRJ’s screens are functional.  In addition, a set of standby instruments have been added to support the three glass screens.  Note there is cleanup work to be done on the panel—this is a work in development. The choice of instruments and layout are designed to meet my preferences, but that is expected to continue to progress.&lt;br /&gt;
The two screenshots illustrate the great effectiveness of having Rembrandt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DC-10-30_Flightdeck_Night_Screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A brilliant opportunity has popped up, however.  The release of the new Canvas-ready NavDisplay screens, which will be developed by FlightGear over time to match specific aircraft, is now available.  I am now in the process of installing the ND in the DC-10’s MFD.  Once a stable MFD is achieved, the aircraft will be uploaded into Git for the FlightGear Community to take a look at.  I have a long TODO list for other improvements to the model, and will welcome other collaborators—I suspect you have some ideas I haven’t even thought of that would be great to include.  There is also the opportunity to create more liveries for the airplane.&lt;/div&gt;</summary>
		<author><name>Drdavid</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:DC-10-30_Flightdeck_Night_Screenshot.jpg&amp;diff=67069</id>
		<title>File:DC-10-30 Flightdeck Night Screenshot.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:DC-10-30_Flightdeck_Night_Screenshot.jpg&amp;diff=67069"/>
		<updated>2014-02-02T00:56:31Z</updated>

		<summary type="html">&lt;p&gt;Drdavid: 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=Screenshot off a FlightGear DC-10-30 with an refitted flightdeck. Night time perspective.}}&lt;br /&gt;
|date=2014-02-01 16:50:59&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Drdavid|David Waggoner, PhD]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other_versions=&lt;br /&gt;
|other_fields=&lt;br /&gt;
}}&lt;br /&gt;
{{Location dec|0|0}}&lt;br /&gt;
KPDX: Portland International Airport&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-3.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear cockpit screenshots]]&lt;/div&gt;</summary>
		<author><name>Drdavid</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:DC-10-30_Flightdeck_Day_Screenshot.jpg&amp;diff=67068</id>
		<title>File:DC-10-30 Flightdeck Day Screenshot.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:DC-10-30_Flightdeck_Day_Screenshot.jpg&amp;diff=67068"/>
		<updated>2014-02-02T00:56:29Z</updated>

		<summary type="html">&lt;p&gt;Drdavid: 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=Screenshot off a FlightGear DC-10-30 with an refitted flightdeck. Daytime perspective.}}&lt;br /&gt;
|date=2014-02-01 16:50:58&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Drdavid|David Waggoner, PhD]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other_versions=&lt;br /&gt;
|other_fields=&lt;br /&gt;
}}&lt;br /&gt;
{{Location dec|0|0}}&lt;br /&gt;
KPDX: Portland International Airport&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-3.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear cockpit screenshots]]&lt;/div&gt;</summary>
		<author><name>Drdavid</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_February_2014&amp;diff=67063</id>
		<title>FlightGear Newsletter February 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_February_2014&amp;diff=67063"/>
		<updated>2014-02-02T00:44:46Z</updated>

		<summary type="html">&lt;p&gt;Drdavid: DC-10-30 Getting a Flightdeck Refit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== '''DC-10-30 Getting a Flightdeck Refit''' ==&lt;br /&gt;
&lt;br /&gt;
'''David Waggoner, “DrDavid”'''&lt;br /&gt;
&lt;br /&gt;
The DC-10-30 (by Ryan Miller) is getting an updated flightdeck with state of the art glass cockpit avionics.  The purpose of the project is to create a theoretical refit of the aircraft as if Boeing/McDonnell-Douglas had continued to produce the airplane.  The original instrument panel is historically accurate, but as FlightGear has evolved, the advances in avionics technologies have opened up a whole new universe for giving the pilot real-time situational awareness.  It proved too good of a prospect to pass by.&lt;br /&gt;
&lt;br /&gt;
The DC-10-30 makes a great platform for this kind of revision because of its sophisticated flight dynamics, autopilot and it is Rembrandt enabled. Rembrandt provides superior lighting capabilities both outside and inside the aircraft, but not all FG instruments are Rembrandt-compatible.  Therefore, a new avionics package had to be functional in that environment.&lt;br /&gt;
&lt;br /&gt;
[insert daytime screenshot here]&lt;br /&gt;
&lt;br /&gt;
Fortunately, the CRJ-700 Family Series (also by Ryan Miller) has a glass cockpit set up for Rembrandt.  The PFD, MFD, EICAS, CDU, Radio Stack, Upper Light Switch Panel, and Side Panels were transferred from the CRJ700 to the DC-10-30.  After much tweaking and trial and error, many, but not all of the CRJ’s screens are functional.  In addition, a set of standby instruments have been added to support the three glass screens.  Note there is cleanup work to be done on the panel—this is a work in development. The choice of instruments and layout are designed to meet my preferences, but that is expected to continue to progress.&lt;br /&gt;
The two screenshots illustrate the great effectiveness of having Rembrandt.&lt;br /&gt;
&lt;br /&gt;
[insert nighttime screenshot here]&lt;br /&gt;
&lt;br /&gt;
A brilliant opportunity has popped up, however.  The release of the new Canvas-ready NavDisplay screens, which will be developed by FlightGear over time to match specific aircraft, is now available.  I am now in the process of installing the ND in the DC-10’s MFD.  Once a stable MFD is achieved, the aircraft will be uploaded into Git for the FlightGear Community to take a look at.  I have a long TODO list for other improvements to the model, and will welcome other collaborators—I suspect you have some ideas I haven’t even thought of that would be great to include.  There is also the opportunity to create more liveries for the airplane.&lt;/div&gt;</summary>
		<author><name>Drdavid</name></author>
	</entry>
</feed>