<?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=Algernon</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=Algernon"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Algernon"/>
	<updated>2026-04-05T00:53:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76463</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76463"/>
		<updated>2014-09-17T22:37:27Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Canvas Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The code is already in place for the &amp;quot;dirtying&amp;quot; effect - it's a fairly simple linear introduction of the dirt texture, becoming less transparent the more the aircraft flies without being washed. Being washed also includes rain - continued exposure to precipitation will &amp;quot;wash away&amp;quot; dirt by making the dirt layer more transparent according to the heaviness of the weather. It's been tried on the APU smudge, and whilst the values will need to be tweaked, it already works pretty much to my expectations and satisfaction.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=218792#p218792&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |But in the long-term, I would prefer turning this into a Nasal class that can manage multiple Canvases per aircraft, so that we can also re-implement the existing livery system accordingly, so that it stops interfering with canvas. Which would also mean that people can reuse the same class for placing bullet holes or doing other fancy things (e.g. immatriculation)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=218789#p218789&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept: Exhaust dirt ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt streaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Two-layers.jpg|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks&lt;br /&gt;
Dynamic-Textures-First-Try.jpg|A first (failed) attempt to put a canvas onto a model object in place of its texture.&lt;br /&gt;
Ef2000dyn1.jpg|The EF2000 showing a dynamically-changed texture on the fuselage - at the moment, the resolution appears to be wrong and the UV coordinates seem to be being ignored.&lt;br /&gt;
File:Ef2000dyn2.jpg|Changing the dialog window size to be the same size as the texture fixed the issue - note that the fuselage sections are free of dirt (except the APU exhaust smudge, which is a special case) where as the wings and tail have integral dirt in the texture.&lt;br /&gt;
File:Ef2000dyn3.jpg|A full-screen illustration using the updated Canvas code to make the canvas independent of the window, but with the window still displaying the canvas. Here, only the base &amp;quot;clean&amp;quot; paintwork texture is added to the fuselage element.&lt;br /&gt;
File:Ef2000dyn4.jpg|After creating a canvas with the base &amp;quot;clean&amp;quot; paintwork texture, another child is added containing the dirt layer transparency. The effect is seen both in the dialog window and on the airframe.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using raster images and nested canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line did not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;). When the native XML/Nasal livery object was commented out, the image was successfully displayed on the fuselage, but incorrectly sized and apparently without UV mapping (see image below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a standalone Canvas (not attached to any GUI dialog/aircraft etc) &lt;br /&gt;
var myCanvas = canvas.new({&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Livery Test&amp;quot;,   # The name is optional but allow for easier identification&lt;br /&gt;
  &amp;quot;size&amp;quot;: [2048, 2048], # Size of the underlying texture (should be a power of 2, required) [Resolution]&lt;br /&gt;
  &amp;quot;view&amp;quot;: [2048, 2048],  # Virtual resolution (Defines the coordinate system of the canvas [Dimensions]&lt;br /&gt;
                        # which will be stretched the size of the texture, required)&lt;br /&gt;
  &amp;quot;mipmapping&amp;quot;: 1       # Enable mipmapping (optional)&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
# create our top-level/root group that contains all other Canvas elements&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement by replacing the textured face &amp;quot;Fuselage&amp;quot; in the 3D model&lt;br /&gt;
# This replaces the texture on the aircraft and attaches the Canvas texture&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&lt;br /&gt;
# And another, if required&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000-dirt.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
# the Canvas is now standalone, i.e. continues to live once the dialog is closed!&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
window.setCanvas(myCanvas);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Original Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76459</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76459"/>
		<updated>2014-09-17T22:15:43Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Proof of Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The code is already in place for the &amp;quot;dirtying&amp;quot; effect - it's a fairly simple linear introduction of the dirt texture, becoming less transparent the more the aircraft flies without being washed. Being washed also includes rain - continued exposure to precipitation will &amp;quot;wash away&amp;quot; dirt by making the dirt layer more transparent according to the heaviness of the weather. It's been tried on the APU smudge, and whilst the values will need to be tweaked, it already works pretty much to my expectations and satisfaction.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=218792#p218792&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |But in the long-term, I would prefer turning this into a Nasal class that can manage multiple Canvases per aircraft, so that we can also re-implement the existing livery system accordingly, so that it stops interfering with canvas. Which would also mean that people can reuse the same class for placing bullet holes or doing other fancy things (e.g. immatriculation)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=218789#p218789&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 17&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt streaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=packed&amp;gt;&lt;br /&gt;
Two-layers.jpg|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks&lt;br /&gt;
Dynamic-Textures-First-Try.jpg|A first (failed) attempt to put a canvas onto a model object in place of its texture.&lt;br /&gt;
Ef2000dyn1.jpg|The EF2000 showing a dynamically-changed texture on the fuselage - at the moment, the resolution appears to be wrong and the UV coordinates seem to be being ignored.&lt;br /&gt;
File:Ef2000dyn2.jpg|Changing the dialog window size to be the same size as the texture fixed the issue - note that the fuselage sections are free of dirt (except the APU exhaust smudge, which is a special case) where as the wings and tail have integral dirt in the texture.&lt;br /&gt;
File:Ef2000dyn3.jpg|A full-screen illustration using the updated Canvas code to make the canvas independent of the window, but with the window still displaying the canvas. Here, only the base &amp;quot;clean&amp;quot; paintwork texture is added to the fuselage element.&lt;br /&gt;
File:Ef2000dyn4.jpg|After creating a canvas with the base &amp;quot;clean&amp;quot; paintwork texture, another child is added containing the dirt layer transparency. The effect is seen both in the dialog window and on the airframe.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using_raster_images_and_nested_canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line did not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;). When the native XML/Nasal livery object was commented out, the image was successfully displayed on the fuselage, but incorrectly sized and apparently without UV mapping (see image below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a standalone Canvas (not attached to any GUI dialog/aircraft etc) &lt;br /&gt;
var myCanvas = canvas.new({&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Livery Test&amp;quot;,   # The name is optional but allow for easier identification&lt;br /&gt;
  &amp;quot;size&amp;quot;: [2048, 2048], # Size of the underlying texture (should be a power of 2, required) [Resolution]&lt;br /&gt;
  &amp;quot;view&amp;quot;: [2048, 2048],  # Virtual resolution (Defines the coordinate system of the canvas [Dimensions]&lt;br /&gt;
                        # which will be stretched the size of the texture, required)&lt;br /&gt;
  &amp;quot;mipmapping&amp;quot;: 1       # Enable mipmapping (optional)&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
# create our top-level/root group that contains all other Canvas elements&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement by replacing the textured face &amp;quot;Fuselage&amp;quot; in the 3D model&lt;br /&gt;
# This replaces the texture on the aircraft and attaches the Canvas texture&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
# the Canvas is now standalone, i.e. continues to live once the dialog is closed!&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
window.setCanvas(myCanvas);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Original Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Ef2000dyn4.jpg&amp;diff=76458</id>
		<title>File:Ef2000dyn4.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Ef2000dyn4.jpg&amp;diff=76458"/>
		<updated>2014-09-17T22:14:05Z</updated>

		<summary type="html">&lt;p&gt;Algernon: 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=A full-screen demonstration using the updated Canvas code to make the canvas independent of the window, but with the window still displaying. After creating a canvas with the base &amp;quot;clean&amp;quot; paintwork texture, another child is added containing the dirt layer transparency. The effect is seen both in the dialog window and on the airframe.}}&lt;br /&gt;
|date=2014-09-18 00:11:09&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Algernon|Algernon]]&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-3.0}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Ef2000dyn3.jpg&amp;diff=76457</id>
		<title>File:Ef2000dyn3.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Ef2000dyn3.jpg&amp;diff=76457"/>
		<updated>2014-09-17T22:13:54Z</updated>

		<summary type="html">&lt;p&gt;Algernon: 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=A full-screen demonstration using the updated Canvas code to make the canvas independent of the window, but with the window still displaying. Here, only the base &amp;quot;clean&amp;quot; paintwork texture is added to the fuselage element.}}&lt;br /&gt;
|date=2014-09-18 00:10:49&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Algernon|Algernon]]&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-3.0}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76446</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76446"/>
		<updated>2014-09-17T21:38:24Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Proof of Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt streaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=packed&amp;gt;&lt;br /&gt;
Two-layers.jpg|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks&lt;br /&gt;
Dynamic-Textures-First-Try.jpg|A first (failed) attempt to put a canvas onto a model object in place of its texture.&lt;br /&gt;
Ef2000dyn1.jpg|The EF2000 showing a dynamically-changed texture on the fuselage - at the moment, the resolution appears to be wrong and the UV coordinates seem to be being ignored.&lt;br /&gt;
File:Ef2000dyn2.jpg|Changing the dialog window size to be the same size as the texture fixed the issue - note that the fuselage sections are free of dirt (except the APU exhaust smudge, which is a special case) where as the wings and tail have integral dirt in the texture.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using_raster_images_and_nested_canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line did not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;). When the native XML/Nasal livery object was commented out, the image was successfully displayed on the fuselage, but incorrectly sized and apparently without UV mapping (see image below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas in the window and create a containing group called root&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement by replacing the textured face &amp;quot;Fuselage&amp;quot; in the 3D model&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Original Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Ef2000dyn2.jpg&amp;diff=76445</id>
		<title>File:Ef2000dyn2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Ef2000dyn2.jpg&amp;diff=76445"/>
		<updated>2014-09-17T21:35:08Z</updated>

		<summary type="html">&lt;p&gt;Algernon: 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=Changing the dialog window size to be the same size as the texture fixed the issue - note that the fuselage sections are free of dirt (except the APU exhaust smudge, which is a special case) where as the wings and tail have integral dirt in the texture.}}&lt;br /&gt;
|date=2014-09-17 23:32:12&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Algernon|Algernon]]&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-3.0}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76442</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76442"/>
		<updated>2014-09-17T20:48:04Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Canvas Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
[[File:Two-layers.jpg|325px|thumb|right|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks]]&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt streaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using_raster_images_and_nested_canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line did not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;). When the native XML/Nasal livery object was commented out, the image was successfully displayed on the fuselage, but incorrectly sized and apparently without UV mapping (see image below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas in the window and create a containing group called root&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement by replacing the textured face &amp;quot;Fuselage&amp;quot; in the 3D model&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Dynamic-Textures-First-Try.jpg|325px|thumb|right|A first (failed) attempt to put a canvas onto a model object in place of its texture.]]&lt;br /&gt;
[[File:Ef2000dyn1.jpg|325px|thumb|right|The EF2000 showing a dynamically-changed texture on the fuselage - at the moment, the resolution appears to be wrong and the UV coordinates seem to be being ignored.]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76440</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76440"/>
		<updated>2014-09-17T20:44:44Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Proof of Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
[[File:Two-layers.jpg|325px|thumb|right|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks]]&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt streaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using_raster_images_and_nested_canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line does not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas in the window and create a containing group called root&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement by replacing the textured face &amp;quot;Fuselage&amp;quot; in the 3D model&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Dynamic-Textures-First-Try.jpg|325px|thumb|right|A first (failed) attempt to put a canvas onto a model object in place of its texture.]]&lt;br /&gt;
[[File:Ef2000dyn1.jpg|325px|thumb|right|The EF2000 showing a dynamically-changed texture on the fuselage - at the moment, the resolution appears to be wrong and the UV coordinates seem to be being ignored.]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Ef2000dyn1.jpg&amp;diff=76439</id>
		<title>File:Ef2000dyn1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Ef2000dyn1.jpg&amp;diff=76439"/>
		<updated>2014-09-17T20:42:22Z</updated>

		<summary type="html">&lt;p&gt;Algernon: 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=The EF2000 showing a dynamically-changed texture on the fuselage - at the moment, the resolution appears to be wrong and the UV coordinates seem to be being ignored.}}&lt;br /&gt;
|date=2014-09-17 22:37:16&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Algernon|Algernon]]&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-3.0}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76423</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76423"/>
		<updated>2014-09-17T18:24:18Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Proof of Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
[[File:Two-layers.jpg|325px|thumb|right|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks]]&lt;br /&gt;
[[File:Dynamic-Textures-First-Try.jpg|325px|thumb|right|A first (failed) attempt to put a canvas onto a model object in place of its texture.]]&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt steaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using_raster_images_and_nested_canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line does not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas in the window and create a containing group called root&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement. I believe the second argument relates to model objects, so I have attempted to place it on the object named Fuselage. I don't understand this bit too well, Hooray can you help?&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76422</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76422"/>
		<updated>2014-09-17T18:21:26Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Proof of Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
[[File:EF2000-canvas.ac in Blender.jpg|400px|right|EF2000-canvas.ac in Blender, showing the Texture allocations thus far]]&lt;br /&gt;
[[File:Two-layers.jpg|325px|thumb|right|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks]]&lt;br /&gt;
[[File:Dynamic-Textures-First-Try.jpg|325px|thumb|right|A first (failed) attempt to put a canvas onto a model object in place of its texture.]]&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt steaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using_raster_images_and_nested_canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line does not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas in the window and create a containing group called root&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement. I believe the second argument relates to model objects, so I have attempted to place it on the object named Fuselage. I don't understand this bit too well, Hooray can you help?&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76421</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76421"/>
		<updated>2014-09-17T18:19:55Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Model Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt steaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using_raster_images_and_nested_canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line does not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas in the window and create a containing group called root&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement. I believe the second argument relates to model objects, so I have attempted to place it on the object named Fuselage. I don't understand this bit too well, Hooray can you help?&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76420</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76420"/>
		<updated>2014-09-17T18:15:07Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Proof of Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt steaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
[[File:EF2000-canvas.ac in Blender.jpg|400px|right|EF2000-canvas.ac in Blender, showing the Texture allocations thus far]]&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
[[File:Two-layers.jpg|325px|thumb|left|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks]]&lt;br /&gt;
{{-}}&lt;br /&gt;
=== Canvas Code ===&lt;br /&gt;
From the code snippets above and [[Howto:Using_raster_images_and_nested_canvases]], I've put together my first attempt at some Canvas code. It appears that the canvas is the right size, and both .jpg and .png textures are loaded. But the placement line does not seem to make any difference to the texture on the named model object (&amp;quot;Fuselage&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# Create a Canvas dialog window to hold the canvas and show that it's working&lt;br /&gt;
var window = canvas.Window.new([512,512],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# Create a Canvas in the window and create a containing group called root&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# Add a placement. I believe the second argument relates to model objects, so I have attempted to place it on the object named Fuselage. I don't understand this bit too well, Hooray can you help?&lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Fuselage&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
# Put a raster image into the canvas&lt;br /&gt;
root.createChild(&amp;quot;image&amp;quot;)&lt;br /&gt;
     .setFile(&amp;quot;Aircraft/EF2000/Models/EF2000.png&amp;quot;)&lt;br /&gt;
     .setSize(2048,2048);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Dynamic-Textures-First-Try.jpg&amp;diff=76419</id>
		<title>File:Dynamic-Textures-First-Try.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Dynamic-Textures-First-Try.jpg&amp;diff=76419"/>
		<updated>2014-09-17T18:14:48Z</updated>

		<summary type="html">&lt;p&gt;Algernon: 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=A first (failed) attempt to put a canvas onto a model object in place of its texture.}}&lt;br /&gt;
|date=2014-09-17 20:12:43&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Algernon|Algernon]]&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-3.0}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76413</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76413"/>
		<updated>2014-09-17T17:29:08Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Model Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt steaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
[[File:EF2000-canvas.ac in Blender.jpg|400px|right|EF2000-canvas.ac in Blender, showing the Texture allocations thus far]]&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;br /&gt;
[[File:Two-layers.jpg|325px|thumb|left|The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Two-layers.jpg&amp;diff=76412</id>
		<title>File:Two-layers.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Two-layers.jpg&amp;diff=76412"/>
		<updated>2014-09-17T17:18:28Z</updated>

		<summary type="html">&lt;p&gt;Algernon: 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=The two textures concerned, the ASG paintwork and the separate alpha transparency with dirt streaks}}&lt;br /&gt;
|date=2014-09-17 19:17:11&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Algernon|Algernon]]&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-3.0}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76411</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76411"/>
		<updated>2014-09-17T17:09:32Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Proof of Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
''by [[User:Algernon|Algernon]] ([[User talk:Algernon|talk]]) 17:09, 17 September 2014 (UTC) ''&lt;br /&gt;
&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt steaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
[[File:EF2000-canvas.ac in Blender.jpg|400px|right|EF2000-canvas.ac in Blender, showing the Texture allocations thus far]]&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76410</id>
		<title>Howto:Dynamic Liveries via Canvas</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Dynamic_Liveries_via_Canvas&amp;diff=76410"/>
		<updated>2014-09-17T17:08:24Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Canvas-livery-demo-using-ogle.png|left|400px|A screen shot showing the ogel aircraft whose livery is dynamically changed using the [[Canvas]] system - in this case, we're simply rendering a [[MapStructure]] map onto the face of the pilot using ~10 lines of Nasal/Canvas code.]]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Demonstrate how to modify/animate liveries using Nasal/Canvas.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
{{Note|This assumes that you're using the ogel aircraft and that the face texture can be looked up using the name '''Head'''.&lt;br /&gt;
The map shown here is just an example, this could obviously be anything, including raster/svg images, custom OpenVG/ShivaVG paths, osgText etc.&lt;br /&gt;
To implement a dirt texture, you'd want to use the corresponding texture ID and then overlay a static dirt texture using some kind of random scheme, e.g. by adding texture maps/sub regions to the exhaust area. See [[Canvas Image]] for details. &lt;br /&gt;
In its current form, this will simply apply the texture mapping used in the 3D mode &amp;quot;as is&amp;quot;. In other words, all texture-mapped faces should be accessible from Nasal/Canvas and can be modified/animated.&lt;br /&gt;
In comparison to a pure shader-based approach this is likely to have a little more overhead, while not requiring effects/shaders (but RTT/FBOs due to Canvas) - also, this approach is agnostic to the underlying rendering pipeline, i.e. should also work for Rembrandt aircraft, without having to be customized.  }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# create a new window, dimensions are 320 x 160, using the dialog decoration (i.e. titlebar)&lt;br /&gt;
var window = canvas.Window.new([320,160],&amp;quot;dialog&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
# adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
var myCanvas = window.createCanvas();&lt;br /&gt;
&lt;br /&gt;
# creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
# add a new placement using a texture identifier (see $FG_ROOT/ogel/Models/SinglePiston.ac or existing liveries) &lt;br /&gt;
myCanvas.addPlacement({&amp;quot;node&amp;quot;: &amp;quot;Head&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# now, let's add some content to our canvas (this could be really anything)&lt;br /&gt;
# animations are handled via timers/listeners (not shown here, hidden in the depths of MapStructure)&lt;br /&gt;
var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
TestMap.setController(&amp;quot;Aircraft position&amp;quot;);&lt;br /&gt;
TestMap.setRange(25); &lt;br /&gt;
 &lt;br /&gt;
TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                           myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                        );&lt;br /&gt;
var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
foreach(var type; [r('APT'), r('VOR') ] )&lt;br /&gt;
 TestMap.addLayer(factory: canvas.SymbolLayer, type_arg: type.name, visible: type.vis, priority: type.zindex,);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Does anyone know if it's possible for FG to work with a texture which consists of two images, and manipulate those images seperately? The application here is airframe dirt - I'm trying to find out if I can have one texture for the aircraft livery, and another for accumulated dirt, which would gradually become less transparent as the airframe hours increase. I am aware of the questionable advisability of using alpha channels excessively in FG, this is just an experiment at the moment. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217613#p217613&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |there are probably several ways to do something like this, effects/shaders and even Canvas can be used to combine textures and adjusting alpha via Nasal.&amp;lt;br/&amp;gt;&lt;br /&gt;
So it's mainly a matter of your exact requirements and what kind of solution you'd prefer.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217614#p217614&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Sep 01&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The aircraft gets dirtier with more flights hours. Some code to do this is already in place, and tested on the other dirt application, the APU exhaust blackening on the port wing root. This is a localised and distinctive stain which you see on most Typhoons, so there I have just used a duplicate of the vertices and faces in that locality, placed a little away from the airframe, and used an alpha texture and the material transparency animation. It works a charm, and doesn't seem to have problems with alpha flashing. For the airframe, this probably isn't a viable approach. Part of the textures set for the airframe has a transparent dirt layer which has been tailored to the model to feature streaks from particular vents or around extensions like underwing pylons, so it would be desirable to be able to use this. This additional layer must remain unchanged through livery switches, and then be gradually introduced over time according to the property updated by the same Nasal function that dirties the APU exhaust while it's running (the airframe starts to gets dirtier over 80kts or something for the all over dirt). And if at all possible, it should be Rembrandt compatible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | The idea of a canvas airframe texture is a fascinating one, and might be considered almost heretical over at FGUK! ;) But although I'm finding Canvas a bit inaccessible at the moment, if I can achieve combined textures with controllable transparency that works equally well with or without Rembrandt, I'd certainly be interested in using this idea as an entry point.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217721#p217721&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Algernon&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Canvas should work fairly well actually - Tom added support for pretty much &amp;quot;arbitrary&amp;quot; placements, so that canvas textures can be placed anywhere on the aircraft, but also in the scenery (and obviously also in GUI dialogs/windows). We once toyed with the idea of also making effects and shaders available to Canvas - Tom also mentioned this once on the devel list, and we have code doing this for the whole canvas - even though Tom said that it would be better to support this &amp;quot;per-element&amp;quot;. Obviously, that would bring a ton of flexibility to Canvas-based efforts like yours.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |most code snippets recently added to the wiki are about different use-cases - i.e. not specifically about airframe textures/liveries, but then again - the Canvas doesn't care at all where you use a certain texture - in other words, you could prototype the whole thing using a GUI dialog and once you are satisifed with the outcode you would use another placement to show the texture elsewhere. The good thing about your particular use case is that it low-bandwidth, i.e. the texture probably doesn't need to be updated per frame - so performance issues due to Nasal/Canvas overhead should not be a factor. &amp;lt;br/&amp;gt;&lt;br /&gt;
I think you could certainly prototype the whole thing fairly quickly - and if/once effects and shaders become available to Canvas, your approach could be updated accordingly. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |For starters, you could look at this: [[Howto:Using_raster_images_and_nested_canvases#Example:_Showing_a_Splash_Screen]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This will open an existing splash screen image and show it in a Canvas dialog.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can copy/paste the code to load a few different images, to learn more about Canvas image handling, see: [[Canvas_Image]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that you can also use/apply sub-textures and overlay/transform those arbitrarily - i.e. a lot of fancy stuff without having to know anything about effects or shaders  :)  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also overlay individual images using the &amp;quot;z-index&amp;quot; attribute: [[Canvas_Element#z-index]]&amp;lt;br/&amp;gt;&lt;br /&gt;
And then, you can basically do pretty much anything using the core Nasal APIs documented at: [[Canvas_Nasal_API]]&amp;lt;br/&amp;gt;&lt;br /&gt;
To adjust transparency, you'll want to use the alpha channel.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To animate the livery/texture, you'd basically use a timer/listener to change the texture's canvas property tree - i.e. by hiding/showing some sub-texture, or transforming groups/elements.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | the whole method came up as an idea - this isn't currently being used anywhere as far as I know. But it would seem that we're mainly missing people who want to experiment a bit.&amp;lt;br/&amp;gt;&lt;br /&gt;
Canvas was never designed for creating/modifying &amp;quot;liveries&amp;quot; obviously - but canvas is very good at one thing: creating/modifying arbitrary textures at run-time and adjusting pretty much arbitrary parameters by setting a few properties.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Thus, I'd consider Canvas more like a &amp;quot;toolbox&amp;quot; whose tools may not be directly designed for this particular purpose, but which are sufficiently generic and which can still be used &amp;quot;creatively&amp;quot; - e.g. there are some things that are only possible per-canvas, and not per &amp;quot;element&amp;quot; (group, image, paths, text, map) - in such cases, you typically need to use a workaround by using multiple canvas and referencing them via the canvas:/// markup as another raster image. We used this method a few times to implement &amp;quot;workarounds&amp;quot; - so in general, the implementation is pretty generic and even &amp;quot;recursive&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We don't currently have any support for effects/shaders in 3.2 (or git) - but whenever you add a canvas-based texture to any of your models, you're adding a layer of indirection - so while some static textures may not be easily changed at run-time in some C++ subsystems, Canvas is all about managing dynamic textures - which in turn may consist of static textures (or variations of those).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I don't know if we have placement-related docs anywhere, but you could take a look at any aircraft using a dynamic Canvas-based texture, the c172p-canvas should be a fairly lighweight example compared to the 777/747 probably&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217722#p217722&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I guess with some more feedback/brainstorming, we can probably explore and see what's possible already, and what might be missing to support this particular &amp;quot;livery&amp;quot; use-case in the most generic fashion. Like I said, support for shaders/effects is relatively straightforward to add - Tom and I both have experimental code doing this kind of thing (per canvas only here) -and this would be useful for other purposes, too (think FLIR/night vision support etc).&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=217737#p217737&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Two Images to a Texture&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Hooray&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Sep 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Proof of Concept ==&lt;br /&gt;
To document the implementation on a FlightGear aircraft from the aircraft developer's point of view, I've chosen one of my pet projects, the Eurofighter EF2000 V2.0 which will be released in early 2015.&lt;br /&gt;
The intention is to use Canvas to allow multiple textures per livery, in this case those textures being the original livery paintwork and another, alpha-transparent texture consisting of dirt steaks specifically added to the livery paintwork to match with vents, seams and other sources of grimy build-ups. The intention is to allow dynamic management of the transparency of the dirt layer according to time and exposure to various elements, maintaining compatibility with the standard livery switching method and working similarly whether Rembrandt is enabled or not. &lt;br /&gt;
&lt;br /&gt;
''This section will be updated as the implementation continues.''&lt;br /&gt;
&lt;br /&gt;
=== Model Work ===&lt;br /&gt;
[[File:EF2000-canvas.ac in Blender.jpg|400px|right|EF2000-canvas.ac in Blender, showing the Texture allocations thus far]]&lt;br /&gt;
To start with, I cloned the EF2000's model and made a copy called &amp;quot;EF2000-canvas.ac&amp;quot;, cloned the model XML file in the same way, and changed the paths appropriately to create a completely separate model for this experiment. The model objects which will be subject to the dynamic effects - effectively, the painted surfaces - were isolated from items like the canopy glass, gear and engines and given the same material, named '''CanvasPaint''' and consisting of an image texture: a livery in Air Superiority Grey but without the dirt layer already included. My first experiment will be to create a canvas and try to apply it to the mesh.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:EF2000-canvas.ac_in_Blender.jpg&amp;diff=76409</id>
		<title>File:EF2000-canvas.ac in Blender.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:EF2000-canvas.ac_in_Blender.jpg&amp;diff=76409"/>
		<updated>2014-09-17T17:01:08Z</updated>

		<summary type="html">&lt;p&gt;Algernon: 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=An illustration of the materials settings in Blender to prepare the airframe for a dynamic Canvas-driven livery}}&lt;br /&gt;
|date=2014-09-17 18:59:34&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Algernon|Algernon]]&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-3.0}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_August_2014&amp;diff=75382</id>
		<title>FlightGear Newsletter August 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_August_2014&amp;diff=75382"/>
		<updated>2014-08-20T02:49:32Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Eurofighter EF2000 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter-header|August 2014}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-bottom:3px double #BBB;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; |&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-item|3.2 Released}}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Development news}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|FGCamera 1.0 Released}}&amp;lt;br /&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|Scenery corner}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|Yongphulla Domestic Airport - VQ10}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Other}}&amp;lt;br/&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|In the hangar}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|Beechcraft B1900D template}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Multiplayer events}}&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==3.2 Released==&lt;br /&gt;
The FlightGear development team is delighted to announce that the long awaited v3.2 release of FlightGear, the free, open-source flight simulator has been released on &amp;lt;!--Add date--&amp;gt; INSERT FINAL RELEASE DATE HERE. This new version contains many exciting new features, enhancements and bugfixes. Highlights in this release include ... &lt;br /&gt;
&lt;br /&gt;
Founded in 1997, FlightGear is developed by a worldwide group of volunteers, brought together by a shared ambition to create the most realistic flight simulator possible that is free to use, modify and distribute. FlightGear is used all over the world by desktop flight simulator enthusiasts, for research in universities and for interactive exhibits in museums. &lt;br /&gt;
&lt;br /&gt;
FlightGear features more than 400 aircraft, a worldwide scenery database, a multi-player environment, detailed sky modelling, a flexible and open aircraft modelling system, varied networking options, multiple display support, a powerful scripting language and an open architecture. Best of all, being open-source, the simulator is owned by the community and everyone is encouraged to contribute. &lt;br /&gt;
&lt;br /&gt;
Download FlightGear v3.2 for free from [http://www.flightgear.org FlightGear.org]&lt;br /&gt;
&lt;br /&gt;
FlightGear - Fly Free! &lt;br /&gt;
''Read more at: [[Next Changelog|Version 3.2 Changelog]]''&lt;br /&gt;
&lt;br /&gt;
==Development news==&lt;br /&gt;
===FGCamera 1.0 Released===&lt;br /&gt;
{{#ev:youtube|DMZB7QXpR9I|250|right|FGCamera v1.0 in action}}&lt;br /&gt;
FGCamera v1.0 is available to download. Features of current version:&lt;br /&gt;
* 4 camera types:&lt;br /&gt;
** Virtual cockpit,&lt;br /&gt;
** Aircraft (look-at),&lt;br /&gt;
** Aircraft (look-from),&lt;br /&gt;
** World (look-from);&lt;br /&gt;
* Arbitrary number of preset views;&lt;br /&gt;
* Smooth/discrete transition between the views of the same camera type.&lt;br /&gt;
&lt;br /&gt;
v1.0 has graphical user interface to create and manage camera views:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=200px heights=200px&amp;gt;&lt;br /&gt;
Fgcamera main dialog.jpg|Main dialog with cameras management tools.&lt;br /&gt;
Fgcamera new camera dialog.jpg|Dialog used to create new cameras. Four camera types are available&lt;br /&gt;
Fgcamera camera settings dialog.jpg|Settings for currently selected camera&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Read more at updated [http://wiki.flightgear.org/FGCamera FGCamera wiki article].&lt;br /&gt;
&lt;br /&gt;
==Scenery corner==&lt;br /&gt;
===Yongphulla Domestic Airport - VQ10===&lt;br /&gt;
High mountains, deep valleys, strong winds and sometimes the rain may appear as something like snow. You are at the bhutanese '''[[Yongphulla Airport|Yongphula Domestic Airport]]''' (VQ10) at a height of 2573 metres. After [[Paro Airport|Paro]], also this airport has been improved. Besides the Terminal and Apron, shared models and other little things have now been added. [[TerraSync]] has it all! Have a nice flight in the Kingdom of Bhutan.&lt;br /&gt;
&amp;lt;gallery mode=packed heights=240px&amp;gt;&lt;br /&gt;
VQ10 Yongphula Airport.jpg|Yonghula Airport&lt;br /&gt;
VQ10 Yongphula Apron.jpg|Tower and Terminal of Yongphula&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In the Hangar==&lt;br /&gt;
===Beechcraft B1900D template===&lt;br /&gt;
A new template for the [http://wiki.flightgear.org/Beechcraft_B1900D B1900D] is available in the [http://liveries.flightgear.org/paintkits.php Paintkits] section of the [http://liveries.flightgear.org/ flightgear liveries database website]. The template comes in svg format (best used with [http://www.inkscape.org inkscape]) features:&lt;br /&gt;
* full rivets, panel lines and stencils details in vector format&lt;br /&gt;
* ambient occlusion layer&lt;br /&gt;
* dirt layer&lt;br /&gt;
Some B1900d liveries made with this template are available to download in the [http://liveries.flightgear.org/aircraft.php?limit=25&amp;amp;display=2&amp;amp;page=0&amp;amp;id=21 flightgear liveries database website]&lt;br /&gt;
&lt;br /&gt;
===Eurofighter EF2000===&lt;br /&gt;
{{#ev:youtube|_MaxljfrPBY||right|A brief in-cockpit demo of the EF2000's FCS}}&lt;br /&gt;
A big milestone has been achieved in the ongoing development of the EF2000, which I (Algernon) have been project managing since branching from the Eurofighter Typhoon project some years back: finally, after a lot of fiddling, a completely computerised Flight Control System which can simulate its real-life counterpart, with surface control fully autonomous and with an autopilot-based processor interpreting pilot input and commanding the system to fly its maximum performance envelope to obey, but not exceed safety or design limits. While a lot of these features are not yet implemented, we have established a working practice for the core system which allows extra elements to be introduced simply and effectively. I have heard it said that FG is incapable of simulating such systems, and I hope here we have proved otherwise, and, a bit self-indulgently, that maybe this will be the first truly fly-by-wire aircraft in FlightGear! (I am of course prepared to stand corrected there...)&lt;br /&gt;
&lt;br /&gt;
Particular thanks for this objective go to StuartC, who designed the basis of the FDM, and Tomaskom, whose help in fields where I am not much of a master (like mathematics) has been invaluable. Many updates are planned for the EF2000, including a whole new custom paintjob with many liveries, and it is hoped a final, V2.0 release may be available in the later part of the year. You can also get hold of a pre-release copy if you visit the [http://fguk.eu/index.php/forum/index FGUK Forum] and register your interest, for testing purposes - your feedback will be appreciated. Pre-releases will probably not be available until at least September 2014.&lt;br /&gt;
&lt;br /&gt;
Other points being addressed in the V2.0 release are:&lt;br /&gt;
&lt;br /&gt;
* New modular Nasal approach and many new scripts. Upgraded to Eno audio management.&lt;br /&gt;
* New UV map for N-SCOT, leading to sexy new textures and liveries and hopefully a paintkit too&lt;br /&gt;
* Improvements to helmet-mounted display and HUD for improved navigation, target acquisition and weapons management&lt;br /&gt;
* Disintegration, explosion, real damage and real maintenance&lt;br /&gt;
* External lighting redesigned&lt;br /&gt;
* Experimental and deprecated code bumph removed&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_August_2014&amp;diff=75326</id>
		<title>FlightGear Newsletter August 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_August_2014&amp;diff=75326"/>
		<updated>2014-08-18T12:14:02Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* In the Hangar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter-header|August 2014}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-bottom:3px double #BBB;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; |&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-item|3.2 Released}}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Development news}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|FGCamera 1.0 Released}}&amp;lt;br /&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|Scenery corner}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|Yongphulla Domestic Airport - VQ10}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Other}}&amp;lt;br/&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|In the hangar}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|Beechcraft B1900D template}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Multiplayer events}}&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==3.2 Released==&lt;br /&gt;
The FlightGear development team is delighted to announce that the long awaited v3.2 release of FlightGear, the free, open-source flight simulator has been released on &amp;lt;!--Add date--&amp;gt; INSERT FINAL RELEASE DATE HERE. This new version contains many exciting new features, enhancements and bugfixes. Highlights in this release include ... &lt;br /&gt;
&lt;br /&gt;
Founded in 1997, FlightGear is developed by a worldwide group of volunteers, brought together by a shared ambition to create the most realistic flight simulator possible that is free to use, modify and distribute. FlightGear is used all over the world by desktop flight simulator enthusiasts, for research in universities and for interactive exhibits in museums. &lt;br /&gt;
&lt;br /&gt;
FlightGear features more than 400 aircraft, a worldwide scenery database, a multi-player environment, detailed sky modelling, a flexible and open aircraft modelling system, varied networking options, multiple display support, a powerful scripting language and an open architecture. Best of all, being open-source, the simulator is owned by the community and everyone is encouraged to contribute. &lt;br /&gt;
&lt;br /&gt;
Download FlightGear v3.2 for free from [http://www.flightgear.org FlightGear.org]&lt;br /&gt;
&lt;br /&gt;
FlightGear - Fly Free! &lt;br /&gt;
''Read more at: [[Next Changelog|Version 3.2 Changelog]]''&lt;br /&gt;
&lt;br /&gt;
==Development news==&lt;br /&gt;
===FGCamera 1.0 Released===&lt;br /&gt;
{{#ev:youtube|DMZB7QXpR9I|250|right|FGCamera v1.0 in action}}&lt;br /&gt;
FGCamera v1.0 is available to download. Features of current version:&lt;br /&gt;
* 4 camera types:&lt;br /&gt;
** Virtual cockpit,&lt;br /&gt;
** Aircraft (look-at),&lt;br /&gt;
** Aircraft (look-from),&lt;br /&gt;
** World (look-from);&lt;br /&gt;
* Arbitrary number of preset views;&lt;br /&gt;
* Smooth/discrete transition between the views of the same camera type.&lt;br /&gt;
&lt;br /&gt;
v1.0 has graphical user interface to create and manage camera views:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=200px heights=200px&amp;gt;&lt;br /&gt;
Fgcamera main dialog.jpg|Main dialog with cameras management tools.&lt;br /&gt;
Fgcamera new camera dialog.jpg|Dialog used to create new cameras. Four camera types are available&lt;br /&gt;
Fgcamera camera settings dialog.jpg|Settings for currently selected camera&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Read more at updated [http://wiki.flightgear.org/FGCamera FGCamera wiki article].&lt;br /&gt;
&lt;br /&gt;
==Scenery corner==&lt;br /&gt;
===Yongphulla Domestic Airport - VQ10===&lt;br /&gt;
High mountains, deep valleys, strong winds and sometimes the rain may appear as something like snow. You are at the bhutanese '''[[Yongphulla Airport|Yongphula Domestic Airport]]''' (VQ10) at a height of 2573 metres. After [[Paro Airport|Paro]], also this airport has been improved. Besides the Terminal and Apron, shared models and other little things have now been added. [[TerraSync]] has it all! Have a nice flight in the Kingdom of Bhutan.&lt;br /&gt;
&amp;lt;gallery mode=packed heights=240px&amp;gt;&lt;br /&gt;
VQ10 Yongphula Airport.jpg|Yonghula Airport&lt;br /&gt;
VQ10 Yongphula Apron.jpg|Tower and Terminal of Yongphula&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In the Hangar==&lt;br /&gt;
===Beechcraft B1900D template===&lt;br /&gt;
A new template for the [http://wiki.flightgear.org/Beechcraft_B1900D B1900D] is available in the [http://liveries.flightgear.org/paintkits.php Paintkits] section of the [http://liveries.flightgear.org/ flightgear liveries database website]. The template comes in svg format (best used with [http://www.inkscape.org inkscape]) features:&lt;br /&gt;
* full rivets, panel lines and stencils details in vector format&lt;br /&gt;
* ambient occlusion layer&lt;br /&gt;
* dirt layer&lt;br /&gt;
Some B1900d liveries made with this template are available to download in the [http://liveries.flightgear.org/aircraft.php?limit=25&amp;amp;display=2&amp;amp;page=0&amp;amp;id=21 flightgear liveries database website]&lt;br /&gt;
&lt;br /&gt;
===Eurofighter EF2000===&lt;br /&gt;
{{#ev:youtube|_MaxljfrPBY||right|A brief in-cockpit demo of the EF2000's FCS}}&lt;br /&gt;
A big milestone has been achieved in the ongoing development of the EF2000, which FGUK's Algernon has been project managing since branching from the Eurofighter Typhoon project some years back: finally, a completely computerised Flight Control System which can simulate its real-life counterpart, with surface control fully autonomous and with an autopilot-based processor interpreting pilot input and commanding the system to fly its maximum performance envelope to obey, but not exceed safety or design limits. While a lot of these features are not yet implemented, we have established a working practice for the core system which allows extra elements to be introduced simply and effectively. I have heard it said that FG is incapable of simluating such systems - I hope here we have proved otherwise, and indeed that maybe this will be the first truly fly-by-wire aircraft in FlightGear!&lt;br /&gt;
&lt;br /&gt;
Particular thanks for this milestone go to StuartC, who designed the basis of the FDM, and Tomaskom, whose help in fields where I am not much of a master (like mathematics) has been invaluable. Many updates are planned for the EF2000, including a whole new custom paintjob with many liveries, and it is hoped a final, V2.0 release may be available in the later part of the year. You can also get hold of a pre-release copy if you visit the [http://fguk.eu/index.php/forum/index FGUK Forum] and register your interest, for testing purposes - your feedback will be appreciated. Pre-releases will probably not be available until at least September 2014.&lt;br /&gt;
&lt;br /&gt;
Other points being addressed in the V2.0 release are:&lt;br /&gt;
&lt;br /&gt;
* New modular Nasal approach and many new scripts. Upgraded to Eno audio management.&lt;br /&gt;
* New UV map for N-SCOT, leading to sexy new textures and liveries and hopefully a paintkit too&lt;br /&gt;
* Improvements to helmet-mounted display and HUD for improved navigation, target acquisition and weapons management&lt;br /&gt;
* Disintegration, explosion, real damage and real maintenance&lt;br /&gt;
* External lighting redesigned&lt;br /&gt;
* Experimental and deprecated code bumph removed&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_August_2014&amp;diff=75325</id>
		<title>FlightGear Newsletter August 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_August_2014&amp;diff=75325"/>
		<updated>2014-08-18T12:10:25Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* In the Hangar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter-header|August 2014}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-bottom:3px double #BBB;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; |&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-item|3.2 Released}}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Development news}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|FGCamera 1.0 Released}}&amp;lt;br /&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|Scenery corner}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|Yongphulla Domestic Airport - VQ10}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Other}}&amp;lt;br/&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|In the hangar}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-item|Beechcraft B1900D template}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Multiplayer events}}&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==3.2 Released==&lt;br /&gt;
The FlightGear development team is delighted to announce that the long awaited v3.2 release of FlightGear, the free, open-source flight simulator has been released on &amp;lt;!--Add date--&amp;gt; INSERT FINAL RELEASE DATE HERE. This new version contains many exciting new features, enhancements and bugfixes. Highlights in this release include ... &lt;br /&gt;
&lt;br /&gt;
Founded in 1997, FlightGear is developed by a worldwide group of volunteers, brought together by a shared ambition to create the most realistic flight simulator possible that is free to use, modify and distribute. FlightGear is used all over the world by desktop flight simulator enthusiasts, for research in universities and for interactive exhibits in museums. &lt;br /&gt;
&lt;br /&gt;
FlightGear features more than 400 aircraft, a worldwide scenery database, a multi-player environment, detailed sky modelling, a flexible and open aircraft modelling system, varied networking options, multiple display support, a powerful scripting language and an open architecture. Best of all, being open-source, the simulator is owned by the community and everyone is encouraged to contribute. &lt;br /&gt;
&lt;br /&gt;
Download FlightGear v3.2 for free from [http://www.flightgear.org FlightGear.org]&lt;br /&gt;
&lt;br /&gt;
FlightGear - Fly Free! &lt;br /&gt;
''Read more at: [[Next Changelog|Version 3.2 Changelog]]''&lt;br /&gt;
&lt;br /&gt;
==Development news==&lt;br /&gt;
===FGCamera 1.0 Released===&lt;br /&gt;
{{#ev:youtube|DMZB7QXpR9I|250|right|FGCamera v1.0 in action}}&lt;br /&gt;
FGCamera v1.0 is available to download. Features of current version:&lt;br /&gt;
* 4 camera types:&lt;br /&gt;
** Virtual cockpit,&lt;br /&gt;
** Aircraft (look-at),&lt;br /&gt;
** Aircraft (look-from),&lt;br /&gt;
** World (look-from);&lt;br /&gt;
* Arbitrary number of preset views;&lt;br /&gt;
* Smooth/discrete transition between the views of the same camera type.&lt;br /&gt;
&lt;br /&gt;
v1.0 has graphical user interface to create and manage camera views:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=200px heights=200px&amp;gt;&lt;br /&gt;
Fgcamera main dialog.jpg|Main dialog with cameras management tools.&lt;br /&gt;
Fgcamera new camera dialog.jpg|Dialog used to create new cameras. Four camera types are available&lt;br /&gt;
Fgcamera camera settings dialog.jpg|Settings for currently selected camera&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Read more at updated [http://wiki.flightgear.org/FGCamera FGCamera wiki article].&lt;br /&gt;
&lt;br /&gt;
==Scenery corner==&lt;br /&gt;
===Yongphulla Domestic Airport - VQ10===&lt;br /&gt;
High mountains, deep valleys, strong winds and sometimes the rain may appear as something like snow. You are at the bhutanese '''[[Yongphulla Airport|Yongphula Domestic Airport]]''' (VQ10) at a height of 2573 metres. After [[Paro Airport|Paro]], also this airport has been improved. Besides the Terminal and Apron, shared models and other little things have now been added. [[TerraSync]] has it all! Have a nice flight in the Kingdom of Bhutan.&lt;br /&gt;
&amp;lt;gallery mode=packed heights=240px&amp;gt;&lt;br /&gt;
VQ10 Yongphula Airport.jpg|Yonghula Airport&lt;br /&gt;
VQ10 Yongphula Apron.jpg|Tower and Terminal of Yongphula&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In the Hangar==&lt;br /&gt;
===Beechcraft B1900D template===&lt;br /&gt;
A new template for the [http://wiki.flightgear.org/Beechcraft_B1900D B1900D] is available in the [http://liveries.flightgear.org/paintkits.php Paintkits] section of the [http://liveries.flightgear.org/ flightgear liveries database website]. The template comes in svg format (best used with [http://www.inkscape.org inkscape]) features:&lt;br /&gt;
* full rivets, panel lines and stencils details in vector format&lt;br /&gt;
* ambient occlusion layer&lt;br /&gt;
* dirt layer&lt;br /&gt;
Some B1900d liveries made with this template are available to download in the [http://liveries.flightgear.org/aircraft.php?limit=25&amp;amp;display=2&amp;amp;page=0&amp;amp;id=21 flightgear liveries database website]&lt;br /&gt;
&lt;br /&gt;
===Eurofighter EF2000===&lt;br /&gt;
{{#ev:youtube|_MaxljfrPBY||right|A brief in-cockpit demo of the EF2000's FCS}}&lt;br /&gt;
A big milestone has been achieved in the ongoing development of the EF2000, which FGUK's Algernon has been project managing since branching from the Eurofighter Typhoon project some years back: finally, a completely computerised Flight Control System which can simulate its real-life counterpart, with surface control fully autonomous and with an autopilot-based processor interpreting pilot input and commanding the system to fly its maximum performance envelope to obey, but not exceed safety or design limits. While a lot of these features are not yet implemented, we have established a working practice for the core system which allows extra elements to be introduced simply and effectively. &lt;br /&gt;
&lt;br /&gt;
I have heard it said that FG is incapable of simluating such systems - I hope here we have proved otherwise, and indeed that maybe this will be the first truly fly-by-wire aircraft in FlightGear!&lt;br /&gt;
&lt;br /&gt;
Particular thanks for this milestone go to StuartC, who designed the basis of the FDM, and Tomaskom, whose help in fields where I am not much of a master (like mathematics) has been invaluable. Many updates are planned for the EF2000, including a whole new custom paintjob with many liveries, and it is hoped a final, V2.0 release may be available in the later part of the year. You can also get hold of a pre-release copy if you visit the [http://fguk.eu/index.php/forum/index FGUK Forum] and register your interest, for testing purposes - your feedback will be appreciated. Pre-releases will probably not be available until at least September 2014.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74565</id>
		<title>FlightGear Newsletter July 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74565"/>
		<updated>2014-08-01T22:40:55Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* FGUK Mach Loop Challenge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter being written}}&lt;br /&gt;
&lt;br /&gt;
== 5 years of newsletters ==&lt;br /&gt;
[[File:Fgmagfiveyears.png]]&lt;br /&gt;
&lt;br /&gt;
The newsletter started in July 2009. (more to write here, just so we don't forget about it)&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Would it be an idea to provide some sort of weekly or monthly newsletter? I often find out that there are new things I didn't new about or other users that don't follow all topics won't know if there's an awsome plane released. That's why I think we need a newsletter.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Possible things to write about could be:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
- New planes that are released.&amp;lt;br/&amp;gt;&lt;br /&gt;
- New scenery projects (like a new/redrawed airport, things like the corse scenery etc.).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New FG releases (this is not very often, but it should be in the letter if so).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New forum features/subforums and other news from the forum.&amp;lt;br/&amp;gt;&lt;br /&gt;
- News from the wiki (only detailed and large tutorials, or new portals etc. so not every new article ofcourse)&amp;lt;br/&amp;gt;&lt;br /&gt;
- Events that will be held within a short periode or (links to) screenshots of the latest event(s).&amp;lt;br/&amp;gt;&lt;br /&gt;
- The first 3 or 5 pictures of a screenshot contest.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you got other idea's, post in this topic so we could extend the list.&amp;lt;br/&amp;gt;&lt;br /&gt;
I don't really know what's best way to provide the letter. But we have some options:&amp;lt;br/&amp;gt;&lt;br /&gt;
- a topic that's closed, only open for people that are making the letter (at the moment this sounds best to me).&amp;lt;br/&amp;gt;&lt;br /&gt;
- emails send to all forum-users (I don't really like this myself).&amp;lt;br/&amp;gt;&lt;br /&gt;
- a .pdf file with a link on the main page of [http://www.flightgear.org http://www.flightgear.org]&amp;lt;br/&amp;gt;&lt;br /&gt;
- or even something else&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I would like to write the letter, but if there are other people to we might split stuff (someone for scenery news, someone else for aircrafts etc.). Please respond and vote in the poll. Tips/ideas are very much appreciated.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11211#p11211&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The devel-list is great, I'm subscribed to, but not simple to read. It's more like the forum. Usually I don't want to or have time to read through all emails. So I delete most of it without reading anything more than the subject. We don't want to read a lot of topics if we only want to know what function is new and what it does. The the users (so not the developers) want something more ease to read/check. With some screenies of what they will get with a new function etc. So my idea was to make it especially for users.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Events aren't listed on the pages you gave nor some other stuff we could place in the newsletter. In the letter all important news to know will be listed together. If we get this of the ground it could be a great way to reach users to (for events etc.). So I think the newsletter still will be a addition to the lists.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11216#p11216&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |At one time a few years ago we attempted to launch a newsletter.  We had two volunteers, but we never got even the first issue out.  It's a lot of work so we need a pretty dedicated volunteer.  I've heard of other folks using scribus, but even open-office writer would probably be just fine.  Let's not get too caught up in the details of a print/publishing quality layout if we have to sacrifice time for content and just getting the newsletter out on a regular time frame.  There are a bazillion ideas for articles.  I could dust off my unpublished &amp;quot;yasim howto&amp;quot; for instance.  That ended up being about 10 pages (so not newsletter material really) but I could trim it down to a teaser article and we could post the full version on the wiki or something?&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
But if you are willing to get a newsletter rolling, that would be awsome. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11277#p11277&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;curt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue May 27&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Gijs is right when it comes to being a Developer or a User of FG is Vastly different. I know when i first started here i had no clue about lots of developmental things, now i talk of writing .xml files, modelling nasal scripting. That is due to people describing things is basic easy to understand&amp;quot; Laymans&amp;quot; terms and not the kind of language that the DEvs use (understandably of course)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11368#p11368&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;MaverickAlex&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu May 29&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since 16 to 3 voted for Yes I will release the first Newsletter as soon as possible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=15619#p15619&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Aug 21&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Why not simply start a new page on the wiki where anybody can provide contents, so that whenever it's time to send out a newsletter, the draft from the wiki could be taken?&amp;lt;br/&amp;gt;&lt;br /&gt;
That way, it wouldn't be too much work for a single person - more like a &amp;quot;community-driven&amp;quot; newsletter, while this may appear to sort of defeat the purpose, not all newsletter recipients are necessarily also wiki users.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=18015#p18015&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&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;Fri Oct 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Adding backdrop styling to Canvas (by Gijs) ==&lt;br /&gt;
Gijs was looking for an outline that follows the shape of the text, which is what backdrop provides.&lt;br /&gt;
&lt;br /&gt;
For his solution, see the two diffs below. He didn't add the full range of backdrop options, just outline for now [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23500&amp;amp;p=214278#p214275]. &lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |And this is how it looks in FlightGear now :-) Notice how the overlapping waypoints are easier to read (this image is a little exaggerated with all those fixes).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
(see the [http://i.imgur.com/dqMzBS4.png linked image])&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214268#p214268&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: osgText backdrop&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&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;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
commit 5cc0adc778bda1773189b0119d24fbaf5ecd4500&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:26:16 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/simgear/canvas/elements/CanvasText.cxx b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
index d99760a..3a986e1 100644&lt;br /&gt;
--- a/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
+++ b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
@@ -39,6 +39,7 @@ namespace canvas&lt;br /&gt;
       void setLineHeight(float factor);&lt;br /&gt;
       void setFill(const std::string&amp;amp; fill);&lt;br /&gt;
       void setBackgroundColor(const std::string&amp;amp; fill);&lt;br /&gt;
+      void setOutlineColor(const std::string&amp;amp; backdrop);&lt;br /&gt;
 &lt;br /&gt;
       SGVec2i sizeForWidth(int w) const;&lt;br /&gt;
       osg::Vec2 handleHit(const osg::Vec2f&amp;amp; pos);&lt;br /&gt;
@@ -97,6 +98,15 @@ namespace canvas&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   //----------------------------------------------------------------------------&lt;br /&gt;
+  void Text::TextOSG::setOutlineColor(const std::string&amp;amp; backdrop)&lt;br /&gt;
+  {&lt;br /&gt;
+    osg::Vec4 color;&lt;br /&gt;
+    setBackdropType(osgText::Text::OUTLINE);&lt;br /&gt;
+    if( parseColor(backdrop, color) )&lt;br /&gt;
+      setBackdropColor( color );&lt;br /&gt;
+  }&lt;br /&gt;
+&lt;br /&gt;
+  //----------------------------------------------------------------------------&lt;br /&gt;
   // simplified version of osgText::Text::computeGlyphRepresentation() to&lt;br /&gt;
   // just calculate the size for a given weight. Glpyh calculations/creating&lt;br /&gt;
   // is not necessary for this...&lt;br /&gt;
@@ -546,6 +556,7 @@ namespace canvas&lt;br /&gt;
 &lt;br /&gt;
     addStyle(&amp;quot;fill&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setFill, text);&lt;br /&gt;
     addStyle(&amp;quot;background&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setBackgroundColor, text);&lt;br /&gt;
+    addStyle(&amp;quot;backdrop&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setOutlineColor, text);&lt;br /&gt;
     addStyle(&amp;quot;character-size&amp;quot;,&lt;br /&gt;
              &amp;quot;numeric&amp;quot;,&lt;br /&gt;
              static_cast&amp;lt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;commit 838cabd2a551834cbcac2b3edd21500409ff2e98&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:27:50 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/Nasal/canvas/api.nas b/Nasal/canvas/api.nas&lt;br /&gt;
index 8bc12d8..3047dbf 100644&lt;br /&gt;
--- a/Nasal/canvas/api.nas&lt;br /&gt;
+++ b/Nasal/canvas/api.nas&lt;br /&gt;
@@ -634,6 +634,8 @@ var Text = {&lt;br /&gt;
 &lt;br /&gt;
   setColorFill: func me.set('background', _getColor(arg)),&lt;br /&gt;
   getColorFill: func me.get('background'),&lt;br /&gt;
+  &lt;br /&gt;
+  setBackdropColor: func me.set('backdrop', _getColor(arg)),&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 # Path&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCanvas Updates ==&lt;br /&gt;
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|600px|thumb|checking how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup named &amp;quot;main-aircraft&amp;quot; to easily make the whole shebang optional using a single --prop for &amp;quot;FGCanvas&amp;quot; use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23499]]]&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since the early Canvas days, we started toying with the idea of providing an FGPanel-equivalent integrated right into FlightGear using the Canvas system:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Creating a 'fgcanvas' client analogous to 'fgpanel' should be doable too, since the canvas simply renders to a single osg-Camera. Unlike fgpanel this will require OSG instead of raw GL of course, but that's the price we pay for unifying the rendering backend.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If we're rendering each display as an OSG sub-camera, extracting that logic and   wrapping it in a stand-alone OSG viewer should be simplicity itself -  &amp;lt;br/&amp;gt;&lt;br /&gt;
and so long as it's driven by properties, those can be sent over a socket. That's an approach which seems a lot more bearable to me than  &amp;lt;br/&amp;gt;&lt;br /&gt;
sending per-frame pixel surfaces over shared memory or sockets / pipes.}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The whole discussion dates back to the early FGPanel days:&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I am going to be overhauls the 2D panels / displays code in the near future, and was planning to create exactly the same idea - a standalone app that can run a single panel - good to know the idea works! (I'm also planning to internally port the 2D panel code to the new system, but that should be invisible to most people).  It will be part of the main FG codebase, not a fork. As you say, the hope is to make fggc and some related things obsolete, since the same XML+Nasal can be used in the main sim or stand-alone. Anyway, all off-topic!&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=101044#p101044&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FSWeekend 2010&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;zakalawe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Nov 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since then, we made some first FGCanvas experiments, and things proved to be fairly tricky, because many C++ subsystems were not exactly easy to make entirely optional, and because of all the implicit assumptions in Nasal code that is unconditionally-loaded from $FG_ROOT/Nasal, and which assumes to have a full session up and running:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Yeah, the stand alone mode won't be to easy. Maybe for now we should use a powerful enough computer which can also run the unneeded parts Separating the parts will be very important, not only for FGCanvas...}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Fast forward a year later, many of those show stoppers have already been resolved, mainly thanks to the work done by Zakalawe and TheTom, who've both been working on reset&amp;amp;amp;re-init, but also overall better run-time re-initialization support, as can be seen in the screen-shot below:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[FGCanvas]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Patching-fg-3.2-to-make-more-subsystems-optional.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Most subsystems still running in the screen shot shown here can be considered to be essential now, the only remaining subsystems that still need to be decoupled are:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; flight (FDM)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; scenery (tile manager, ephemeris)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;view manager&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lighting&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;terrasync&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Otherwise, it's mostly Nasal code in $FG_ROOT/Nasal where dependencies need to be better established and formalized to get rid of implicit assumptions regarding availability of certain subsystems (e.g. view.nas)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |This means that there's basically just a handful of subsystems that now need to be made optional, and that '''FGCanvas''' will actually become reality. I am going to help rework MapStructure and the ND code in order to ensure that there's no implicit assumptions on running instruments locally, so that we can eventually also drive displays remotely via properties. Roughly a year ago, I already posted some screen shots showing a FG instance that replicates a canvas property tree via telnet's &amp;quot;subscribe&amp;quot; command - it was a hack, but it worked well enough. Even though using UDP-based PUB/SUB, or maybe HLA, should probably scale better. Given the recent progress in this department, I am guessing that it may take us another ~2-3 release cycles until this materializes &amp;quot;automagically&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
In the mid-term, I would hope that we could agree to provide some dedicated API for implementing and initializing subsystems, to ensure that most future subsystems can be easily made optional/run-time configurable, which will entail establishing dependencies among subsystems in some &amp;quot;run-levels&amp;quot;-like setup, which will also touch Nasal bootstrapping, i.e. the stuff we're currently doing in FGNasalSys::init(), but which we're hoping to move into scripting space.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'll revisit bootstrapping soon, because it's the only sane way to resolve dependencies (intra-module or even subsystem support). FGCnvas definitely sounds like an excellent idea.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214207#p214207&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FGCanvas Experiments &amp;amp; Updates&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Philosopher&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== A Canvas based GNS 530 GPS ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |After a long hiatus (3 years!) I felt like doing some flightgear aircraft modeling again. 3 Years ago when I started the panel for my Bo, I couldn't find a nice, modern, panel mount IFR GPS. The King GPS we have is ancient, and the Garmin 196, while nicely modelled, Is a VFR handheld. So I decided to start with this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Gns530-prototype-07-2014.png|300px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I know the GNS530 is already kind of outdated as well, but together with its smaller sibling, the GNS430 it's still much more widespread than its successor (GTN650/750). Also the GTN650/750 use touch screen interfaces, which I'm not really a fan of.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Right now this is very much work in progress. It's also the first time I wrote more than 5 lines of nasal, so I was basically learning the language while I wrote this. Still, I think it's far enough to present it here and let people try it and send critique and suggestions. Learn more at [[Garmin GNS530]]...&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=215254#p215254&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Garmin gns530&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;cbendele&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Jul 23&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Nasal: Making safer base-class calls ===&lt;br /&gt;
There's a lot of Nasal code floating around doing the equivalent of this when using multiple inheritance to make base class calls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
object.parents[x].method();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Internally, this works such that Nasal's inheritance mechanism relies on a so called '''parents''' vector that contains a list of classes that are used for field/method look-ups. This vector can be accessed using numeric indexes - thus, the correct value for '''x''' is directly affected by the way the parents vector is set up, i.e. its internal class ordering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var myClass = {parents:[FirstBaseClass, SecondBaseClass, ThirdBaseClass] };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, this practice of using indexed parents access to look up a base class should be considered a &amp;quot;hack&amp;quot; and discouraged, because it's not a particularly robust or even safe way to call a superclass, simply because it doesn't tell Nasal anything about the name of the class you're trying to call, but merely its index in the inheritance/lookup vector, which may be subject to change (e.g. due to refactoring). Thus, we encourage people to actually use Nasal's built-in '''call()''' API to accomplish the same thing in a more robust fashion:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Nasal that you want it to call a certain method in a particular class - and if that fails, you'll get better diagnostics (error messages), too. The main problem here is that the other approach is pretty vulnerable when restructuring your code, as it is heavily reliant on inheritance '''ordering''' - which is something that isn't exactly straightforward: code shouldn't &amp;quot;break&amp;quot; just because the inheritance ordering is modified. Thus, please try to use the latter idiom. If in doubt, just get in touch via the Nasal sub forum.&lt;br /&gt;
 &lt;br /&gt;
To pass argument to the method, just add them to the 2nd argument, i.e. the empty vector:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To pass a custom namespace environment, you can use this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var namespace = {};&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, namespace);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would be equivalent to this example using an anonymous namespace:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {} );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(If you want to preserve/modify the namespace, it makes sense not use an anonymous namespace though).&lt;br /&gt;
&lt;br /&gt;
To do exception handling, you can pass an empty vector and check its size (&amp;gt;=1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var err = [];&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {}, err );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also declare the variable expression inline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, var ns={}, var err=[] );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
else {&lt;br /&gt;
print(&amp;quot;Success, namespace is:&amp;quot;);&lt;br /&gt;
debug.dump(ns);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCamera ==&lt;br /&gt;
Development of FGCamera continues. The script is being redesigned to be compatible with default view system.&lt;br /&gt;
Upcoming version (FGCamera v1) will have new camera mode: &amp;quot;world-view&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|hebx8WdXHa0}}&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
=== Paro Int. Airport - VQPR ===&lt;br /&gt;
[[File:VQPR PARO AIRPORT.jpg|320px|right]]&lt;br /&gt;
{{#ev:youtube|itNY9YUmY3M||right|domestic flight from Bumthang to Paro}}&lt;br /&gt;
Works have been added to [[Paro Airport|Paro International Airport]] (VQPR) with terminal, tower, hangars and other buildings. Now users you can enjoy the apron lights, the reference points like Mr. Smiths House or other POIs like the Sangchen Choekhor Monastery. [[TerraSync]] has it all! It is not necessary to download any custom scenery. More information can be found on the wiki page: [[Paro Airport]]. This is the first airport of the Bhutanese Series. Three new domestic airports like Gelephu Airport (VQGP) are currently being developed. Work also continues on navaids for the Kingdom of Bhutan - of course only in the FlightGear-World. Everybody is invited to follow the stage of development at the designers wiki user page ([[User:Fgjosh|Fgjosh]]).&lt;br /&gt;
{{-}}&lt;br /&gt;
== Support for Nasal in Notepad++ ==&lt;br /&gt;
[[File:Highlight parse.png|400px|thumb|Screenshot of [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++]]]&lt;br /&gt;
Programming in Nasal on Windows can now be a lot friendlier with [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++].&amp;lt;br /&amp;gt;&lt;br /&gt;
Provides comprehensive syntax highlighting and class/function listing in a hierarchical fashion.&amp;lt;br/&amp;gt;&lt;br /&gt;
Syntax highlighting is available for other editors as well, for more information see [[Howto:Syntax highlighting for Nasal]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Primary Flight Displays for Android Devices ==&lt;br /&gt;
Android devices are light, thin, and offer a very decent computing power and graphics processing. They are battery operated and can connect to other devices through WiFi  (there is no need of cables). They are, in fact, perfect for integration in home-made cockpits. This new project offers the opportunity of extending their usage in the form of Primary Flight Displays and Navigation displays for airliners in Fligthgear. There are currently 4 Primary Flight Display (PFD) Apps in &amp;quot;early production&amp;quot; state: Basic, Boeing 777, Boeing 787-8, and Airbus 330. The Basic App is at this moment available in the Android Play Store. The other Apps will be uploaded during the next days provided that no serious problems are found in the Basic App. You are more than welcome to test it and give feedback! Visit the project website for more information: https://sites.google.com/site/flightgearandroid/&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jd61x-_QNpM}}&lt;br /&gt;
{{#ev:youtube|Y6M9SyMZSCk}}&lt;br /&gt;
{{#ev:youtube|N1D--DZjvtE}}&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Parachute for YASim (Thrusters &amp;amp; Nasal) ==&lt;br /&gt;
[[File:V-1 Parachute.png|350px|thumb|V-1falling slowly with a parachute]]&lt;br /&gt;
Tomaskom developed a realistically behaving parachute for YASim aircraft. It is capable of a slow and stable fall and can recover the aircraft even from very severe rotations. &amp;lt;br/&amp;gt;&lt;br /&gt;
It all began as a question about a parachute which ended by brainstorming of the best approach, you can read the related thread here: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/forum/development-hangar/4546-external-reactions-forces-in-yasim &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Re-implementing the code elsewhere is very easy, most of it can be blindly copied with just some adjustments (trigger binding, chute area, ...). There is a thread on the main forum with HOWTO for implementation, see [http://forum.flightgear.org/viewtopic.php?f=49&amp;amp;p=215650&amp;amp;sid=97b2010406d31b6fc2fabc7cf8b1c8f8 Parachute for YASim (Thrusters &amp;amp; Nasal)]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Currently there is a reference implementation in a special version of the V-1 flying bomb: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/11-other-objects-and-vehicles/400-v-1-flying-bomb &amp;lt;br/&amp;gt;&lt;br /&gt;
The drone (Firebee) for which the parachute was requested is not yet publicly available. &amp;lt;br/&amp;gt;&lt;br /&gt;
You can also get an idea of it's stabilization properties from this video: &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/81ns5ib5tf3y74t/V-1_Parachute.avi&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
=== Mainair Flash 2 Alpha ===&lt;br /&gt;
The microlight [[Mainair Flash 2 Alpha]] is now weightshift controlled and has a new wing model.&lt;br /&gt;
* redesigned FDM with weightshift-control&lt;br /&gt;
* new wing model&lt;br /&gt;
* customizable controls&lt;br /&gt;
* weight and balance gui&lt;br /&gt;
* animated cockpit view&lt;br /&gt;
* animated pilot and an optional passenger&lt;br /&gt;
* emergency parachute&lt;br /&gt;
* multiplayer ready&lt;br /&gt;
* aerotow hitch&lt;br /&gt;
[[File:Flash2a_in_Air2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Aero L-159 ALCA ===&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM||right|L-159 Disintegration}}&lt;br /&gt;
A first public version of the L-159 ALCA (Advanced Light Combat Aircraft) has been released. The aircraft is still in alpha stage and fairly incomplete (there are some changes to the model planned, so no texturing yet, no cockpit instruments), but it already has many advanced and sometimes unique features, most notably the disintegration animations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Some of the most important features include: &lt;br /&gt;
* Unique model disintegration animation (video on the right, see details here: http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=23681)&lt;br /&gt;
* Cannons with realistic fire rate and tracers once every few rounds, visible/audible over MP (hit transmission is a work in progress)&lt;br /&gt;
* Fully automated fuel system with automatic source switching and fuel level balancing&lt;br /&gt;
* Carefully tuned lights including Rembrandt support, light intensity and flares fading in daylight. You may need to increase the Lights shader setting in order to see all effects with Rembrandt on.&lt;br /&gt;
* Most payload options modeled, including optional experimental fixed fuel probe&lt;br /&gt;
* I consider the FDM (YASim) almost complete and generally well tuned, handling changes a lot with heavy payload&lt;br /&gt;
Download available from the FGUK hangar: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/8-military-jets/409-l-159-alca&lt;br /&gt;
[[File:L-159.png|300px|thumbnail|left|L-159 ALCA]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Events ==&lt;br /&gt;
=== FGUK Mach Loop Challenge ===&lt;br /&gt;
'' Saturday 9th August 2014 - Llanbedr Airfield (EGOD) - 1900 G/U/Z''&lt;br /&gt;
{{-}}&lt;br /&gt;
{{#ev:youtube|XK0Y1sfijLY||right|A trip around the loop with the Vulcan B2}}&lt;br /&gt;
[http://www.fguk.eu FGUK] will be taking the Mach Loop Challenge on Saturday 9th August, as flown by BAE in their Eurofighter simulator at Warton. The world-famous low flying route in North Wales, on the doorstep of FGUK's Llanbedr headquarters, is a 26 mile course threading the valleys and hills around Machynlleth. Can you consistently lower your time and beat the other pilots around the course without breaking the sound barrier and startling the sheep?&lt;br /&gt;
&lt;br /&gt;
A custom AI scenario displays the route with fly-through pointers, checks for adherence to the rules, and announces and records your time - just hand in your score file, and you will be included in the results when published in the following week. More information and updates in the weeks either side of the 9th on FGUK's [https://www.facebook.com/FlightGearUK Facebook page] and [https://twitter.com/FlightGearUK Twitter account]. As always at the Mach Loop, there will be photography and video and the event will be streamed live on our [https://www.youtube.com/channel/UCBb-2WXJuAOVh8QvsdVNrrQ YouTube channel].&lt;br /&gt;
&lt;br /&gt;
Recommended choices to fly the loop competitively are Supersonic single and twin seaters, but you can bring anything within reason that doesn't make you a danger to others. Assemble at FGUK Llanbedr (EGOD) at 1900 G/U/Z (8pm BST). If you're planning to bring something unusual, we ask you to notify us in the forum to make sure all the models are visible to the camera.&lt;br /&gt;
&lt;br /&gt;
A full briefing for pilots will be published on Sunday, along with the definitive AI scenario for the competition. Check the [http://fguk.eu/index.php/12-flight-articles/saturday-flight-articles/21-saturday-9th-august-mach-loop-challenge ongoing event article] and the [http://fguk.eu/index.php/forum/saturday-night-flying/4659-flightnight-9-8-14-mach-loop-challenge?start=40#16865 forum thread] to keep up to date.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74564</id>
		<title>FlightGear Newsletter July 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74564"/>
		<updated>2014-08-01T22:35:24Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Multiplayer Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter being written}}&lt;br /&gt;
&lt;br /&gt;
== 5 years of newsletters ==&lt;br /&gt;
[[File:Fgmagfiveyears.png]]&lt;br /&gt;
&lt;br /&gt;
The newsletter started in July 2009. (more to write here, just so we don't forget about it)&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Would it be an idea to provide some sort of weekly or monthly newsletter? I often find out that there are new things I didn't new about or other users that don't follow all topics won't know if there's an awsome plane released. That's why I think we need a newsletter.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Possible things to write about could be:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
- New planes that are released.&amp;lt;br/&amp;gt;&lt;br /&gt;
- New scenery projects (like a new/redrawed airport, things like the corse scenery etc.).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New FG releases (this is not very often, but it should be in the letter if so).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New forum features/subforums and other news from the forum.&amp;lt;br/&amp;gt;&lt;br /&gt;
- News from the wiki (only detailed and large tutorials, or new portals etc. so not every new article ofcourse)&amp;lt;br/&amp;gt;&lt;br /&gt;
- Events that will be held within a short periode or (links to) screenshots of the latest event(s).&amp;lt;br/&amp;gt;&lt;br /&gt;
- The first 3 or 5 pictures of a screenshot contest.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you got other idea's, post in this topic so we could extend the list.&amp;lt;br/&amp;gt;&lt;br /&gt;
I don't really know what's best way to provide the letter. But we have some options:&amp;lt;br/&amp;gt;&lt;br /&gt;
- a topic that's closed, only open for people that are making the letter (at the moment this sounds best to me).&amp;lt;br/&amp;gt;&lt;br /&gt;
- emails send to all forum-users (I don't really like this myself).&amp;lt;br/&amp;gt;&lt;br /&gt;
- a .pdf file with a link on the main page of [http://www.flightgear.org http://www.flightgear.org]&amp;lt;br/&amp;gt;&lt;br /&gt;
- or even something else&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I would like to write the letter, but if there are other people to we might split stuff (someone for scenery news, someone else for aircrafts etc.). Please respond and vote in the poll. Tips/ideas are very much appreciated.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11211#p11211&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The devel-list is great, I'm subscribed to, but not simple to read. It's more like the forum. Usually I don't want to or have time to read through all emails. So I delete most of it without reading anything more than the subject. We don't want to read a lot of topics if we only want to know what function is new and what it does. The the users (so not the developers) want something more ease to read/check. With some screenies of what they will get with a new function etc. So my idea was to make it especially for users.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Events aren't listed on the pages you gave nor some other stuff we could place in the newsletter. In the letter all important news to know will be listed together. If we get this of the ground it could be a great way to reach users to (for events etc.). So I think the newsletter still will be a addition to the lists.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11216#p11216&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |At one time a few years ago we attempted to launch a newsletter.  We had two volunteers, but we never got even the first issue out.  It's a lot of work so we need a pretty dedicated volunteer.  I've heard of other folks using scribus, but even open-office writer would probably be just fine.  Let's not get too caught up in the details of a print/publishing quality layout if we have to sacrifice time for content and just getting the newsletter out on a regular time frame.  There are a bazillion ideas for articles.  I could dust off my unpublished &amp;quot;yasim howto&amp;quot; for instance.  That ended up being about 10 pages (so not newsletter material really) but I could trim it down to a teaser article and we could post the full version on the wiki or something?&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
But if you are willing to get a newsletter rolling, that would be awsome. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11277#p11277&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;curt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue May 27&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Gijs is right when it comes to being a Developer or a User of FG is Vastly different. I know when i first started here i had no clue about lots of developmental things, now i talk of writing .xml files, modelling nasal scripting. That is due to people describing things is basic easy to understand&amp;quot; Laymans&amp;quot; terms and not the kind of language that the DEvs use (understandably of course)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11368#p11368&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;MaverickAlex&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu May 29&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since 16 to 3 voted for Yes I will release the first Newsletter as soon as possible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=15619#p15619&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Aug 21&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Why not simply start a new page on the wiki where anybody can provide contents, so that whenever it's time to send out a newsletter, the draft from the wiki could be taken?&amp;lt;br/&amp;gt;&lt;br /&gt;
That way, it wouldn't be too much work for a single person - more like a &amp;quot;community-driven&amp;quot; newsletter, while this may appear to sort of defeat the purpose, not all newsletter recipients are necessarily also wiki users.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=18015#p18015&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&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;Fri Oct 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Adding backdrop styling to Canvas (by Gijs) ==&lt;br /&gt;
Gijs was looking for an outline that follows the shape of the text, which is what backdrop provides.&lt;br /&gt;
&lt;br /&gt;
For his solution, see the two diffs below. He didn't add the full range of backdrop options, just outline for now [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23500&amp;amp;p=214278#p214275]. &lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |And this is how it looks in FlightGear now :-) Notice how the overlapping waypoints are easier to read (this image is a little exaggerated with all those fixes).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
(see the [http://i.imgur.com/dqMzBS4.png linked image])&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214268#p214268&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: osgText backdrop&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&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;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
commit 5cc0adc778bda1773189b0119d24fbaf5ecd4500&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:26:16 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/simgear/canvas/elements/CanvasText.cxx b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
index d99760a..3a986e1 100644&lt;br /&gt;
--- a/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
+++ b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
@@ -39,6 +39,7 @@ namespace canvas&lt;br /&gt;
       void setLineHeight(float factor);&lt;br /&gt;
       void setFill(const std::string&amp;amp; fill);&lt;br /&gt;
       void setBackgroundColor(const std::string&amp;amp; fill);&lt;br /&gt;
+      void setOutlineColor(const std::string&amp;amp; backdrop);&lt;br /&gt;
 &lt;br /&gt;
       SGVec2i sizeForWidth(int w) const;&lt;br /&gt;
       osg::Vec2 handleHit(const osg::Vec2f&amp;amp; pos);&lt;br /&gt;
@@ -97,6 +98,15 @@ namespace canvas&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   //----------------------------------------------------------------------------&lt;br /&gt;
+  void Text::TextOSG::setOutlineColor(const std::string&amp;amp; backdrop)&lt;br /&gt;
+  {&lt;br /&gt;
+    osg::Vec4 color;&lt;br /&gt;
+    setBackdropType(osgText::Text::OUTLINE);&lt;br /&gt;
+    if( parseColor(backdrop, color) )&lt;br /&gt;
+      setBackdropColor( color );&lt;br /&gt;
+  }&lt;br /&gt;
+&lt;br /&gt;
+  //----------------------------------------------------------------------------&lt;br /&gt;
   // simplified version of osgText::Text::computeGlyphRepresentation() to&lt;br /&gt;
   // just calculate the size for a given weight. Glpyh calculations/creating&lt;br /&gt;
   // is not necessary for this...&lt;br /&gt;
@@ -546,6 +556,7 @@ namespace canvas&lt;br /&gt;
 &lt;br /&gt;
     addStyle(&amp;quot;fill&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setFill, text);&lt;br /&gt;
     addStyle(&amp;quot;background&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setBackgroundColor, text);&lt;br /&gt;
+    addStyle(&amp;quot;backdrop&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setOutlineColor, text);&lt;br /&gt;
     addStyle(&amp;quot;character-size&amp;quot;,&lt;br /&gt;
              &amp;quot;numeric&amp;quot;,&lt;br /&gt;
              static_cast&amp;lt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;commit 838cabd2a551834cbcac2b3edd21500409ff2e98&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:27:50 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/Nasal/canvas/api.nas b/Nasal/canvas/api.nas&lt;br /&gt;
index 8bc12d8..3047dbf 100644&lt;br /&gt;
--- a/Nasal/canvas/api.nas&lt;br /&gt;
+++ b/Nasal/canvas/api.nas&lt;br /&gt;
@@ -634,6 +634,8 @@ var Text = {&lt;br /&gt;
 &lt;br /&gt;
   setColorFill: func me.set('background', _getColor(arg)),&lt;br /&gt;
   getColorFill: func me.get('background'),&lt;br /&gt;
+  &lt;br /&gt;
+  setBackdropColor: func me.set('backdrop', _getColor(arg)),&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 # Path&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCanvas Updates ==&lt;br /&gt;
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|600px|thumb|checking how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup named &amp;quot;main-aircraft&amp;quot; to easily make the whole shebang optional using a single --prop for &amp;quot;FGCanvas&amp;quot; use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23499]]]&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since the early Canvas days, we started toying with the idea of providing an FGPanel-equivalent integrated right into FlightGear using the Canvas system:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Creating a 'fgcanvas' client analogous to 'fgpanel' should be doable too, since the canvas simply renders to a single osg-Camera. Unlike fgpanel this will require OSG instead of raw GL of course, but that's the price we pay for unifying the rendering backend.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If we're rendering each display as an OSG sub-camera, extracting that logic and   wrapping it in a stand-alone OSG viewer should be simplicity itself -  &amp;lt;br/&amp;gt;&lt;br /&gt;
and so long as it's driven by properties, those can be sent over a socket. That's an approach which seems a lot more bearable to me than  &amp;lt;br/&amp;gt;&lt;br /&gt;
sending per-frame pixel surfaces over shared memory or sockets / pipes.}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The whole discussion dates back to the early FGPanel days:&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I am going to be overhauls the 2D panels / displays code in the near future, and was planning to create exactly the same idea - a standalone app that can run a single panel - good to know the idea works! (I'm also planning to internally port the 2D panel code to the new system, but that should be invisible to most people).  It will be part of the main FG codebase, not a fork. As you say, the hope is to make fggc and some related things obsolete, since the same XML+Nasal can be used in the main sim or stand-alone. Anyway, all off-topic!&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=101044#p101044&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FSWeekend 2010&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;zakalawe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Nov 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since then, we made some first FGCanvas experiments, and things proved to be fairly tricky, because many C++ subsystems were not exactly easy to make entirely optional, and because of all the implicit assumptions in Nasal code that is unconditionally-loaded from $FG_ROOT/Nasal, and which assumes to have a full session up and running:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Yeah, the stand alone mode won't be to easy. Maybe for now we should use a powerful enough computer which can also run the unneeded parts Separating the parts will be very important, not only for FGCanvas...}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Fast forward a year later, many of those show stoppers have already been resolved, mainly thanks to the work done by Zakalawe and TheTom, who've both been working on reset&amp;amp;amp;re-init, but also overall better run-time re-initialization support, as can be seen in the screen-shot below:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[FGCanvas]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Patching-fg-3.2-to-make-more-subsystems-optional.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Most subsystems still running in the screen shot shown here can be considered to be essential now, the only remaining subsystems that still need to be decoupled are:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; flight (FDM)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; scenery (tile manager, ephemeris)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;view manager&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lighting&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;terrasync&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Otherwise, it's mostly Nasal code in $FG_ROOT/Nasal where dependencies need to be better established and formalized to get rid of implicit assumptions regarding availability of certain subsystems (e.g. view.nas)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |This means that there's basically just a handful of subsystems that now need to be made optional, and that '''FGCanvas''' will actually become reality. I am going to help rework MapStructure and the ND code in order to ensure that there's no implicit assumptions on running instruments locally, so that we can eventually also drive displays remotely via properties. Roughly a year ago, I already posted some screen shots showing a FG instance that replicates a canvas property tree via telnet's &amp;quot;subscribe&amp;quot; command - it was a hack, but it worked well enough. Even though using UDP-based PUB/SUB, or maybe HLA, should probably scale better. Given the recent progress in this department, I am guessing that it may take us another ~2-3 release cycles until this materializes &amp;quot;automagically&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
In the mid-term, I would hope that we could agree to provide some dedicated API for implementing and initializing subsystems, to ensure that most future subsystems can be easily made optional/run-time configurable, which will entail establishing dependencies among subsystems in some &amp;quot;run-levels&amp;quot;-like setup, which will also touch Nasal bootstrapping, i.e. the stuff we're currently doing in FGNasalSys::init(), but which we're hoping to move into scripting space.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'll revisit bootstrapping soon, because it's the only sane way to resolve dependencies (intra-module or even subsystem support). FGCnvas definitely sounds like an excellent idea.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214207#p214207&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FGCanvas Experiments &amp;amp; Updates&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Philosopher&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== A Canvas based GNS 530 GPS ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |After a long hiatus (3 years!) I felt like doing some flightgear aircraft modeling again. 3 Years ago when I started the panel for my Bo, I couldn't find a nice, modern, panel mount IFR GPS. The King GPS we have is ancient, and the Garmin 196, while nicely modelled, Is a VFR handheld. So I decided to start with this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Gns530-prototype-07-2014.png|300px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I know the GNS530 is already kind of outdated as well, but together with its smaller sibling, the GNS430 it's still much more widespread than its successor (GTN650/750). Also the GTN650/750 use touch screen interfaces, which I'm not really a fan of.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Right now this is very much work in progress. It's also the first time I wrote more than 5 lines of nasal, so I was basically learning the language while I wrote this. Still, I think it's far enough to present it here and let people try it and send critique and suggestions. Learn more at [[Garmin GNS530]]...&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=215254#p215254&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Garmin gns530&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;cbendele&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Jul 23&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Nasal: Making safer base-class calls ===&lt;br /&gt;
There's a lot of Nasal code floating around doing the equivalent of this when using multiple inheritance to make base class calls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
object.parents[x].method();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Internally, this works such that Nasal's inheritance mechanism relies on a so called '''parents''' vector that contains a list of classes that are used for field/method look-ups. This vector can be accessed using numeric indexes - thus, the correct value for '''x''' is directly affected by the way the parents vector is set up, i.e. its internal class ordering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var myClass = {parents:[FirstBaseClass, SecondBaseClass, ThirdBaseClass] };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, this practice of using indexed parents access to look up a base class should be considered a &amp;quot;hack&amp;quot; and discouraged, because it's not a particularly robust or even safe way to call a superclass, simply because it doesn't tell Nasal anything about the name of the class you're trying to call, but merely its index in the inheritance/lookup vector, which may be subject to change (e.g. due to refactoring). Thus, we encourage people to actually use Nasal's built-in '''call()''' API to accomplish the same thing in a more robust fashion:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Nasal that you want it to call a certain method in a particular class - and if that fails, you'll get better diagnostics (error messages), too. The main problem here is that the other approach is pretty vulnerable when restructuring your code, as it is heavily reliant on inheritance '''ordering''' - which is something that isn't exactly straightforward: code shouldn't &amp;quot;break&amp;quot; just because the inheritance ordering is modified. Thus, please try to use the latter idiom. If in doubt, just get in touch via the Nasal sub forum.&lt;br /&gt;
 &lt;br /&gt;
To pass argument to the method, just add them to the 2nd argument, i.e. the empty vector:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To pass a custom namespace environment, you can use this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var namespace = {};&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, namespace);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would be equivalent to this example using an anonymous namespace:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {} );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(If you want to preserve/modify the namespace, it makes sense not use an anonymous namespace though).&lt;br /&gt;
&lt;br /&gt;
To do exception handling, you can pass an empty vector and check its size (&amp;gt;=1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var err = [];&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {}, err );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also declare the variable expression inline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, var ns={}, var err=[] );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
else {&lt;br /&gt;
print(&amp;quot;Success, namespace is:&amp;quot;);&lt;br /&gt;
debug.dump(ns);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCamera ==&lt;br /&gt;
Development of FGCamera continues. The script is being redesigned to be compatible with default view system.&lt;br /&gt;
Upcoming version (FGCamera v1) will have new camera mode: &amp;quot;world-view&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|hebx8WdXHa0}}&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
=== Paro Int. Airport - VQPR ===&lt;br /&gt;
[[File:VQPR PARO AIRPORT.jpg|320px|right]]&lt;br /&gt;
{{#ev:youtube|itNY9YUmY3M||right|domestic flight from Bumthang to Paro}}&lt;br /&gt;
Works have been added to [[Paro Airport|Paro International Airport]] (VQPR) with terminal, tower, hangars and other buildings. Now users you can enjoy the apron lights, the reference points like Mr. Smiths House or other POIs like the Sangchen Choekhor Monastery. [[TerraSync]] has it all! It is not necessary to download any custom scenery. More information can be found on the wiki page: [[Paro Airport]]. This is the first airport of the Bhutanese Series. Three new domestic airports like Gelephu Airport (VQGP) are currently being developed. Work also continues on navaids for the Kingdom of Bhutan - of course only in the FlightGear-World. Everybody is invited to follow the stage of development at the designers wiki user page ([[User:Fgjosh|Fgjosh]]).&lt;br /&gt;
{{-}}&lt;br /&gt;
== Support for Nasal in Notepad++ ==&lt;br /&gt;
[[File:Highlight parse.png|400px|thumb|Screenshot of [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++]]]&lt;br /&gt;
Programming in Nasal on Windows can now be a lot friendlier with [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++].&amp;lt;br /&amp;gt;&lt;br /&gt;
Provides comprehensive syntax highlighting and class/function listing in a hierarchical fashion.&amp;lt;br/&amp;gt;&lt;br /&gt;
Syntax highlighting is available for other editors as well, for more information see [[Howto:Syntax highlighting for Nasal]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Primary Flight Displays for Android Devices ==&lt;br /&gt;
Android devices are light, thin, and offer a very decent computing power and graphics processing. They are battery operated and can connect to other devices through WiFi  (there is no need of cables). They are, in fact, perfect for integration in home-made cockpits. This new project offers the opportunity of extending their usage in the form of Primary Flight Displays and Navigation displays for airliners in Fligthgear. There are currently 4 Primary Flight Display (PFD) Apps in &amp;quot;early production&amp;quot; state: Basic, Boeing 777, Boeing 787-8, and Airbus 330. The Basic App is at this moment available in the Android Play Store. The other Apps will be uploaded during the next days provided that no serious problems are found in the Basic App. You are more than welcome to test it and give feedback! Visit the project website for more information: https://sites.google.com/site/flightgearandroid/&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jd61x-_QNpM}}&lt;br /&gt;
{{#ev:youtube|Y6M9SyMZSCk}}&lt;br /&gt;
{{#ev:youtube|N1D--DZjvtE}}&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Parachute for YASim (Thrusters &amp;amp; Nasal) ==&lt;br /&gt;
[[File:V-1 Parachute.png|350px|thumb|V-1falling slowly with a parachute]]&lt;br /&gt;
Tomaskom developed a realistically behaving parachute for YASim aircraft. It is capable of a slow and stable fall and can recover the aircraft even from very severe rotations. &amp;lt;br/&amp;gt;&lt;br /&gt;
It all began as a question about a parachute which ended by brainstorming of the best approach, you can read the related thread here: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/forum/development-hangar/4546-external-reactions-forces-in-yasim &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Re-implementing the code elsewhere is very easy, most of it can be blindly copied with just some adjustments (trigger binding, chute area, ...). There is a thread on the main forum with HOWTO for implementation, see [http://forum.flightgear.org/viewtopic.php?f=49&amp;amp;p=215650&amp;amp;sid=97b2010406d31b6fc2fabc7cf8b1c8f8 Parachute for YASim (Thrusters &amp;amp; Nasal)]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Currently there is a reference implementation in a special version of the V-1 flying bomb: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/11-other-objects-and-vehicles/400-v-1-flying-bomb &amp;lt;br/&amp;gt;&lt;br /&gt;
The drone (Firebee) for which the parachute was requested is not yet publicly available. &amp;lt;br/&amp;gt;&lt;br /&gt;
You can also get an idea of it's stabilization properties from this video: &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/81ns5ib5tf3y74t/V-1_Parachute.avi&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
=== Mainair Flash 2 Alpha ===&lt;br /&gt;
The microlight [[Mainair Flash 2 Alpha]] is now weightshift controlled and has a new wing model.&lt;br /&gt;
* redesigned FDM with weightshift-control&lt;br /&gt;
* new wing model&lt;br /&gt;
* customizable controls&lt;br /&gt;
* weight and balance gui&lt;br /&gt;
* animated cockpit view&lt;br /&gt;
* animated pilot and an optional passenger&lt;br /&gt;
* emergency parachute&lt;br /&gt;
* multiplayer ready&lt;br /&gt;
* aerotow hitch&lt;br /&gt;
[[File:Flash2a_in_Air2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Aero L-159 ALCA ===&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM||right|L-159 Disintegration}}&lt;br /&gt;
A first public version of the L-159 ALCA (Advanced Light Combat Aircraft) has been released. The aircraft is still in alpha stage and fairly incomplete (there are some changes to the model planned, so no texturing yet, no cockpit instruments), but it already has many advanced and sometimes unique features, most notably the disintegration animations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Some of the most important features include: &lt;br /&gt;
* Unique model disintegration animation (video on the right, see details here: http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=23681)&lt;br /&gt;
* Cannons with realistic fire rate and tracers once every few rounds, visible/audible over MP (hit transmission is a work in progress)&lt;br /&gt;
* Fully automated fuel system with automatic source switching and fuel level balancing&lt;br /&gt;
* Carefully tuned lights including Rembrandt support, light intensity and flares fading in daylight. You may need to increase the Lights shader setting in order to see all effects with Rembrandt on.&lt;br /&gt;
* Most payload options modeled, including optional experimental fixed fuel probe&lt;br /&gt;
* I consider the FDM (YASim) almost complete and generally well tuned, handling changes a lot with heavy payload&lt;br /&gt;
Download available from the FGUK hangar: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/8-military-jets/409-l-159-alca&lt;br /&gt;
[[File:L-159.png|300px|thumbnail|left|L-159 ALCA]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Events ==&lt;br /&gt;
=== FGUK Mach Loop Challenge ===&lt;br /&gt;
'' Saturday 9th August 2014 - Llanbedr Airfield (EGOD) - 1900 G/U/Z''&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[http://www.fguk.eu FGUK] will be taking the Mach Loop Challenge on Saturday 9th August, as flown by BAE in their Eurofighter simulator at Warton. The world-famous low flying route in North Wales, on the doorstep of FGUK's Llanbedr headquarters, is a 26 mile course threading the valleys and hills around Machynlleth. Can you consistently lower your time and beat the other pilots around the course without breaking the sound barrier and startling the sheep?&lt;br /&gt;
&lt;br /&gt;
A custom AI scenario displays the route with fly-through pointers, checks for adherence to the rules, and announces and records your time - the results will be published in the following week. More information and updates in the weeks either side of the 9th on FGUK's [https://www.facebook.com/FlightGearUK Facebook page] and [https://twitter.com/FlightGearUK Twitter account]. As always at the Mach Loop, there will be photography and video and the event will be streamed live on our [https://www.youtube.com/channel/UCBb-2WXJuAOVh8QvsdVNrrQ YouTube channel].&lt;br /&gt;
&lt;br /&gt;
Recommended choices to fly the loop competitively are Supersonic single and twin seaters, but you can bring anything within reason that doesn't make you a danger to others. Assemble at FGUK Llanbedr (EGOD) at 1900 G/U/Z (8pm BST). If you're planning to bring something unusual, we ask you to notify us in the forum to make sure all the models are visible to the camera.&lt;br /&gt;
&lt;br /&gt;
A full briefing for pilots will be published on Sunday, along with the definitive AI scenario for the competition. Check the [http://fguk.eu/index.php/12-flight-articles/saturday-flight-articles/21-saturday-9th-august-mach-loop-challenge ongoing event article] and the [http://fguk.eu/index.php/forum/saturday-night-flying/4659-flightnight-9-8-14-mach-loop-challenge?start=40#16865 forum thread] to keep up to date.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74563</id>
		<title>FlightGear Newsletter July 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74563"/>
		<updated>2014-08-01T22:31:20Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Multiplayer Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter being written}}&lt;br /&gt;
&lt;br /&gt;
== 5 years of newsletters ==&lt;br /&gt;
[[File:Fgmagfiveyears.png]]&lt;br /&gt;
&lt;br /&gt;
The newsletter started in July 2009. (more to write here, just so we don't forget about it)&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Would it be an idea to provide some sort of weekly or monthly newsletter? I often find out that there are new things I didn't new about or other users that don't follow all topics won't know if there's an awsome plane released. That's why I think we need a newsletter.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Possible things to write about could be:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
- New planes that are released.&amp;lt;br/&amp;gt;&lt;br /&gt;
- New scenery projects (like a new/redrawed airport, things like the corse scenery etc.).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New FG releases (this is not very often, but it should be in the letter if so).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New forum features/subforums and other news from the forum.&amp;lt;br/&amp;gt;&lt;br /&gt;
- News from the wiki (only detailed and large tutorials, or new portals etc. so not every new article ofcourse)&amp;lt;br/&amp;gt;&lt;br /&gt;
- Events that will be held within a short periode or (links to) screenshots of the latest event(s).&amp;lt;br/&amp;gt;&lt;br /&gt;
- The first 3 or 5 pictures of a screenshot contest.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you got other idea's, post in this topic so we could extend the list.&amp;lt;br/&amp;gt;&lt;br /&gt;
I don't really know what's best way to provide the letter. But we have some options:&amp;lt;br/&amp;gt;&lt;br /&gt;
- a topic that's closed, only open for people that are making the letter (at the moment this sounds best to me).&amp;lt;br/&amp;gt;&lt;br /&gt;
- emails send to all forum-users (I don't really like this myself).&amp;lt;br/&amp;gt;&lt;br /&gt;
- a .pdf file with a link on the main page of [http://www.flightgear.org http://www.flightgear.org]&amp;lt;br/&amp;gt;&lt;br /&gt;
- or even something else&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I would like to write the letter, but if there are other people to we might split stuff (someone for scenery news, someone else for aircrafts etc.). Please respond and vote in the poll. Tips/ideas are very much appreciated.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11211#p11211&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The devel-list is great, I'm subscribed to, but not simple to read. It's more like the forum. Usually I don't want to or have time to read through all emails. So I delete most of it without reading anything more than the subject. We don't want to read a lot of topics if we only want to know what function is new and what it does. The the users (so not the developers) want something more ease to read/check. With some screenies of what they will get with a new function etc. So my idea was to make it especially for users.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Events aren't listed on the pages you gave nor some other stuff we could place in the newsletter. In the letter all important news to know will be listed together. If we get this of the ground it could be a great way to reach users to (for events etc.). So I think the newsletter still will be a addition to the lists.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11216#p11216&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |At one time a few years ago we attempted to launch a newsletter.  We had two volunteers, but we never got even the first issue out.  It's a lot of work so we need a pretty dedicated volunteer.  I've heard of other folks using scribus, but even open-office writer would probably be just fine.  Let's not get too caught up in the details of a print/publishing quality layout if we have to sacrifice time for content and just getting the newsletter out on a regular time frame.  There are a bazillion ideas for articles.  I could dust off my unpublished &amp;quot;yasim howto&amp;quot; for instance.  That ended up being about 10 pages (so not newsletter material really) but I could trim it down to a teaser article and we could post the full version on the wiki or something?&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
But if you are willing to get a newsletter rolling, that would be awsome. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11277#p11277&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;curt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue May 27&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Gijs is right when it comes to being a Developer or a User of FG is Vastly different. I know when i first started here i had no clue about lots of developmental things, now i talk of writing .xml files, modelling nasal scripting. That is due to people describing things is basic easy to understand&amp;quot; Laymans&amp;quot; terms and not the kind of language that the DEvs use (understandably of course)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11368#p11368&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;MaverickAlex&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu May 29&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since 16 to 3 voted for Yes I will release the first Newsletter as soon as possible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=15619#p15619&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Aug 21&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Why not simply start a new page on the wiki where anybody can provide contents, so that whenever it's time to send out a newsletter, the draft from the wiki could be taken?&amp;lt;br/&amp;gt;&lt;br /&gt;
That way, it wouldn't be too much work for a single person - more like a &amp;quot;community-driven&amp;quot; newsletter, while this may appear to sort of defeat the purpose, not all newsletter recipients are necessarily also wiki users.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=18015#p18015&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&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;Fri Oct 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Adding backdrop styling to Canvas (by Gijs) ==&lt;br /&gt;
Gijs was looking for an outline that follows the shape of the text, which is what backdrop provides.&lt;br /&gt;
&lt;br /&gt;
For his solution, see the two diffs below. He didn't add the full range of backdrop options, just outline for now [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23500&amp;amp;p=214278#p214275]. &lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |And this is how it looks in FlightGear now :-) Notice how the overlapping waypoints are easier to read (this image is a little exaggerated with all those fixes).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
(see the [http://i.imgur.com/dqMzBS4.png linked image])&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214268#p214268&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: osgText backdrop&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&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;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
commit 5cc0adc778bda1773189b0119d24fbaf5ecd4500&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:26:16 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/simgear/canvas/elements/CanvasText.cxx b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
index d99760a..3a986e1 100644&lt;br /&gt;
--- a/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
+++ b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
@@ -39,6 +39,7 @@ namespace canvas&lt;br /&gt;
       void setLineHeight(float factor);&lt;br /&gt;
       void setFill(const std::string&amp;amp; fill);&lt;br /&gt;
       void setBackgroundColor(const std::string&amp;amp; fill);&lt;br /&gt;
+      void setOutlineColor(const std::string&amp;amp; backdrop);&lt;br /&gt;
 &lt;br /&gt;
       SGVec2i sizeForWidth(int w) const;&lt;br /&gt;
       osg::Vec2 handleHit(const osg::Vec2f&amp;amp; pos);&lt;br /&gt;
@@ -97,6 +98,15 @@ namespace canvas&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   //----------------------------------------------------------------------------&lt;br /&gt;
+  void Text::TextOSG::setOutlineColor(const std::string&amp;amp; backdrop)&lt;br /&gt;
+  {&lt;br /&gt;
+    osg::Vec4 color;&lt;br /&gt;
+    setBackdropType(osgText::Text::OUTLINE);&lt;br /&gt;
+    if( parseColor(backdrop, color) )&lt;br /&gt;
+      setBackdropColor( color );&lt;br /&gt;
+  }&lt;br /&gt;
+&lt;br /&gt;
+  //----------------------------------------------------------------------------&lt;br /&gt;
   // simplified version of osgText::Text::computeGlyphRepresentation() to&lt;br /&gt;
   // just calculate the size for a given weight. Glpyh calculations/creating&lt;br /&gt;
   // is not necessary for this...&lt;br /&gt;
@@ -546,6 +556,7 @@ namespace canvas&lt;br /&gt;
 &lt;br /&gt;
     addStyle(&amp;quot;fill&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setFill, text);&lt;br /&gt;
     addStyle(&amp;quot;background&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setBackgroundColor, text);&lt;br /&gt;
+    addStyle(&amp;quot;backdrop&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setOutlineColor, text);&lt;br /&gt;
     addStyle(&amp;quot;character-size&amp;quot;,&lt;br /&gt;
              &amp;quot;numeric&amp;quot;,&lt;br /&gt;
              static_cast&amp;lt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;commit 838cabd2a551834cbcac2b3edd21500409ff2e98&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:27:50 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/Nasal/canvas/api.nas b/Nasal/canvas/api.nas&lt;br /&gt;
index 8bc12d8..3047dbf 100644&lt;br /&gt;
--- a/Nasal/canvas/api.nas&lt;br /&gt;
+++ b/Nasal/canvas/api.nas&lt;br /&gt;
@@ -634,6 +634,8 @@ var Text = {&lt;br /&gt;
 &lt;br /&gt;
   setColorFill: func me.set('background', _getColor(arg)),&lt;br /&gt;
   getColorFill: func me.get('background'),&lt;br /&gt;
+  &lt;br /&gt;
+  setBackdropColor: func me.set('backdrop', _getColor(arg)),&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 # Path&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCanvas Updates ==&lt;br /&gt;
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|600px|thumb|checking how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup named &amp;quot;main-aircraft&amp;quot; to easily make the whole shebang optional using a single --prop for &amp;quot;FGCanvas&amp;quot; use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23499]]]&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since the early Canvas days, we started toying with the idea of providing an FGPanel-equivalent integrated right into FlightGear using the Canvas system:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Creating a 'fgcanvas' client analogous to 'fgpanel' should be doable too, since the canvas simply renders to a single osg-Camera. Unlike fgpanel this will require OSG instead of raw GL of course, but that's the price we pay for unifying the rendering backend.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If we're rendering each display as an OSG sub-camera, extracting that logic and   wrapping it in a stand-alone OSG viewer should be simplicity itself -  &amp;lt;br/&amp;gt;&lt;br /&gt;
and so long as it's driven by properties, those can be sent over a socket. That's an approach which seems a lot more bearable to me than  &amp;lt;br/&amp;gt;&lt;br /&gt;
sending per-frame pixel surfaces over shared memory or sockets / pipes.}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The whole discussion dates back to the early FGPanel days:&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I am going to be overhauls the 2D panels / displays code in the near future, and was planning to create exactly the same idea - a standalone app that can run a single panel - good to know the idea works! (I'm also planning to internally port the 2D panel code to the new system, but that should be invisible to most people).  It will be part of the main FG codebase, not a fork. As you say, the hope is to make fggc and some related things obsolete, since the same XML+Nasal can be used in the main sim or stand-alone. Anyway, all off-topic!&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=101044#p101044&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FSWeekend 2010&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;zakalawe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Nov 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since then, we made some first FGCanvas experiments, and things proved to be fairly tricky, because many C++ subsystems were not exactly easy to make entirely optional, and because of all the implicit assumptions in Nasal code that is unconditionally-loaded from $FG_ROOT/Nasal, and which assumes to have a full session up and running:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Yeah, the stand alone mode won't be to easy. Maybe for now we should use a powerful enough computer which can also run the unneeded parts Separating the parts will be very important, not only for FGCanvas...}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Fast forward a year later, many of those show stoppers have already been resolved, mainly thanks to the work done by Zakalawe and TheTom, who've both been working on reset&amp;amp;amp;re-init, but also overall better run-time re-initialization support, as can be seen in the screen-shot below:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[FGCanvas]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Patching-fg-3.2-to-make-more-subsystems-optional.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Most subsystems still running in the screen shot shown here can be considered to be essential now, the only remaining subsystems that still need to be decoupled are:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; flight (FDM)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; scenery (tile manager, ephemeris)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;view manager&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lighting&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;terrasync&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Otherwise, it's mostly Nasal code in $FG_ROOT/Nasal where dependencies need to be better established and formalized to get rid of implicit assumptions regarding availability of certain subsystems (e.g. view.nas)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |This means that there's basically just a handful of subsystems that now need to be made optional, and that '''FGCanvas''' will actually become reality. I am going to help rework MapStructure and the ND code in order to ensure that there's no implicit assumptions on running instruments locally, so that we can eventually also drive displays remotely via properties. Roughly a year ago, I already posted some screen shots showing a FG instance that replicates a canvas property tree via telnet's &amp;quot;subscribe&amp;quot; command - it was a hack, but it worked well enough. Even though using UDP-based PUB/SUB, or maybe HLA, should probably scale better. Given the recent progress in this department, I am guessing that it may take us another ~2-3 release cycles until this materializes &amp;quot;automagically&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
In the mid-term, I would hope that we could agree to provide some dedicated API for implementing and initializing subsystems, to ensure that most future subsystems can be easily made optional/run-time configurable, which will entail establishing dependencies among subsystems in some &amp;quot;run-levels&amp;quot;-like setup, which will also touch Nasal bootstrapping, i.e. the stuff we're currently doing in FGNasalSys::init(), but which we're hoping to move into scripting space.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'll revisit bootstrapping soon, because it's the only sane way to resolve dependencies (intra-module or even subsystem support). FGCnvas definitely sounds like an excellent idea.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214207#p214207&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FGCanvas Experiments &amp;amp; Updates&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Philosopher&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== A Canvas based GNS 530 GPS ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |After a long hiatus (3 years!) I felt like doing some flightgear aircraft modeling again. 3 Years ago when I started the panel for my Bo, I couldn't find a nice, modern, panel mount IFR GPS. The King GPS we have is ancient, and the Garmin 196, while nicely modelled, Is a VFR handheld. So I decided to start with this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Gns530-prototype-07-2014.png|300px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I know the GNS530 is already kind of outdated as well, but together with its smaller sibling, the GNS430 it's still much more widespread than its successor (GTN650/750). Also the GTN650/750 use touch screen interfaces, which I'm not really a fan of.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Right now this is very much work in progress. It's also the first time I wrote more than 5 lines of nasal, so I was basically learning the language while I wrote this. Still, I think it's far enough to present it here and let people try it and send critique and suggestions. Learn more at [[Garmin GNS530]]...&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=215254#p215254&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Garmin gns530&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;cbendele&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Jul 23&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Nasal: Making safer base-class calls ===&lt;br /&gt;
There's a lot of Nasal code floating around doing the equivalent of this when using multiple inheritance to make base class calls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
object.parents[x].method();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Internally, this works such that Nasal's inheritance mechanism relies on a so called '''parents''' vector that contains a list of classes that are used for field/method look-ups. This vector can be accessed using numeric indexes - thus, the correct value for '''x''' is directly affected by the way the parents vector is set up, i.e. its internal class ordering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var myClass = {parents:[FirstBaseClass, SecondBaseClass, ThirdBaseClass] };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, this practice of using indexed parents access to look up a base class should be considered a &amp;quot;hack&amp;quot; and discouraged, because it's not a particularly robust or even safe way to call a superclass, simply because it doesn't tell Nasal anything about the name of the class you're trying to call, but merely its index in the inheritance/lookup vector, which may be subject to change (e.g. due to refactoring). Thus, we encourage people to actually use Nasal's built-in '''call()''' API to accomplish the same thing in a more robust fashion:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Nasal that you want it to call a certain method in a particular class - and if that fails, you'll get better diagnostics (error messages), too. The main problem here is that the other approach is pretty vulnerable when restructuring your code, as it is heavily reliant on inheritance '''ordering''' - which is something that isn't exactly straightforward: code shouldn't &amp;quot;break&amp;quot; just because the inheritance ordering is modified. Thus, please try to use the latter idiom. If in doubt, just get in touch via the Nasal sub forum.&lt;br /&gt;
 &lt;br /&gt;
To pass argument to the method, just add them to the 2nd argument, i.e. the empty vector:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To pass a custom namespace environment, you can use this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var namespace = {};&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, namespace);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would be equivalent to this example using an anonymous namespace:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {} );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(If you want to preserve/modify the namespace, it makes sense not use an anonymous namespace though).&lt;br /&gt;
&lt;br /&gt;
To do exception handling, you can pass an empty vector and check its size (&amp;gt;=1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var err = [];&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {}, err );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also declare the variable expression inline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, var ns={}, var err=[] );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
else {&lt;br /&gt;
print(&amp;quot;Success, namespace is:&amp;quot;);&lt;br /&gt;
debug.dump(ns);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCamera ==&lt;br /&gt;
Development of FGCamera continues. The script is being redesigned to be compatible with default view system.&lt;br /&gt;
Upcoming version (FGCamera v1) will have new camera mode: &amp;quot;world-view&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|hebx8WdXHa0}}&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
=== Paro Int. Airport - VQPR ===&lt;br /&gt;
[[File:VQPR PARO AIRPORT.jpg|320px|right]]&lt;br /&gt;
{{#ev:youtube|itNY9YUmY3M||right|domestic flight from Bumthang to Paro}}&lt;br /&gt;
Works have been added to [[Paro Airport|Paro International Airport]] (VQPR) with terminal, tower, hangars and other buildings. Now users you can enjoy the apron lights, the reference points like Mr. Smiths House or other POIs like the Sangchen Choekhor Monastery. [[TerraSync]] has it all! It is not necessary to download any custom scenery. More information can be found on the wiki page: [[Paro Airport]]. This is the first airport of the Bhutanese Series. Three new domestic airports like Gelephu Airport (VQGP) are currently being developed. Work also continues on navaids for the Kingdom of Bhutan - of course only in the FlightGear-World. Everybody is invited to follow the stage of development at the designers wiki user page ([[User:Fgjosh|Fgjosh]]).&lt;br /&gt;
{{-}}&lt;br /&gt;
== Support for Nasal in Notepad++ ==&lt;br /&gt;
[[File:Highlight parse.png|400px|thumb|Screenshot of [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++]]]&lt;br /&gt;
Programming in Nasal on Windows can now be a lot friendlier with [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++].&amp;lt;br /&amp;gt;&lt;br /&gt;
Provides comprehensive syntax highlighting and class/function listing in a hierarchical fashion.&amp;lt;br/&amp;gt;&lt;br /&gt;
Syntax highlighting is available for other editors as well, for more information see [[Howto:Syntax highlighting for Nasal]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Primary Flight Displays for Android Devices ==&lt;br /&gt;
Android devices are light, thin, and offer a very decent computing power and graphics processing. They are battery operated and can connect to other devices through WiFi  (there is no need of cables). They are, in fact, perfect for integration in home-made cockpits. This new project offers the opportunity of extending their usage in the form of Primary Flight Displays and Navigation displays for airliners in Fligthgear. There are currently 4 Primary Flight Display (PFD) Apps in &amp;quot;early production&amp;quot; state: Basic, Boeing 777, Boeing 787-8, and Airbus 330. The Basic App is at this moment available in the Android Play Store. The other Apps will be uploaded during the next days provided that no serious problems are found in the Basic App. You are more than welcome to test it and give feedback! Visit the project website for more information: https://sites.google.com/site/flightgearandroid/&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jd61x-_QNpM}}&lt;br /&gt;
{{#ev:youtube|Y6M9SyMZSCk}}&lt;br /&gt;
{{#ev:youtube|N1D--DZjvtE}}&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Parachute for YASim (Thrusters &amp;amp; Nasal) ==&lt;br /&gt;
[[File:V-1 Parachute.png|350px|thumb|V-1falling slowly with a parachute]]&lt;br /&gt;
Tomaskom developed a realistically behaving parachute for YASim aircraft. It is capable of a slow and stable fall and can recover the aircraft even from very severe rotations. &amp;lt;br/&amp;gt;&lt;br /&gt;
It all began as a question about a parachute which ended by brainstorming of the best approach, you can read the related thread here: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/forum/development-hangar/4546-external-reactions-forces-in-yasim &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Re-implementing the code elsewhere is very easy, most of it can be blindly copied with just some adjustments (trigger binding, chute area, ...). There is a thread on the main forum with HOWTO for implementation, see [http://forum.flightgear.org/viewtopic.php?f=49&amp;amp;p=215650&amp;amp;sid=97b2010406d31b6fc2fabc7cf8b1c8f8 Parachute for YASim (Thrusters &amp;amp; Nasal)]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Currently there is a reference implementation in a special version of the V-1 flying bomb: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/11-other-objects-and-vehicles/400-v-1-flying-bomb &amp;lt;br/&amp;gt;&lt;br /&gt;
The drone (Firebee) for which the parachute was requested is not yet publicly available. &amp;lt;br/&amp;gt;&lt;br /&gt;
You can also get an idea of it's stabilization properties from this video: &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/81ns5ib5tf3y74t/V-1_Parachute.avi&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
=== Mainair Flash 2 Alpha ===&lt;br /&gt;
The microlight [[Mainair Flash 2 Alpha]] is now weightshift controlled and has a new wing model.&lt;br /&gt;
* redesigned FDM with weightshift-control&lt;br /&gt;
* new wing model&lt;br /&gt;
* customizable controls&lt;br /&gt;
* weight and balance gui&lt;br /&gt;
* animated cockpit view&lt;br /&gt;
* animated pilot and an optional passenger&lt;br /&gt;
* emergency parachute&lt;br /&gt;
* multiplayer ready&lt;br /&gt;
* aerotow hitch&lt;br /&gt;
[[File:Flash2a_in_Air2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Aero L-159 ALCA ===&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM||right|L-159 Disintegration}}&lt;br /&gt;
A first public version of the L-159 ALCA (Advanced Light Combat Aircraft) has been released. The aircraft is still in alpha stage and fairly incomplete (there are some changes to the model planned, so no texturing yet, no cockpit instruments), but it already has many advanced and sometimes unique features, most notably the disintegration animations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Some of the most important features include: &lt;br /&gt;
* Unique model disintegration animation (video on the right, see details here: http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=23681)&lt;br /&gt;
* Cannons with realistic fire rate and tracers once every few rounds, visible/audible over MP (hit transmission is a work in progress)&lt;br /&gt;
* Fully automated fuel system with automatic source switching and fuel level balancing&lt;br /&gt;
* Carefully tuned lights including Rembrandt support, light intensity and flares fading in daylight. You may need to increase the Lights shader setting in order to see all effects with Rembrandt on.&lt;br /&gt;
* Most payload options modeled, including optional experimental fixed fuel probe&lt;br /&gt;
* I consider the FDM (YASim) almost complete and generally well tuned, handling changes a lot with heavy payload&lt;br /&gt;
Download available from the FGUK hangar: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/8-military-jets/409-l-159-alca&lt;br /&gt;
[[File:L-159.png|300px|thumbnail|left|L-159 ALCA]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Events ==&lt;br /&gt;
[http://www.fguk.eu FGUK] will be taking the Mach Loop Challenge on Saturday 9th August, as flown by BAE in their Eurofighter simulator at Warton. The world-famous low flying route in North Wales, on the doorstep of FGUK's Llanbedr headquarters, is a 26 mile course threading the valleys and hills around Machynlleth. Can you consistently lower your time and beat the other pilots around the course without breaking the sound barrier and startling the sheep?&lt;br /&gt;
&lt;br /&gt;
A custom AI scenario displays the route with fly-through pointers, checks for adherence to the rules, and announces and records your time - the results will be published in the following week. More information and updates in the weeks either side of the 9th on FGUK's [https://www.facebook.com/FlightGearUK Facebook page] and [https://twitter.com/FlightGearUK Twitter account]. As always at the Mach Loop, there will be photography and video and the event will be streamed live on our [https://www.youtube.com/channel/UCBb-2WXJuAOVh8QvsdVNrrQ YouTube channel].&lt;br /&gt;
&lt;br /&gt;
Recommended choices to fly the loop competitively are Supersonic single and twin seaters, but you can bring anything within reason that doesn't make you a danger to others. Assemble at FGUK Llanbedr (EGOD) at 1900 G/U/Z (8pm BST). If you're planning to bring something unusual, we ask you to notify us in the forum to make sure all the models are visible to the camera.&lt;br /&gt;
&lt;br /&gt;
A full briefing for pilots will be published on Sunday, along with the definitive AI scenario for the competition. Check the [http://fguk.eu/index.php/12-flight-articles/saturday-flight-articles/21-saturday-9th-august-mach-loop-challenge ongoing event article] and the [http://fguk.eu/index.php/forum/saturday-night-flying/4659-flightnight-9-8-14-mach-loop-challenge?start=40#16865 forum thread] to keep up to date.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74562</id>
		<title>FlightGear Newsletter July 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74562"/>
		<updated>2014-08-01T19:56:21Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Multiplayer Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter being written}}&lt;br /&gt;
&lt;br /&gt;
== 5 years of newsletters ==&lt;br /&gt;
[[File:Fgmagfiveyears.png]]&lt;br /&gt;
&lt;br /&gt;
The newsletter started in July 2009. (more to write here, just so we don't forget about it)&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Would it be an idea to provide some sort of weekly or monthly newsletter? I often find out that there are new things I didn't new about or other users that don't follow all topics won't know if there's an awsome plane released. That's why I think we need a newsletter.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Possible things to write about could be:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
- New planes that are released.&amp;lt;br/&amp;gt;&lt;br /&gt;
- New scenery projects (like a new/redrawed airport, things like the corse scenery etc.).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New FG releases (this is not very often, but it should be in the letter if so).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New forum features/subforums and other news from the forum.&amp;lt;br/&amp;gt;&lt;br /&gt;
- News from the wiki (only detailed and large tutorials, or new portals etc. so not every new article ofcourse)&amp;lt;br/&amp;gt;&lt;br /&gt;
- Events that will be held within a short periode or (links to) screenshots of the latest event(s).&amp;lt;br/&amp;gt;&lt;br /&gt;
- The first 3 or 5 pictures of a screenshot contest.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you got other idea's, post in this topic so we could extend the list.&amp;lt;br/&amp;gt;&lt;br /&gt;
I don't really know what's best way to provide the letter. But we have some options:&amp;lt;br/&amp;gt;&lt;br /&gt;
- a topic that's closed, only open for people that are making the letter (at the moment this sounds best to me).&amp;lt;br/&amp;gt;&lt;br /&gt;
- emails send to all forum-users (I don't really like this myself).&amp;lt;br/&amp;gt;&lt;br /&gt;
- a .pdf file with a link on the main page of [http://www.flightgear.org http://www.flightgear.org]&amp;lt;br/&amp;gt;&lt;br /&gt;
- or even something else&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I would like to write the letter, but if there are other people to we might split stuff (someone for scenery news, someone else for aircrafts etc.). Please respond and vote in the poll. Tips/ideas are very much appreciated.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11211#p11211&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The devel-list is great, I'm subscribed to, but not simple to read. It's more like the forum. Usually I don't want to or have time to read through all emails. So I delete most of it without reading anything more than the subject. We don't want to read a lot of topics if we only want to know what function is new and what it does. The the users (so not the developers) want something more ease to read/check. With some screenies of what they will get with a new function etc. So my idea was to make it especially for users.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Events aren't listed on the pages you gave nor some other stuff we could place in the newsletter. In the letter all important news to know will be listed together. If we get this of the ground it could be a great way to reach users to (for events etc.). So I think the newsletter still will be a addition to the lists.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11216#p11216&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |At one time a few years ago we attempted to launch a newsletter.  We had two volunteers, but we never got even the first issue out.  It's a lot of work so we need a pretty dedicated volunteer.  I've heard of other folks using scribus, but even open-office writer would probably be just fine.  Let's not get too caught up in the details of a print/publishing quality layout if we have to sacrifice time for content and just getting the newsletter out on a regular time frame.  There are a bazillion ideas for articles.  I could dust off my unpublished &amp;quot;yasim howto&amp;quot; for instance.  That ended up being about 10 pages (so not newsletter material really) but I could trim it down to a teaser article and we could post the full version on the wiki or something?&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
But if you are willing to get a newsletter rolling, that would be awsome. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11277#p11277&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;curt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue May 27&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Gijs is right when it comes to being a Developer or a User of FG is Vastly different. I know when i first started here i had no clue about lots of developmental things, now i talk of writing .xml files, modelling nasal scripting. That is due to people describing things is basic easy to understand&amp;quot; Laymans&amp;quot; terms and not the kind of language that the DEvs use (understandably of course)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11368#p11368&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;MaverickAlex&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu May 29&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since 16 to 3 voted for Yes I will release the first Newsletter as soon as possible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=15619#p15619&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Aug 21&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Why not simply start a new page on the wiki where anybody can provide contents, so that whenever it's time to send out a newsletter, the draft from the wiki could be taken?&amp;lt;br/&amp;gt;&lt;br /&gt;
That way, it wouldn't be too much work for a single person - more like a &amp;quot;community-driven&amp;quot; newsletter, while this may appear to sort of defeat the purpose, not all newsletter recipients are necessarily also wiki users.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=18015#p18015&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&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;Fri Oct 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Adding backdrop styling to Canvas (by Gijs) ==&lt;br /&gt;
Gijs was looking for an outline that follows the shape of the text, which is what backdrop provides.&lt;br /&gt;
&lt;br /&gt;
For his solution, see the two diffs below. He didn't add the full range of backdrop options, just outline for now [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23500&amp;amp;p=214278#p214275]. &lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |And this is how it looks in FlightGear now :-) Notice how the overlapping waypoints are easier to read (this image is a little exaggerated with all those fixes).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
(see the [http://i.imgur.com/dqMzBS4.png linked image])&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214268#p214268&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: osgText backdrop&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&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;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
commit 5cc0adc778bda1773189b0119d24fbaf5ecd4500&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:26:16 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/simgear/canvas/elements/CanvasText.cxx b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
index d99760a..3a986e1 100644&lt;br /&gt;
--- a/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
+++ b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
@@ -39,6 +39,7 @@ namespace canvas&lt;br /&gt;
       void setLineHeight(float factor);&lt;br /&gt;
       void setFill(const std::string&amp;amp; fill);&lt;br /&gt;
       void setBackgroundColor(const std::string&amp;amp; fill);&lt;br /&gt;
+      void setOutlineColor(const std::string&amp;amp; backdrop);&lt;br /&gt;
 &lt;br /&gt;
       SGVec2i sizeForWidth(int w) const;&lt;br /&gt;
       osg::Vec2 handleHit(const osg::Vec2f&amp;amp; pos);&lt;br /&gt;
@@ -97,6 +98,15 @@ namespace canvas&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   //----------------------------------------------------------------------------&lt;br /&gt;
+  void Text::TextOSG::setOutlineColor(const std::string&amp;amp; backdrop)&lt;br /&gt;
+  {&lt;br /&gt;
+    osg::Vec4 color;&lt;br /&gt;
+    setBackdropType(osgText::Text::OUTLINE);&lt;br /&gt;
+    if( parseColor(backdrop, color) )&lt;br /&gt;
+      setBackdropColor( color );&lt;br /&gt;
+  }&lt;br /&gt;
+&lt;br /&gt;
+  //----------------------------------------------------------------------------&lt;br /&gt;
   // simplified version of osgText::Text::computeGlyphRepresentation() to&lt;br /&gt;
   // just calculate the size for a given weight. Glpyh calculations/creating&lt;br /&gt;
   // is not necessary for this...&lt;br /&gt;
@@ -546,6 +556,7 @@ namespace canvas&lt;br /&gt;
 &lt;br /&gt;
     addStyle(&amp;quot;fill&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setFill, text);&lt;br /&gt;
     addStyle(&amp;quot;background&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setBackgroundColor, text);&lt;br /&gt;
+    addStyle(&amp;quot;backdrop&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setOutlineColor, text);&lt;br /&gt;
     addStyle(&amp;quot;character-size&amp;quot;,&lt;br /&gt;
              &amp;quot;numeric&amp;quot;,&lt;br /&gt;
              static_cast&amp;lt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;commit 838cabd2a551834cbcac2b3edd21500409ff2e98&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:27:50 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/Nasal/canvas/api.nas b/Nasal/canvas/api.nas&lt;br /&gt;
index 8bc12d8..3047dbf 100644&lt;br /&gt;
--- a/Nasal/canvas/api.nas&lt;br /&gt;
+++ b/Nasal/canvas/api.nas&lt;br /&gt;
@@ -634,6 +634,8 @@ var Text = {&lt;br /&gt;
 &lt;br /&gt;
   setColorFill: func me.set('background', _getColor(arg)),&lt;br /&gt;
   getColorFill: func me.get('background'),&lt;br /&gt;
+  &lt;br /&gt;
+  setBackdropColor: func me.set('backdrop', _getColor(arg)),&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 # Path&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCanvas Updates ==&lt;br /&gt;
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|600px|thumb|checking how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup named &amp;quot;main-aircraft&amp;quot; to easily make the whole shebang optional using a single --prop for &amp;quot;FGCanvas&amp;quot; use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23499]]]&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since the early Canvas days, we started toying with the idea of providing an FGPanel-equivalent integrated right into FlightGear using the Canvas system:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Creating a 'fgcanvas' client analogous to 'fgpanel' should be doable too, since the canvas simply renders to a single osg-Camera. Unlike fgpanel this will require OSG instead of raw GL of course, but that's the price we pay for unifying the rendering backend.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If we're rendering each display as an OSG sub-camera, extracting that logic and   wrapping it in a stand-alone OSG viewer should be simplicity itself -  &amp;lt;br/&amp;gt;&lt;br /&gt;
and so long as it's driven by properties, those can be sent over a socket. That's an approach which seems a lot more bearable to me than  &amp;lt;br/&amp;gt;&lt;br /&gt;
sending per-frame pixel surfaces over shared memory or sockets / pipes.}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The whole discussion dates back to the early FGPanel days:&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I am going to be overhauls the 2D panels / displays code in the near future, and was planning to create exactly the same idea - a standalone app that can run a single panel - good to know the idea works! (I'm also planning to internally port the 2D panel code to the new system, but that should be invisible to most people).  It will be part of the main FG codebase, not a fork. As you say, the hope is to make fggc and some related things obsolete, since the same XML+Nasal can be used in the main sim or stand-alone. Anyway, all off-topic!&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=101044#p101044&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FSWeekend 2010&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;zakalawe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Nov 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since then, we made some first FGCanvas experiments, and things proved to be fairly tricky, because many C++ subsystems were not exactly easy to make entirely optional, and because of all the implicit assumptions in Nasal code that is unconditionally-loaded from $FG_ROOT/Nasal, and which assumes to have a full session up and running:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Yeah, the stand alone mode won't be to easy. Maybe for now we should use a powerful enough computer which can also run the unneeded parts Separating the parts will be very important, not only for FGCanvas...}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Fast forward a year later, many of those show stoppers have already been resolved, mainly thanks to the work done by Zakalawe and TheTom, who've both been working on reset&amp;amp;amp;re-init, but also overall better run-time re-initialization support, as can be seen in the screen-shot below:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[FGCanvas]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Patching-fg-3.2-to-make-more-subsystems-optional.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Most subsystems still running in the screen shot shown here can be considered to be essential now, the only remaining subsystems that still need to be decoupled are:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; flight (FDM)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; scenery (tile manager, ephemeris)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;view manager&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lighting&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;terrasync&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Otherwise, it's mostly Nasal code in $FG_ROOT/Nasal where dependencies need to be better established and formalized to get rid of implicit assumptions regarding availability of certain subsystems (e.g. view.nas)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |This means that there's basically just a handful of subsystems that now need to be made optional, and that '''FGCanvas''' will actually become reality. I am going to help rework MapStructure and the ND code in order to ensure that there's no implicit assumptions on running instruments locally, so that we can eventually also drive displays remotely via properties. Roughly a year ago, I already posted some screen shots showing a FG instance that replicates a canvas property tree via telnet's &amp;quot;subscribe&amp;quot; command - it was a hack, but it worked well enough. Even though using UDP-based PUB/SUB, or maybe HLA, should probably scale better. Given the recent progress in this department, I am guessing that it may take us another ~2-3 release cycles until this materializes &amp;quot;automagically&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
In the mid-term, I would hope that we could agree to provide some dedicated API for implementing and initializing subsystems, to ensure that most future subsystems can be easily made optional/run-time configurable, which will entail establishing dependencies among subsystems in some &amp;quot;run-levels&amp;quot;-like setup, which will also touch Nasal bootstrapping, i.e. the stuff we're currently doing in FGNasalSys::init(), but which we're hoping to move into scripting space.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'll revisit bootstrapping soon, because it's the only sane way to resolve dependencies (intra-module or even subsystem support). FGCnvas definitely sounds like an excellent idea.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214207#p214207&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FGCanvas Experiments &amp;amp; Updates&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Philosopher&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== A Canvas based GNS 530 GPS ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |After a long hiatus (3 years!) I felt like doing some flightgear aircraft modeling again. 3 Years ago when I started the panel for my Bo, I couldn't find a nice, modern, panel mount IFR GPS. The King GPS we have is ancient, and the Garmin 196, while nicely modelled, Is a VFR handheld. So I decided to start with this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Gns530-prototype-07-2014.png|300px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I know the GNS530 is already kind of outdated as well, but together with its smaller sibling, the GNS430 it's still much more widespread than its successor (GTN650/750). Also the GTN650/750 use touch screen interfaces, which I'm not really a fan of.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Right now this is very much work in progress. It's also the first time I wrote more than 5 lines of nasal, so I was basically learning the language while I wrote this. Still, I think it's far enough to present it here and let people try it and send critique and suggestions. Learn more at [[Garmin GNS530]]...&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=215254#p215254&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Garmin gns530&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;cbendele&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Jul 23&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Nasal: Making safer base-class calls ===&lt;br /&gt;
There's a lot of Nasal code floating around doing the equivalent of this when using multiple inheritance to make base class calls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
object.parents[x].method();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Internally, this works such that Nasal's inheritance mechanism relies on a so called '''parents''' vector that contains a list of classes that are used for field/method look-ups. This vector can be accessed using numeric indexes - thus, the correct value for '''x''' is directly affected by the way the parents vector is set up, i.e. its internal class ordering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var myClass = {parents:[FirstBaseClass, SecondBaseClass, ThirdBaseClass] };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, this practice of using indexed parents access to look up a base class should be considered a &amp;quot;hack&amp;quot; and discouraged, because it's not a particularly robust or even safe way to call a superclass, simply because it doesn't tell Nasal anything about the name of the class you're trying to call, but merely its index in the inheritance/lookup vector, which may be subject to change (e.g. due to refactoring). Thus, we encourage people to actually use Nasal's built-in '''call()''' API to accomplish the same thing in a more robust fashion:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Nasal that you want it to call a certain method in a particular class - and if that fails, you'll get better diagnostics (error messages), too. The main problem here is that the other approach is pretty vulnerable when restructuring your code, as it is heavily reliant on inheritance '''ordering''' - which is something that isn't exactly straightforward: code shouldn't &amp;quot;break&amp;quot; just because the inheritance ordering is modified. Thus, please try to use the latter idiom. If in doubt, just get in touch via the Nasal sub forum.&lt;br /&gt;
 &lt;br /&gt;
To pass argument to the method, just add them to the 2nd argument, i.e. the empty vector:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To pass a custom namespace environment, you can use this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var namespace = {};&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, namespace);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would be equivalent to this example using an anonymous namespace:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {} );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(If you want to preserve/modify the namespace, it makes sense not use an anonymous namespace though).&lt;br /&gt;
&lt;br /&gt;
To do exception handling, you can pass an empty vector and check its size (&amp;gt;=1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var err = [];&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {}, err );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also declare the variable expression inline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, var ns={}, var err=[] );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
else {&lt;br /&gt;
print(&amp;quot;Success, namespace is:&amp;quot;);&lt;br /&gt;
debug.dump(ns);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCamera ==&lt;br /&gt;
Development of FGCamera continues. The script is being redesigned to be compatible with default view system.&lt;br /&gt;
Upcoming version (FGCamera v1) will have new camera mode: &amp;quot;world-view&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|hebx8WdXHa0}}&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
=== Paro Int. Airport - VQPR ===&lt;br /&gt;
[[File:VQPR PARO AIRPORT.jpg|320px|right]]&lt;br /&gt;
{{#ev:youtube|itNY9YUmY3M||right|domestic flight from Bumthang to Paro}}&lt;br /&gt;
Works have been added to [[Paro Airport|Paro International Airport]] (VQPR) with terminal, tower, hangars and other buildings. Now users you can enjoy the apron lights, the reference points like Mr. Smiths House or other POIs like the Sangchen Choekhor Monastery. [[TerraSync]] has it all! It is not necessary to download any custom scenery. More information can be found on the wiki page: [[Paro Airport]]. This is the first airport of the Bhutanese Series. Three new domestic airports like Gelephu Airport (VQGP) are currently being developed. Work also continues on navaids for the Kingdom of Bhutan - of course only in the FlightGear-World. Everybody is invited to follow the stage of development at the designers wiki user page ([[User:Fgjosh|Fgjosh]]).&lt;br /&gt;
{{-}}&lt;br /&gt;
== Support for Nasal in Notepad++ ==&lt;br /&gt;
[[File:Highlight parse.png|400px|thumb|Screenshot of [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++]]]&lt;br /&gt;
Programming in Nasal on Windows can now be a lot friendlier with [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++].&amp;lt;br /&amp;gt;&lt;br /&gt;
Provides comprehensive syntax highlighting and class/function listing in a hierarchical fashion.&amp;lt;br/&amp;gt;&lt;br /&gt;
Syntax highlighting is available for other editors as well, for more information see [[Howto:Syntax highlighting for Nasal]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Primary Flight Displays for Android Devices ==&lt;br /&gt;
Android devices are light, thin, and offer a very decent computing power and graphics processing. They are battery operated and can connect to other devices through WiFi  (there is no need of cables). They are, in fact, perfect for integration in home-made cockpits. This new project offers the opportunity of extending their usage in the form of Primary Flight Displays and Navigation displays for airliners in Fligthgear. There are currently 4 Primary Flight Display (PFD) Apps in &amp;quot;early production&amp;quot; state: Basic, Boeing 777, Boeing 787-8, and Airbus 330. The Basic App is at this moment available in the Android Play Store. The other Apps will be uploaded during the next days provided that no serious problems are found in the Basic App. You are more than welcome to test it and give feedback! Visit the project website for more information: https://sites.google.com/site/flightgearandroid/&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jd61x-_QNpM}}&lt;br /&gt;
{{#ev:youtube|Y6M9SyMZSCk}}&lt;br /&gt;
{{#ev:youtube|N1D--DZjvtE}}&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Parachute for YASim (Thrusters &amp;amp; Nasal) ==&lt;br /&gt;
[[File:V-1 Parachute.png|350px|thumb|V-1falling slowly with a parachute]]&lt;br /&gt;
Tomaskom developed a realistically behaving parachute for YASim aircraft. It is capable of a slow and stable fall and can recover the aircraft even from very severe rotations. &amp;lt;br/&amp;gt;&lt;br /&gt;
It all began as a question about a parachute which ended by brainstorming of the best approach, you can read the related thread here: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/forum/development-hangar/4546-external-reactions-forces-in-yasim &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Re-implementing the code elsewhere is very easy, most of it can be blindly copied with just some adjustments (trigger binding, chute area, ...). There is a thread on the main forum with HOWTO for implementation, see [http://forum.flightgear.org/viewtopic.php?f=49&amp;amp;p=215650&amp;amp;sid=97b2010406d31b6fc2fabc7cf8b1c8f8 Parachute for YASim (Thrusters &amp;amp; Nasal)]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Currently there is a reference implementation in a special version of the V-1 flying bomb: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/11-other-objects-and-vehicles/400-v-1-flying-bomb &amp;lt;br/&amp;gt;&lt;br /&gt;
The drone (Firebee) for which the parachute was requested is not yet publicly available. &amp;lt;br/&amp;gt;&lt;br /&gt;
You can also get an idea of it's stabilization properties from this video: &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/81ns5ib5tf3y74t/V-1_Parachute.avi&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
=== Mainair Flash 2 Alpha ===&lt;br /&gt;
The microlight [[Mainair Flash 2 Alpha]] is now weightshift controlled and has a new wing model.&lt;br /&gt;
* redesigned FDM with weightshift-control&lt;br /&gt;
* new wing model&lt;br /&gt;
* customizable controls&lt;br /&gt;
* weight and balance gui&lt;br /&gt;
* animated cockpit view&lt;br /&gt;
* animated pilot and an optional passenger&lt;br /&gt;
* emergency parachute&lt;br /&gt;
* multiplayer ready&lt;br /&gt;
* aerotow hitch&lt;br /&gt;
[[File:Flash2a_in_Air2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Aero L-159 ALCA ===&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM||right|L-159 Disintegration}}&lt;br /&gt;
A first public version of the L-159 ALCA (Advanced Light Combat Aircraft) has been released. The aircraft is still in alpha stage and fairly incomplete (there are some changes to the model planned, so no texturing yet, no cockpit instruments), but it already has many advanced and sometimes unique features, most notably the disintegration animations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Some of the most important features include: &lt;br /&gt;
* Unique model disintegration animation (video on the right, see details here: http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=23681)&lt;br /&gt;
* Cannons with realistic fire rate and tracers once every few rounds, visible/audible over MP (hit transmission is a work in progress)&lt;br /&gt;
* Fully automated fuel system with automatic source switching and fuel level balancing&lt;br /&gt;
* Carefully tuned lights including Rembrandt support, light intensity and flares fading in daylight. You may need to increase the Lights shader setting in order to see all effects with Rembrandt on.&lt;br /&gt;
* Most payload options modeled, including optional experimental fixed fuel probe&lt;br /&gt;
* I consider the FDM (YASim) almost complete and generally well tuned, handling changes a lot with heavy payload&lt;br /&gt;
Download available from the FGUK hangar: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/8-military-jets/409-l-159-alca&lt;br /&gt;
[[File:L-159.png|300px|thumbnail|left|L-159 ALCA]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Events ==&lt;br /&gt;
[http://www.fguk.eu FGUK] will be taking the Mach Loop Challenge on Saturday 9th August, as flown by BAE in their Eurofighter simulator at Warton. The world-famous low flying route in North Wales, on the doorstep of FGUK's Llanbedr headquarters, is a 26 mile course threading the valleys and hills around Machynlleth. Can you consistently lower your time and beat the other pilots around the course without breaking the sound barrier and startling the sheep?&lt;br /&gt;
&lt;br /&gt;
A custom AI scenario displays the route with fly-through pointers, checks for adherence to the rules, and announces and records your time - the results will be published in the following week. More information and updates in the weeks either side of the 9th on FGUK's [https://www.facebook.com/FlightGearUK Facebook page] and [https://twitter.com/FlightGearUK Twitter account]. As always at the Mach Loop, there will be photography and video and the event will be streamed live on our [https://www.youtube.com/channel/UCBb-2WXJuAOVh8QvsdVNrrQ YouTube channel].&lt;br /&gt;
&lt;br /&gt;
Recommended choices to fly the loop competitively are Supersonic single and twin seaters, but you can bring anything within reason that doesn't make you a danger to others. Assemble at FGUK Llanbedr (EGOD) at 1900 G/U/Z (8pm BST). If you're planning to bring something unusual, we ask you to notify us in the forum to make sure all the models are visible to the camera.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74561</id>
		<title>FlightGear Newsletter July 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74561"/>
		<updated>2014-08-01T19:35:21Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Multiplayer Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter being written}}&lt;br /&gt;
&lt;br /&gt;
== 5 years of newsletters ==&lt;br /&gt;
[[File:Fgmagfiveyears.png]]&lt;br /&gt;
&lt;br /&gt;
The newsletter started in July 2009. (more to write here, just so we don't forget about it)&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Would it be an idea to provide some sort of weekly or monthly newsletter? I often find out that there are new things I didn't new about or other users that don't follow all topics won't know if there's an awsome plane released. That's why I think we need a newsletter.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Possible things to write about could be:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
- New planes that are released.&amp;lt;br/&amp;gt;&lt;br /&gt;
- New scenery projects (like a new/redrawed airport, things like the corse scenery etc.).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New FG releases (this is not very often, but it should be in the letter if so).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New forum features/subforums and other news from the forum.&amp;lt;br/&amp;gt;&lt;br /&gt;
- News from the wiki (only detailed and large tutorials, or new portals etc. so not every new article ofcourse)&amp;lt;br/&amp;gt;&lt;br /&gt;
- Events that will be held within a short periode or (links to) screenshots of the latest event(s).&amp;lt;br/&amp;gt;&lt;br /&gt;
- The first 3 or 5 pictures of a screenshot contest.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you got other idea's, post in this topic so we could extend the list.&amp;lt;br/&amp;gt;&lt;br /&gt;
I don't really know what's best way to provide the letter. But we have some options:&amp;lt;br/&amp;gt;&lt;br /&gt;
- a topic that's closed, only open for people that are making the letter (at the moment this sounds best to me).&amp;lt;br/&amp;gt;&lt;br /&gt;
- emails send to all forum-users (I don't really like this myself).&amp;lt;br/&amp;gt;&lt;br /&gt;
- a .pdf file with a link on the main page of [http://www.flightgear.org http://www.flightgear.org]&amp;lt;br/&amp;gt;&lt;br /&gt;
- or even something else&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I would like to write the letter, but if there are other people to we might split stuff (someone for scenery news, someone else for aircrafts etc.). Please respond and vote in the poll. Tips/ideas are very much appreciated.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11211#p11211&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The devel-list is great, I'm subscribed to, but not simple to read. It's more like the forum. Usually I don't want to or have time to read through all emails. So I delete most of it without reading anything more than the subject. We don't want to read a lot of topics if we only want to know what function is new and what it does. The the users (so not the developers) want something more ease to read/check. With some screenies of what they will get with a new function etc. So my idea was to make it especially for users.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Events aren't listed on the pages you gave nor some other stuff we could place in the newsletter. In the letter all important news to know will be listed together. If we get this of the ground it could be a great way to reach users to (for events etc.). So I think the newsletter still will be a addition to the lists.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11216#p11216&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |At one time a few years ago we attempted to launch a newsletter.  We had two volunteers, but we never got even the first issue out.  It's a lot of work so we need a pretty dedicated volunteer.  I've heard of other folks using scribus, but even open-office writer would probably be just fine.  Let's not get too caught up in the details of a print/publishing quality layout if we have to sacrifice time for content and just getting the newsletter out on a regular time frame.  There are a bazillion ideas for articles.  I could dust off my unpublished &amp;quot;yasim howto&amp;quot; for instance.  That ended up being about 10 pages (so not newsletter material really) but I could trim it down to a teaser article and we could post the full version on the wiki or something?&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
But if you are willing to get a newsletter rolling, that would be awsome. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11277#p11277&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;curt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue May 27&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Gijs is right when it comes to being a Developer or a User of FG is Vastly different. I know when i first started here i had no clue about lots of developmental things, now i talk of writing .xml files, modelling nasal scripting. That is due to people describing things is basic easy to understand&amp;quot; Laymans&amp;quot; terms and not the kind of language that the DEvs use (understandably of course)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11368#p11368&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;MaverickAlex&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu May 29&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since 16 to 3 voted for Yes I will release the first Newsletter as soon as possible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=15619#p15619&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Aug 21&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Why not simply start a new page on the wiki where anybody can provide contents, so that whenever it's time to send out a newsletter, the draft from the wiki could be taken?&amp;lt;br/&amp;gt;&lt;br /&gt;
That way, it wouldn't be too much work for a single person - more like a &amp;quot;community-driven&amp;quot; newsletter, while this may appear to sort of defeat the purpose, not all newsletter recipients are necessarily also wiki users.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=18015#p18015&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&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;Fri Oct 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Adding backdrop styling to Canvas (by Gijs) ==&lt;br /&gt;
Gijs was looking for an outline that follows the shape of the text, which is what backdrop provides.&lt;br /&gt;
&lt;br /&gt;
For his solution, see the two diffs below. He didn't add the full range of backdrop options, just outline for now [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23500&amp;amp;p=214278#p214275]. &lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |And this is how it looks in FlightGear now :-) Notice how the overlapping waypoints are easier to read (this image is a little exaggerated with all those fixes).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
(see the [http://i.imgur.com/dqMzBS4.png linked image])&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214268#p214268&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: osgText backdrop&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&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;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
commit 5cc0adc778bda1773189b0119d24fbaf5ecd4500&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:26:16 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/simgear/canvas/elements/CanvasText.cxx b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
index d99760a..3a986e1 100644&lt;br /&gt;
--- a/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
+++ b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
@@ -39,6 +39,7 @@ namespace canvas&lt;br /&gt;
       void setLineHeight(float factor);&lt;br /&gt;
       void setFill(const std::string&amp;amp; fill);&lt;br /&gt;
       void setBackgroundColor(const std::string&amp;amp; fill);&lt;br /&gt;
+      void setOutlineColor(const std::string&amp;amp; backdrop);&lt;br /&gt;
 &lt;br /&gt;
       SGVec2i sizeForWidth(int w) const;&lt;br /&gt;
       osg::Vec2 handleHit(const osg::Vec2f&amp;amp; pos);&lt;br /&gt;
@@ -97,6 +98,15 @@ namespace canvas&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   //----------------------------------------------------------------------------&lt;br /&gt;
+  void Text::TextOSG::setOutlineColor(const std::string&amp;amp; backdrop)&lt;br /&gt;
+  {&lt;br /&gt;
+    osg::Vec4 color;&lt;br /&gt;
+    setBackdropType(osgText::Text::OUTLINE);&lt;br /&gt;
+    if( parseColor(backdrop, color) )&lt;br /&gt;
+      setBackdropColor( color );&lt;br /&gt;
+  }&lt;br /&gt;
+&lt;br /&gt;
+  //----------------------------------------------------------------------------&lt;br /&gt;
   // simplified version of osgText::Text::computeGlyphRepresentation() to&lt;br /&gt;
   // just calculate the size for a given weight. Glpyh calculations/creating&lt;br /&gt;
   // is not necessary for this...&lt;br /&gt;
@@ -546,6 +556,7 @@ namespace canvas&lt;br /&gt;
 &lt;br /&gt;
     addStyle(&amp;quot;fill&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setFill, text);&lt;br /&gt;
     addStyle(&amp;quot;background&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setBackgroundColor, text);&lt;br /&gt;
+    addStyle(&amp;quot;backdrop&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setOutlineColor, text);&lt;br /&gt;
     addStyle(&amp;quot;character-size&amp;quot;,&lt;br /&gt;
              &amp;quot;numeric&amp;quot;,&lt;br /&gt;
              static_cast&amp;lt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;commit 838cabd2a551834cbcac2b3edd21500409ff2e98&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:27:50 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/Nasal/canvas/api.nas b/Nasal/canvas/api.nas&lt;br /&gt;
index 8bc12d8..3047dbf 100644&lt;br /&gt;
--- a/Nasal/canvas/api.nas&lt;br /&gt;
+++ b/Nasal/canvas/api.nas&lt;br /&gt;
@@ -634,6 +634,8 @@ var Text = {&lt;br /&gt;
 &lt;br /&gt;
   setColorFill: func me.set('background', _getColor(arg)),&lt;br /&gt;
   getColorFill: func me.get('background'),&lt;br /&gt;
+  &lt;br /&gt;
+  setBackdropColor: func me.set('backdrop', _getColor(arg)),&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 # Path&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCanvas Updates ==&lt;br /&gt;
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|600px|thumb|checking how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup named &amp;quot;main-aircraft&amp;quot; to easily make the whole shebang optional using a single --prop for &amp;quot;FGCanvas&amp;quot; use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23499]]]&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since the early Canvas days, we started toying with the idea of providing an FGPanel-equivalent integrated right into FlightGear using the Canvas system:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Creating a 'fgcanvas' client analogous to 'fgpanel' should be doable too, since the canvas simply renders to a single osg-Camera. Unlike fgpanel this will require OSG instead of raw GL of course, but that's the price we pay for unifying the rendering backend.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If we're rendering each display as an OSG sub-camera, extracting that logic and   wrapping it in a stand-alone OSG viewer should be simplicity itself -  &amp;lt;br/&amp;gt;&lt;br /&gt;
and so long as it's driven by properties, those can be sent over a socket. That's an approach which seems a lot more bearable to me than  &amp;lt;br/&amp;gt;&lt;br /&gt;
sending per-frame pixel surfaces over shared memory or sockets / pipes.}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The whole discussion dates back to the early FGPanel days:&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I am going to be overhauls the 2D panels / displays code in the near future, and was planning to create exactly the same idea - a standalone app that can run a single panel - good to know the idea works! (I'm also planning to internally port the 2D panel code to the new system, but that should be invisible to most people).  It will be part of the main FG codebase, not a fork. As you say, the hope is to make fggc and some related things obsolete, since the same XML+Nasal can be used in the main sim or stand-alone. Anyway, all off-topic!&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=101044#p101044&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FSWeekend 2010&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;zakalawe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Nov 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since then, we made some first FGCanvas experiments, and things proved to be fairly tricky, because many C++ subsystems were not exactly easy to make entirely optional, and because of all the implicit assumptions in Nasal code that is unconditionally-loaded from $FG_ROOT/Nasal, and which assumes to have a full session up and running:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Yeah, the stand alone mode won't be to easy. Maybe for now we should use a powerful enough computer which can also run the unneeded parts Separating the parts will be very important, not only for FGCanvas...}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Fast forward a year later, many of those show stoppers have already been resolved, mainly thanks to the work done by Zakalawe and TheTom, who've both been working on reset&amp;amp;amp;re-init, but also overall better run-time re-initialization support, as can be seen in the screen-shot below:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[FGCanvas]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Patching-fg-3.2-to-make-more-subsystems-optional.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Most subsystems still running in the screen shot shown here can be considered to be essential now, the only remaining subsystems that still need to be decoupled are:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; flight (FDM)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; scenery (tile manager, ephemeris)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;view manager&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lighting&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;terrasync&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Otherwise, it's mostly Nasal code in $FG_ROOT/Nasal where dependencies need to be better established and formalized to get rid of implicit assumptions regarding availability of certain subsystems (e.g. view.nas)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |This means that there's basically just a handful of subsystems that now need to be made optional, and that '''FGCanvas''' will actually become reality. I am going to help rework MapStructure and the ND code in order to ensure that there's no implicit assumptions on running instruments locally, so that we can eventually also drive displays remotely via properties. Roughly a year ago, I already posted some screen shots showing a FG instance that replicates a canvas property tree via telnet's &amp;quot;subscribe&amp;quot; command - it was a hack, but it worked well enough. Even though using UDP-based PUB/SUB, or maybe HLA, should probably scale better. Given the recent progress in this department, I am guessing that it may take us another ~2-3 release cycles until this materializes &amp;quot;automagically&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
In the mid-term, I would hope that we could agree to provide some dedicated API for implementing and initializing subsystems, to ensure that most future subsystems can be easily made optional/run-time configurable, which will entail establishing dependencies among subsystems in some &amp;quot;run-levels&amp;quot;-like setup, which will also touch Nasal bootstrapping, i.e. the stuff we're currently doing in FGNasalSys::init(), but which we're hoping to move into scripting space.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'll revisit bootstrapping soon, because it's the only sane way to resolve dependencies (intra-module or even subsystem support). FGCnvas definitely sounds like an excellent idea.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214207#p214207&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FGCanvas Experiments &amp;amp; Updates&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Philosopher&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== A Canvas based GNS 530 GPS ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |After a long hiatus (3 years!) I felt like doing some flightgear aircraft modeling again. 3 Years ago when I started the panel for my Bo, I couldn't find a nice, modern, panel mount IFR GPS. The King GPS we have is ancient, and the Garmin 196, while nicely modelled, Is a VFR handheld. So I decided to start with this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Gns530-prototype-07-2014.png|300px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I know the GNS530 is already kind of outdated as well, but together with its smaller sibling, the GNS430 it's still much more widespread than its successor (GTN650/750). Also the GTN650/750 use touch screen interfaces, which I'm not really a fan of.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Right now this is very much work in progress. It's also the first time I wrote more than 5 lines of nasal, so I was basically learning the language while I wrote this. Still, I think it's far enough to present it here and let people try it and send critique and suggestions. Learn more at [[Garmin GNS530]]...&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=215254#p215254&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Garmin gns530&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;cbendele&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Jul 23&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Nasal: Making safer base-class calls ===&lt;br /&gt;
There's a lot of Nasal code floating around doing the equivalent of this when using multiple inheritance to make base class calls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
object.parents[x].method();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Internally, this works such that Nasal's inheritance mechanism relies on a so called '''parents''' vector that contains a list of classes that are used for field/method look-ups. This vector can be accessed using numeric indexes - thus, the correct value for '''x''' is directly affected by the way the parents vector is set up, i.e. its internal class ordering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var myClass = {parents:[FirstBaseClass, SecondBaseClass, ThirdBaseClass] };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, this practice of using indexed parents access to look up a base class should be considered a &amp;quot;hack&amp;quot; and discouraged, because it's not a particularly robust or even safe way to call a superclass, simply because it doesn't tell Nasal anything about the name of the class you're trying to call, but merely its index in the inheritance/lookup vector, which may be subject to change (e.g. due to refactoring). Thus, we encourage people to actually use Nasal's built-in '''call()''' API to accomplish the same thing in a more robust fashion:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Nasal that you want it to call a certain method in a particular class - and if that fails, you'll get better diagnostics (error messages), too. The main problem here is that the other approach is pretty vulnerable when restructuring your code, as it is heavily reliant on inheritance '''ordering''' - which is something that isn't exactly straightforward: code shouldn't &amp;quot;break&amp;quot; just because the inheritance ordering is modified. Thus, please try to use the latter idiom. If in doubt, just get in touch via the Nasal sub forum.&lt;br /&gt;
 &lt;br /&gt;
To pass argument to the method, just add them to the 2nd argument, i.e. the empty vector:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To pass a custom namespace environment, you can use this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var namespace = {};&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, namespace);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would be equivalent to this example using an anonymous namespace:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {} );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(If you want to preserve/modify the namespace, it makes sense not use an anonymous namespace though).&lt;br /&gt;
&lt;br /&gt;
To do exception handling, you can pass an empty vector and check its size (&amp;gt;=1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var err = [];&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {}, err );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also declare the variable expression inline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, var ns={}, var err=[] );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
else {&lt;br /&gt;
print(&amp;quot;Success, namespace is:&amp;quot;);&lt;br /&gt;
debug.dump(ns);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCamera ==&lt;br /&gt;
Development of FGCamera continues. The script is being redesigned to be compatible with default view system.&lt;br /&gt;
Upcoming version (FGCamera v1) will have new camera mode: &amp;quot;world-view&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|hebx8WdXHa0}}&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
=== Paro Int. Airport - VQPR ===&lt;br /&gt;
[[File:VQPR PARO AIRPORT.jpg|320px|right]]&lt;br /&gt;
{{#ev:youtube|itNY9YUmY3M||right|domestic flight from Bumthang to Paro}}&lt;br /&gt;
Works have been added to [[Paro Airport|Paro International Airport]] (VQPR) with terminal, tower, hangars and other buildings. Now users you can enjoy the apron lights, the reference points like Mr. Smiths House or other POIs like the Sangchen Choekhor Monastery. [[TerraSync]] has it all! It is not necessary to download any custom scenery. More information can be found on the wiki page: [[Paro Airport]]. This is the first airport of the Bhutanese Series. Three new domestic airports like Gelephu Airport (VQGP) are currently being developed. Work also continues on navaids for the Kingdom of Bhutan - of course only in the FlightGear-World. Everybody is invited to follow the stage of development at the designers wiki user page ([[User:Fgjosh|Fgjosh]]).&lt;br /&gt;
{{-}}&lt;br /&gt;
== Support for Nasal in Notepad++ ==&lt;br /&gt;
[[File:Highlight parse.png|400px|thumb|Screenshot of [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++]]]&lt;br /&gt;
Programming in Nasal on Windows can now be a lot friendlier with [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++].&amp;lt;br /&amp;gt;&lt;br /&gt;
Provides comprehensive syntax highlighting and class/function listing in a hierarchical fashion.&amp;lt;br/&amp;gt;&lt;br /&gt;
Syntax highlighting is available for other editors as well, for more information see [[Howto:Syntax highlighting for Nasal]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Primary Flight Displays for Android Devices ==&lt;br /&gt;
Android devices are light, thin, and offer a very decent computing power and graphics processing. They are battery operated and can connect to other devices through WiFi  (there is no need of cables). They are, in fact, perfect for integration in home-made cockpits. This new project offers the opportunity of extending their usage in the form of Primary Flight Displays and Navigation displays for airliners in Fligthgear. There are currently 4 Primary Flight Display (PFD) Apps in &amp;quot;early production&amp;quot; state: Basic, Boeing 777, Boeing 787-8, and Airbus 330. The Basic App is at this moment available in the Android Play Store. The other Apps will be uploaded during the next days provided that no serious problems are found in the Basic App. You are more than welcome to test it and give feedback! Visit the project website for more information: https://sites.google.com/site/flightgearandroid/&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jd61x-_QNpM}}&lt;br /&gt;
{{#ev:youtube|Y6M9SyMZSCk}}&lt;br /&gt;
{{#ev:youtube|N1D--DZjvtE}}&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Parachute for YASim (Thrusters &amp;amp; Nasal) ==&lt;br /&gt;
[[File:V-1 Parachute.png|350px|thumb|V-1falling slowly with a parachute]]&lt;br /&gt;
Tomaskom developed a realistically behaving parachute for YASim aircraft. It is capable of a slow and stable fall and can recover the aircraft even from very severe rotations. &amp;lt;br/&amp;gt;&lt;br /&gt;
It all began as a question about a parachute which ended by brainstorming of the best approach, you can read the related thread here: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/forum/development-hangar/4546-external-reactions-forces-in-yasim &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Re-implementing the code elsewhere is very easy, most of it can be blindly copied with just some adjustments (trigger binding, chute area, ...). There is a thread on the main forum with HOWTO for implementation, see [http://forum.flightgear.org/viewtopic.php?f=49&amp;amp;p=215650&amp;amp;sid=97b2010406d31b6fc2fabc7cf8b1c8f8 Parachute for YASim (Thrusters &amp;amp; Nasal)]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Currently there is a reference implementation in a special version of the V-1 flying bomb: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/11-other-objects-and-vehicles/400-v-1-flying-bomb &amp;lt;br/&amp;gt;&lt;br /&gt;
The drone (Firebee) for which the parachute was requested is not yet publicly available. &amp;lt;br/&amp;gt;&lt;br /&gt;
You can also get an idea of it's stabilization properties from this video: &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/81ns5ib5tf3y74t/V-1_Parachute.avi&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
=== Mainair Flash 2 Alpha ===&lt;br /&gt;
The microlight [[Mainair Flash 2 Alpha]] is now weightshift controlled and has a new wing model.&lt;br /&gt;
* redesigned FDM with weightshift-control&lt;br /&gt;
* new wing model&lt;br /&gt;
* customizable controls&lt;br /&gt;
* weight and balance gui&lt;br /&gt;
* animated cockpit view&lt;br /&gt;
* animated pilot and an optional passenger&lt;br /&gt;
* emergency parachute&lt;br /&gt;
* multiplayer ready&lt;br /&gt;
* aerotow hitch&lt;br /&gt;
[[File:Flash2a_in_Air2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Aero L-159 ALCA ===&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM||right|L-159 Disintegration}}&lt;br /&gt;
A first public version of the L-159 ALCA (Advanced Light Combat Aircraft) has been released. The aircraft is still in alpha stage and fairly incomplete (there are some changes to the model planned, so no texturing yet, no cockpit instruments), but it already has many advanced and sometimes unique features, most notably the disintegration animations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Some of the most important features include: &lt;br /&gt;
* Unique model disintegration animation (video on the right, see details here: http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=23681)&lt;br /&gt;
* Cannons with realistic fire rate and tracers once every few rounds, visible/audible over MP (hit transmission is a work in progress)&lt;br /&gt;
* Fully automated fuel system with automatic source switching and fuel level balancing&lt;br /&gt;
* Carefully tuned lights including Rembrandt support, light intensity and flares fading in daylight. You may need to increase the Lights shader setting in order to see all effects with Rembrandt on.&lt;br /&gt;
* Most payload options modeled, including optional experimental fixed fuel probe&lt;br /&gt;
* I consider the FDM (YASim) almost complete and generally well tuned, handling changes a lot with heavy payload&lt;br /&gt;
Download available from the FGUK hangar: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/8-military-jets/409-l-159-alca&lt;br /&gt;
[[File:L-159.png|300px|thumbnail|left|L-159 ALCA]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Events ==&lt;br /&gt;
[http://www.fguk.eu FGUK] will be taking the Mach Loop Challenge on Saturday 9th August, as flown by BAE in their Eurofighter simulator at Warton. An AI scenario displays the route, checks for adherence to the rules, and announces and records your time - the results will be published in the following week. More information and updates in the weeks either side of the 9th on FGUK's [https://www.facebook.com/FlightGearUK Facebook page] and [https://twitter.com/FlightGearUK Twitter account].&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74560</id>
		<title>FlightGear Newsletter July 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74560"/>
		<updated>2014-08-01T19:34:05Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter being written}}&lt;br /&gt;
&lt;br /&gt;
== 5 years of newsletters ==&lt;br /&gt;
[[File:Fgmagfiveyears.png]]&lt;br /&gt;
&lt;br /&gt;
The newsletter started in July 2009. (more to write here, just so we don't forget about it)&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Would it be an idea to provide some sort of weekly or monthly newsletter? I often find out that there are new things I didn't new about or other users that don't follow all topics won't know if there's an awsome plane released. That's why I think we need a newsletter.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Possible things to write about could be:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
- New planes that are released.&amp;lt;br/&amp;gt;&lt;br /&gt;
- New scenery projects (like a new/redrawed airport, things like the corse scenery etc.).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New FG releases (this is not very often, but it should be in the letter if so).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New forum features/subforums and other news from the forum.&amp;lt;br/&amp;gt;&lt;br /&gt;
- News from the wiki (only detailed and large tutorials, or new portals etc. so not every new article ofcourse)&amp;lt;br/&amp;gt;&lt;br /&gt;
- Events that will be held within a short periode or (links to) screenshots of the latest event(s).&amp;lt;br/&amp;gt;&lt;br /&gt;
- The first 3 or 5 pictures of a screenshot contest.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you got other idea's, post in this topic so we could extend the list.&amp;lt;br/&amp;gt;&lt;br /&gt;
I don't really know what's best way to provide the letter. But we have some options:&amp;lt;br/&amp;gt;&lt;br /&gt;
- a topic that's closed, only open for people that are making the letter (at the moment this sounds best to me).&amp;lt;br/&amp;gt;&lt;br /&gt;
- emails send to all forum-users (I don't really like this myself).&amp;lt;br/&amp;gt;&lt;br /&gt;
- a .pdf file with a link on the main page of [http://www.flightgear.org http://www.flightgear.org]&amp;lt;br/&amp;gt;&lt;br /&gt;
- or even something else&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I would like to write the letter, but if there are other people to we might split stuff (someone for scenery news, someone else for aircrafts etc.). Please respond and vote in the poll. Tips/ideas are very much appreciated.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11211#p11211&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The devel-list is great, I'm subscribed to, but not simple to read. It's more like the forum. Usually I don't want to or have time to read through all emails. So I delete most of it without reading anything more than the subject. We don't want to read a lot of topics if we only want to know what function is new and what it does. The the users (so not the developers) want something more ease to read/check. With some screenies of what they will get with a new function etc. So my idea was to make it especially for users.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Events aren't listed on the pages you gave nor some other stuff we could place in the newsletter. In the letter all important news to know will be listed together. If we get this of the ground it could be a great way to reach users to (for events etc.). So I think the newsletter still will be a addition to the lists.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11216#p11216&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |At one time a few years ago we attempted to launch a newsletter.  We had two volunteers, but we never got even the first issue out.  It's a lot of work so we need a pretty dedicated volunteer.  I've heard of other folks using scribus, but even open-office writer would probably be just fine.  Let's not get too caught up in the details of a print/publishing quality layout if we have to sacrifice time for content and just getting the newsletter out on a regular time frame.  There are a bazillion ideas for articles.  I could dust off my unpublished &amp;quot;yasim howto&amp;quot; for instance.  That ended up being about 10 pages (so not newsletter material really) but I could trim it down to a teaser article and we could post the full version on the wiki or something?&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
But if you are willing to get a newsletter rolling, that would be awsome. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11277#p11277&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;curt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue May 27&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Gijs is right when it comes to being a Developer or a User of FG is Vastly different. I know when i first started here i had no clue about lots of developmental things, now i talk of writing .xml files, modelling nasal scripting. That is due to people describing things is basic easy to understand&amp;quot; Laymans&amp;quot; terms and not the kind of language that the DEvs use (understandably of course)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11368#p11368&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;MaverickAlex&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu May 29&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since 16 to 3 voted for Yes I will release the first Newsletter as soon as possible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=15619#p15619&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Aug 21&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Why not simply start a new page on the wiki where anybody can provide contents, so that whenever it's time to send out a newsletter, the draft from the wiki could be taken?&amp;lt;br/&amp;gt;&lt;br /&gt;
That way, it wouldn't be too much work for a single person - more like a &amp;quot;community-driven&amp;quot; newsletter, while this may appear to sort of defeat the purpose, not all newsletter recipients are necessarily also wiki users.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=18015#p18015&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&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;Fri Oct 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Adding backdrop styling to Canvas (by Gijs) ==&lt;br /&gt;
Gijs was looking for an outline that follows the shape of the text, which is what backdrop provides.&lt;br /&gt;
&lt;br /&gt;
For his solution, see the two diffs below. He didn't add the full range of backdrop options, just outline for now [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23500&amp;amp;p=214278#p214275]. &lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |And this is how it looks in FlightGear now :-) Notice how the overlapping waypoints are easier to read (this image is a little exaggerated with all those fixes).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
(see the [http://i.imgur.com/dqMzBS4.png linked image])&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214268#p214268&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: osgText backdrop&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&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;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
commit 5cc0adc778bda1773189b0119d24fbaf5ecd4500&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:26:16 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/simgear/canvas/elements/CanvasText.cxx b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
index d99760a..3a986e1 100644&lt;br /&gt;
--- a/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
+++ b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
@@ -39,6 +39,7 @@ namespace canvas&lt;br /&gt;
       void setLineHeight(float factor);&lt;br /&gt;
       void setFill(const std::string&amp;amp; fill);&lt;br /&gt;
       void setBackgroundColor(const std::string&amp;amp; fill);&lt;br /&gt;
+      void setOutlineColor(const std::string&amp;amp; backdrop);&lt;br /&gt;
 &lt;br /&gt;
       SGVec2i sizeForWidth(int w) const;&lt;br /&gt;
       osg::Vec2 handleHit(const osg::Vec2f&amp;amp; pos);&lt;br /&gt;
@@ -97,6 +98,15 @@ namespace canvas&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   //----------------------------------------------------------------------------&lt;br /&gt;
+  void Text::TextOSG::setOutlineColor(const std::string&amp;amp; backdrop)&lt;br /&gt;
+  {&lt;br /&gt;
+    osg::Vec4 color;&lt;br /&gt;
+    setBackdropType(osgText::Text::OUTLINE);&lt;br /&gt;
+    if( parseColor(backdrop, color) )&lt;br /&gt;
+      setBackdropColor( color );&lt;br /&gt;
+  }&lt;br /&gt;
+&lt;br /&gt;
+  //----------------------------------------------------------------------------&lt;br /&gt;
   // simplified version of osgText::Text::computeGlyphRepresentation() to&lt;br /&gt;
   // just calculate the size for a given weight. Glpyh calculations/creating&lt;br /&gt;
   // is not necessary for this...&lt;br /&gt;
@@ -546,6 +556,7 @@ namespace canvas&lt;br /&gt;
 &lt;br /&gt;
     addStyle(&amp;quot;fill&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setFill, text);&lt;br /&gt;
     addStyle(&amp;quot;background&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setBackgroundColor, text);&lt;br /&gt;
+    addStyle(&amp;quot;backdrop&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setOutlineColor, text);&lt;br /&gt;
     addStyle(&amp;quot;character-size&amp;quot;,&lt;br /&gt;
              &amp;quot;numeric&amp;quot;,&lt;br /&gt;
              static_cast&amp;lt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;commit 838cabd2a551834cbcac2b3edd21500409ff2e98&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:27:50 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/Nasal/canvas/api.nas b/Nasal/canvas/api.nas&lt;br /&gt;
index 8bc12d8..3047dbf 100644&lt;br /&gt;
--- a/Nasal/canvas/api.nas&lt;br /&gt;
+++ b/Nasal/canvas/api.nas&lt;br /&gt;
@@ -634,6 +634,8 @@ var Text = {&lt;br /&gt;
 &lt;br /&gt;
   setColorFill: func me.set('background', _getColor(arg)),&lt;br /&gt;
   getColorFill: func me.get('background'),&lt;br /&gt;
+  &lt;br /&gt;
+  setBackdropColor: func me.set('backdrop', _getColor(arg)),&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 # Path&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCanvas Updates ==&lt;br /&gt;
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|600px|thumb|checking how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup named &amp;quot;main-aircraft&amp;quot; to easily make the whole shebang optional using a single --prop for &amp;quot;FGCanvas&amp;quot; use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23499]]]&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since the early Canvas days, we started toying with the idea of providing an FGPanel-equivalent integrated right into FlightGear using the Canvas system:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Creating a 'fgcanvas' client analogous to 'fgpanel' should be doable too, since the canvas simply renders to a single osg-Camera. Unlike fgpanel this will require OSG instead of raw GL of course, but that's the price we pay for unifying the rendering backend.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If we're rendering each display as an OSG sub-camera, extracting that logic and   wrapping it in a stand-alone OSG viewer should be simplicity itself -  &amp;lt;br/&amp;gt;&lt;br /&gt;
and so long as it's driven by properties, those can be sent over a socket. That's an approach which seems a lot more bearable to me than  &amp;lt;br/&amp;gt;&lt;br /&gt;
sending per-frame pixel surfaces over shared memory or sockets / pipes.}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The whole discussion dates back to the early FGPanel days:&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I am going to be overhauls the 2D panels / displays code in the near future, and was planning to create exactly the same idea - a standalone app that can run a single panel - good to know the idea works! (I'm also planning to internally port the 2D panel code to the new system, but that should be invisible to most people).  It will be part of the main FG codebase, not a fork. As you say, the hope is to make fggc and some related things obsolete, since the same XML+Nasal can be used in the main sim or stand-alone. Anyway, all off-topic!&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=101044#p101044&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FSWeekend 2010&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;zakalawe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Nov 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since then, we made some first FGCanvas experiments, and things proved to be fairly tricky, because many C++ subsystems were not exactly easy to make entirely optional, and because of all the implicit assumptions in Nasal code that is unconditionally-loaded from $FG_ROOT/Nasal, and which assumes to have a full session up and running:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Yeah, the stand alone mode won't be to easy. Maybe for now we should use a powerful enough computer which can also run the unneeded parts Separating the parts will be very important, not only for FGCanvas...}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Fast forward a year later, many of those show stoppers have already been resolved, mainly thanks to the work done by Zakalawe and TheTom, who've both been working on reset&amp;amp;amp;re-init, but also overall better run-time re-initialization support, as can be seen in the screen-shot below:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[FGCanvas]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Patching-fg-3.2-to-make-more-subsystems-optional.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Most subsystems still running in the screen shot shown here can be considered to be essential now, the only remaining subsystems that still need to be decoupled are:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; flight (FDM)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; scenery (tile manager, ephemeris)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;view manager&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lighting&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;terrasync&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Otherwise, it's mostly Nasal code in $FG_ROOT/Nasal where dependencies need to be better established and formalized to get rid of implicit assumptions regarding availability of certain subsystems (e.g. view.nas)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |This means that there's basically just a handful of subsystems that now need to be made optional, and that '''FGCanvas''' will actually become reality. I am going to help rework MapStructure and the ND code in order to ensure that there's no implicit assumptions on running instruments locally, so that we can eventually also drive displays remotely via properties. Roughly a year ago, I already posted some screen shots showing a FG instance that replicates a canvas property tree via telnet's &amp;quot;subscribe&amp;quot; command - it was a hack, but it worked well enough. Even though using UDP-based PUB/SUB, or maybe HLA, should probably scale better. Given the recent progress in this department, I am guessing that it may take us another ~2-3 release cycles until this materializes &amp;quot;automagically&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
In the mid-term, I would hope that we could agree to provide some dedicated API for implementing and initializing subsystems, to ensure that most future subsystems can be easily made optional/run-time configurable, which will entail establishing dependencies among subsystems in some &amp;quot;run-levels&amp;quot;-like setup, which will also touch Nasal bootstrapping, i.e. the stuff we're currently doing in FGNasalSys::init(), but which we're hoping to move into scripting space.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'll revisit bootstrapping soon, because it's the only sane way to resolve dependencies (intra-module or even subsystem support). FGCnvas definitely sounds like an excellent idea.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214207#p214207&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FGCanvas Experiments &amp;amp; Updates&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Philosopher&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== A Canvas based GNS 530 GPS ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |After a long hiatus (3 years!) I felt like doing some flightgear aircraft modeling again. 3 Years ago when I started the panel for my Bo, I couldn't find a nice, modern, panel mount IFR GPS. The King GPS we have is ancient, and the Garmin 196, while nicely modelled, Is a VFR handheld. So I decided to start with this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Gns530-prototype-07-2014.png|300px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I know the GNS530 is already kind of outdated as well, but together with its smaller sibling, the GNS430 it's still much more widespread than its successor (GTN650/750). Also the GTN650/750 use touch screen interfaces, which I'm not really a fan of.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Right now this is very much work in progress. It's also the first time I wrote more than 5 lines of nasal, so I was basically learning the language while I wrote this. Still, I think it's far enough to present it here and let people try it and send critique and suggestions. Learn more at [[Garmin GNS530]]...&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=215254#p215254&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Garmin gns530&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;cbendele&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Jul 23&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Nasal: Making safer base-class calls ===&lt;br /&gt;
There's a lot of Nasal code floating around doing the equivalent of this when using multiple inheritance to make base class calls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
object.parents[x].method();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Internally, this works such that Nasal's inheritance mechanism relies on a so called '''parents''' vector that contains a list of classes that are used for field/method look-ups. This vector can be accessed using numeric indexes - thus, the correct value for '''x''' is directly affected by the way the parents vector is set up, i.e. its internal class ordering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var myClass = {parents:[FirstBaseClass, SecondBaseClass, ThirdBaseClass] };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, this practice of using indexed parents access to look up a base class should be considered a &amp;quot;hack&amp;quot; and discouraged, because it's not a particularly robust or even safe way to call a superclass, simply because it doesn't tell Nasal anything about the name of the class you're trying to call, but merely its index in the inheritance/lookup vector, which may be subject to change (e.g. due to refactoring). Thus, we encourage people to actually use Nasal's built-in '''call()''' API to accomplish the same thing in a more robust fashion:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Nasal that you want it to call a certain method in a particular class - and if that fails, you'll get better diagnostics (error messages), too. The main problem here is that the other approach is pretty vulnerable when restructuring your code, as it is heavily reliant on inheritance '''ordering''' - which is something that isn't exactly straightforward: code shouldn't &amp;quot;break&amp;quot; just because the inheritance ordering is modified. Thus, please try to use the latter idiom. If in doubt, just get in touch via the Nasal sub forum.&lt;br /&gt;
 &lt;br /&gt;
To pass argument to the method, just add them to the 2nd argument, i.e. the empty vector:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To pass a custom namespace environment, you can use this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var namespace = {};&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, namespace);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would be equivalent to this example using an anonymous namespace:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {} );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(If you want to preserve/modify the namespace, it makes sense not use an anonymous namespace though).&lt;br /&gt;
&lt;br /&gt;
To do exception handling, you can pass an empty vector and check its size (&amp;gt;=1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var err = [];&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {}, err );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also declare the variable expression inline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, var ns={}, var err=[] );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
else {&lt;br /&gt;
print(&amp;quot;Success, namespace is:&amp;quot;);&lt;br /&gt;
debug.dump(ns);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCamera ==&lt;br /&gt;
Development of FGCamera continues. The script is being redesigned to be compatible with default view system.&lt;br /&gt;
Upcoming version (FGCamera v1) will have new camera mode: &amp;quot;world-view&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|hebx8WdXHa0}}&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
=== Paro Int. Airport - VQPR ===&lt;br /&gt;
[[File:VQPR PARO AIRPORT.jpg|320px|right]]&lt;br /&gt;
{{#ev:youtube|itNY9YUmY3M||right|domestic flight from Bumthang to Paro}}&lt;br /&gt;
Works have been added to [[Paro Airport|Paro International Airport]] (VQPR) with terminal, tower, hangars and other buildings. Now users you can enjoy the apron lights, the reference points like Mr. Smiths House or other POIs like the Sangchen Choekhor Monastery. [[TerraSync]] has it all! It is not necessary to download any custom scenery. More information can be found on the wiki page: [[Paro Airport]]. This is the first airport of the Bhutanese Series. Three new domestic airports like Gelephu Airport (VQGP) are currently being developed. Work also continues on navaids for the Kingdom of Bhutan - of course only in the FlightGear-World. Everybody is invited to follow the stage of development at the designers wiki user page ([[User:Fgjosh|Fgjosh]]).&lt;br /&gt;
{{-}}&lt;br /&gt;
== Support for Nasal in Notepad++ ==&lt;br /&gt;
[[File:Highlight parse.png|400px|thumb|Screenshot of [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++]]]&lt;br /&gt;
Programming in Nasal on Windows can now be a lot friendlier with [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++].&amp;lt;br /&amp;gt;&lt;br /&gt;
Provides comprehensive syntax highlighting and class/function listing in a hierarchical fashion.&amp;lt;br/&amp;gt;&lt;br /&gt;
Syntax highlighting is available for other editors as well, for more information see [[Howto:Syntax highlighting for Nasal]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Primary Flight Displays for Android Devices ==&lt;br /&gt;
Android devices are light, thin, and offer a very decent computing power and graphics processing. They are battery operated and can connect to other devices through WiFi  (there is no need of cables). They are, in fact, perfect for integration in home-made cockpits. This new project offers the opportunity of extending their usage in the form of Primary Flight Displays and Navigation displays for airliners in Fligthgear. There are currently 4 Primary Flight Display (PFD) Apps in &amp;quot;early production&amp;quot; state: Basic, Boeing 777, Boeing 787-8, and Airbus 330. The Basic App is at this moment available in the Android Play Store. The other Apps will be uploaded during the next days provided that no serious problems are found in the Basic App. You are more than welcome to test it and give feedback! Visit the project website for more information: https://sites.google.com/site/flightgearandroid/&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jd61x-_QNpM}}&lt;br /&gt;
{{#ev:youtube|Y6M9SyMZSCk}}&lt;br /&gt;
{{#ev:youtube|N1D--DZjvtE}}&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Parachute for YASim (Thrusters &amp;amp; Nasal) ==&lt;br /&gt;
[[File:V-1 Parachute.png|350px|thumb|V-1falling slowly with a parachute]]&lt;br /&gt;
Tomaskom developed a realistically behaving parachute for YASim aircraft. It is capable of a slow and stable fall and can recover the aircraft even from very severe rotations. &amp;lt;br/&amp;gt;&lt;br /&gt;
It all began as a question about a parachute which ended by brainstorming of the best approach, you can read the related thread here: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/forum/development-hangar/4546-external-reactions-forces-in-yasim &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Re-implementing the code elsewhere is very easy, most of it can be blindly copied with just some adjustments (trigger binding, chute area, ...). There is a thread on the main forum with HOWTO for implementation, see [http://forum.flightgear.org/viewtopic.php?f=49&amp;amp;p=215650&amp;amp;sid=97b2010406d31b6fc2fabc7cf8b1c8f8 Parachute for YASim (Thrusters &amp;amp; Nasal)]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Currently there is a reference implementation in a special version of the V-1 flying bomb: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/11-other-objects-and-vehicles/400-v-1-flying-bomb &amp;lt;br/&amp;gt;&lt;br /&gt;
The drone (Firebee) for which the parachute was requested is not yet publicly available. &amp;lt;br/&amp;gt;&lt;br /&gt;
You can also get an idea of it's stabilization properties from this video: &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/81ns5ib5tf3y74t/V-1_Parachute.avi&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
=== Mainair Flash 2 Alpha ===&lt;br /&gt;
The microlight [[Mainair Flash 2 Alpha]] is now weightshift controlled and has a new wing model.&lt;br /&gt;
* redesigned FDM with weightshift-control&lt;br /&gt;
* new wing model&lt;br /&gt;
* customizable controls&lt;br /&gt;
* weight and balance gui&lt;br /&gt;
* animated cockpit view&lt;br /&gt;
* animated pilot and an optional passenger&lt;br /&gt;
* emergency parachute&lt;br /&gt;
* multiplayer ready&lt;br /&gt;
* aerotow hitch&lt;br /&gt;
[[File:Flash2a_in_Air2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Aero L-159 ALCA ===&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM||right|L-159 Disintegration}}&lt;br /&gt;
A first public version of the L-159 ALCA (Advanced Light Combat Aircraft) has been released. The aircraft is still in alpha stage and fairly incomplete (there are some changes to the model planned, so no texturing yet, no cockpit instruments), but it already has many advanced and sometimes unique features, most notably the disintegration animations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Some of the most important features include: &lt;br /&gt;
* Unique model disintegration animation (video on the right, see details here: http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=23681)&lt;br /&gt;
* Cannons with realistic fire rate and tracers once every few rounds, visible/audible over MP (hit transmission is a work in progress)&lt;br /&gt;
* Fully automated fuel system with automatic source switching and fuel level balancing&lt;br /&gt;
* Carefully tuned lights including Rembrandt support, light intensity and flares fading in daylight. You may need to increase the Lights shader setting in order to see all effects with Rembrandt on.&lt;br /&gt;
* Most payload options modeled, including optional experimental fixed fuel probe&lt;br /&gt;
* I consider the FDM (YASim) almost complete and generally well tuned, handling changes a lot with heavy payload&lt;br /&gt;
Download available from the FGUK hangar: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/8-military-jets/409-l-159-alca&lt;br /&gt;
[[File:L-159.png|300px|thumbnail|left|L-159 ALCA]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Events ==&lt;br /&gt;
[http://www.fguk.eu FGUK] will be taking the Mach Loop Challenge on Saturday 9th August, as flown by BAE in their Eurofighter simulator at Warton. An AI scenario displays the route, checks for adherence to the rules, and announces and records your time - the results will be published in the following week. More information and updates in the weeks either side of the 9th on FGUK's [https://www.facebook.com/FlightGearUK Facebook page] and Twitter account.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74559</id>
		<title>FlightGear Newsletter July 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2014&amp;diff=74559"/>
		<updated>2014-08-01T19:32:40Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Newsletter being written}}&lt;br /&gt;
&lt;br /&gt;
== 5 years of newsletters ==&lt;br /&gt;
[[File:Fgmagfiveyears.png]]&lt;br /&gt;
&lt;br /&gt;
The newsletter started in July 2009. (more to write here, just so we don't forget about it)&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Would it be an idea to provide some sort of weekly or monthly newsletter? I often find out that there are new things I didn't new about or other users that don't follow all topics won't know if there's an awsome plane released. That's why I think we need a newsletter.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Possible things to write about could be:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
- New planes that are released.&amp;lt;br/&amp;gt;&lt;br /&gt;
- New scenery projects (like a new/redrawed airport, things like the corse scenery etc.).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New FG releases (this is not very often, but it should be in the letter if so).&amp;lt;br/&amp;gt;&lt;br /&gt;
- New forum features/subforums and other news from the forum.&amp;lt;br/&amp;gt;&lt;br /&gt;
- News from the wiki (only detailed and large tutorials, or new portals etc. so not every new article ofcourse)&amp;lt;br/&amp;gt;&lt;br /&gt;
- Events that will be held within a short periode or (links to) screenshots of the latest event(s).&amp;lt;br/&amp;gt;&lt;br /&gt;
- The first 3 or 5 pictures of a screenshot contest.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you got other idea's, post in this topic so we could extend the list.&amp;lt;br/&amp;gt;&lt;br /&gt;
I don't really know what's best way to provide the letter. But we have some options:&amp;lt;br/&amp;gt;&lt;br /&gt;
- a topic that's closed, only open for people that are making the letter (at the moment this sounds best to me).&amp;lt;br/&amp;gt;&lt;br /&gt;
- emails send to all forum-users (I don't really like this myself).&amp;lt;br/&amp;gt;&lt;br /&gt;
- a .pdf file with a link on the main page of [http://www.flightgear.org http://www.flightgear.org]&amp;lt;br/&amp;gt;&lt;br /&gt;
- or even something else&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I would like to write the letter, but if there are other people to we might split stuff (someone for scenery news, someone else for aircrafts etc.). Please respond and vote in the poll. Tips/ideas are very much appreciated.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11211#p11211&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The devel-list is great, I'm subscribed to, but not simple to read. It's more like the forum. Usually I don't want to or have time to read through all emails. So I delete most of it without reading anything more than the subject. We don't want to read a lot of topics if we only want to know what function is new and what it does. The the users (so not the developers) want something more ease to read/check. With some screenies of what they will get with a new function etc. So my idea was to make it especially for users.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Events aren't listed on the pages you gave nor some other stuff we could place in the newsletter. In the letter all important news to know will be listed together. If we get this of the ground it could be a great way to reach users to (for events etc.). So I think the newsletter still will be a addition to the lists.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11216#p11216&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon May 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |At one time a few years ago we attempted to launch a newsletter.  We had two volunteers, but we never got even the first issue out.  It's a lot of work so we need a pretty dedicated volunteer.  I've heard of other folks using scribus, but even open-office writer would probably be just fine.  Let's not get too caught up in the details of a print/publishing quality layout if we have to sacrifice time for content and just getting the newsletter out on a regular time frame.  There are a bazillion ideas for articles.  I could dust off my unpublished &amp;quot;yasim howto&amp;quot; for instance.  That ended up being about 10 pages (so not newsletter material really) but I could trim it down to a teaser article and we could post the full version on the wiki or something?&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
But if you are willing to get a newsletter rolling, that would be awsome. &lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11277#p11277&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;curt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue May 27&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Gijs is right when it comes to being a Developer or a User of FG is Vastly different. I know when i first started here i had no clue about lots of developmental things, now i talk of writing .xml files, modelling nasal scripting. That is due to people describing things is basic easy to understand&amp;quot; Laymans&amp;quot; terms and not the kind of language that the DEvs use (understandably of course)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=11368#p11368&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;MaverickAlex&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu May 29&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since 16 to 3 voted for Yes I will release the first Newsletter as soon as possible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=15619#p15619&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Thu Aug 21&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Why not simply start a new page on the wiki where anybody can provide contents, so that whenever it's time to send out a newsletter, the draft from the wiki could be taken?&amp;lt;br/&amp;gt;&lt;br /&gt;
That way, it wouldn't be too much work for a single person - more like a &amp;quot;community-driven&amp;quot; newsletter, while this may appear to sort of defeat the purpose, not all newsletter recipients are necessarily also wiki users.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=18015#p18015&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Newsletter&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;Fri Oct 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Adding backdrop styling to Canvas (by Gijs) ==&lt;br /&gt;
Gijs was looking for an outline that follows the shape of the text, which is what backdrop provides.&lt;br /&gt;
&lt;br /&gt;
For his solution, see the two diffs below. He didn't add the full range of backdrop options, just outline for now [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23500&amp;amp;p=214278#p214275]. &lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |And this is how it looks in FlightGear now :-) Notice how the overlapping waypoints are easier to read (this image is a little exaggerated with all those fixes).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
(see the [http://i.imgur.com/dqMzBS4.png linked image])&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214268#p214268&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: osgText backdrop&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Gijs&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;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
commit 5cc0adc778bda1773189b0119d24fbaf5ecd4500&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:26:16 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/simgear/canvas/elements/CanvasText.cxx b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
index d99760a..3a986e1 100644&lt;br /&gt;
--- a/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
+++ b/simgear/canvas/elements/CanvasText.cxx&lt;br /&gt;
@@ -39,6 +39,7 @@ namespace canvas&lt;br /&gt;
       void setLineHeight(float factor);&lt;br /&gt;
       void setFill(const std::string&amp;amp; fill);&lt;br /&gt;
       void setBackgroundColor(const std::string&amp;amp; fill);&lt;br /&gt;
+      void setOutlineColor(const std::string&amp;amp; backdrop);&lt;br /&gt;
 &lt;br /&gt;
       SGVec2i sizeForWidth(int w) const;&lt;br /&gt;
       osg::Vec2 handleHit(const osg::Vec2f&amp;amp; pos);&lt;br /&gt;
@@ -97,6 +98,15 @@ namespace canvas&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   //----------------------------------------------------------------------------&lt;br /&gt;
+  void Text::TextOSG::setOutlineColor(const std::string&amp;amp; backdrop)&lt;br /&gt;
+  {&lt;br /&gt;
+    osg::Vec4 color;&lt;br /&gt;
+    setBackdropType(osgText::Text::OUTLINE);&lt;br /&gt;
+    if( parseColor(backdrop, color) )&lt;br /&gt;
+      setBackdropColor( color );&lt;br /&gt;
+  }&lt;br /&gt;
+&lt;br /&gt;
+  //----------------------------------------------------------------------------&lt;br /&gt;
   // simplified version of osgText::Text::computeGlyphRepresentation() to&lt;br /&gt;
   // just calculate the size for a given weight. Glpyh calculations/creating&lt;br /&gt;
   // is not necessary for this...&lt;br /&gt;
@@ -546,6 +556,7 @@ namespace canvas&lt;br /&gt;
 &lt;br /&gt;
     addStyle(&amp;quot;fill&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setFill, text);&lt;br /&gt;
     addStyle(&amp;quot;background&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setBackgroundColor, text);&lt;br /&gt;
+    addStyle(&amp;quot;backdrop&amp;quot;, &amp;quot;color&amp;quot;, &amp;amp;TextOSG::setOutlineColor, text);&lt;br /&gt;
     addStyle(&amp;quot;character-size&amp;quot;,&lt;br /&gt;
              &amp;quot;numeric&amp;quot;,&lt;br /&gt;
              static_cast&amp;lt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;commit 838cabd2a551834cbcac2b3edd21500409ff2e98&lt;br /&gt;
Author: Gijs de Rooy&lt;br /&gt;
Date:   Mon Jul 7 18:27:50 2014 +0200&lt;br /&gt;
&lt;br /&gt;
    Canvas: add backdrop option to text&lt;br /&gt;
&lt;br /&gt;
diff --git a/Nasal/canvas/api.nas b/Nasal/canvas/api.nas&lt;br /&gt;
index 8bc12d8..3047dbf 100644&lt;br /&gt;
--- a/Nasal/canvas/api.nas&lt;br /&gt;
+++ b/Nasal/canvas/api.nas&lt;br /&gt;
@@ -634,6 +634,8 @@ var Text = {&lt;br /&gt;
 &lt;br /&gt;
   setColorFill: func me.set('background', _getColor(arg)),&lt;br /&gt;
   getColorFill: func me.get('background'),&lt;br /&gt;
+  &lt;br /&gt;
+  setBackdropColor: func me.set('backdrop', _getColor(arg)),&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 # Path&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCanvas Updates ==&lt;br /&gt;
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|600px|thumb|checking how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup named &amp;quot;main-aircraft&amp;quot; to easily make the whole shebang optional using a single --prop for &amp;quot;FGCanvas&amp;quot; use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23499]]]&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since the early Canvas days, we started toying with the idea of providing an FGPanel-equivalent integrated right into FlightGear using the Canvas system:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Creating a 'fgcanvas' client analogous to 'fgpanel' should be doable too, since the canvas simply renders to a single osg-Camera. Unlike fgpanel this will require OSG instead of raw GL of course, but that's the price we pay for unifying the rendering backend.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If we're rendering each display as an OSG sub-camera, extracting that logic and   wrapping it in a stand-alone OSG viewer should be simplicity itself -  &amp;lt;br/&amp;gt;&lt;br /&gt;
and so long as it's driven by properties, those can be sent over a socket. That's an approach which seems a lot more bearable to me than  &amp;lt;br/&amp;gt;&lt;br /&gt;
sending per-frame pixel surfaces over shared memory or sockets / pipes.}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The whole discussion dates back to the early FGPanel days:&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I am going to be overhauls the 2D panels / displays code in the near future, and was planning to create exactly the same idea - a standalone app that can run a single panel - good to know the idea works! (I'm also planning to internally port the 2D panel code to the new system, but that should be invisible to most people).  It will be part of the main FG codebase, not a fork. As you say, the hope is to make fggc and some related things obsolete, since the same XML+Nasal can be used in the main sim or stand-alone. Anyway, all off-topic!&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=101044#p101044&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FSWeekend 2010&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;zakalawe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Nov 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Since then, we made some first FGCanvas experiments, and things proved to be fairly tricky, because many C++ subsystems were not exactly easy to make entirely optional, and because of all the implicit assumptions in Nasal code that is unconditionally-loaded from $FG_ROOT/Nasal, and which assumes to have a full session up and running:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cquote|Yeah, the stand alone mode won't be to easy. Maybe for now we should use a powerful enough computer which can also run the unneeded parts Separating the parts will be very important, not only for FGCanvas...}}&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Fast forward a year later, many of those show stoppers have already been resolved, mainly thanks to the work done by Zakalawe and TheTom, who've both been working on reset&amp;amp;amp;re-init, but also overall better run-time re-initialization support, as can be seen in the screen-shot below:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[FGCanvas]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Patching-fg-3.2-to-make-more-subsystems-optional.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Most subsystems still running in the screen shot shown here can be considered to be essential now, the only remaining subsystems that still need to be decoupled are:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; flight (FDM)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; scenery (tile manager, ephemeris)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;view manager&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lighting&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;terrasync&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Otherwise, it's mostly Nasal code in $FG_ROOT/Nasal where dependencies need to be better established and formalized to get rid of implicit assumptions regarding availability of certain subsystems (e.g. view.nas)&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |This means that there's basically just a handful of subsystems that now need to be made optional, and that '''FGCanvas''' will actually become reality. I am going to help rework MapStructure and the ND code in order to ensure that there's no implicit assumptions on running instruments locally, so that we can eventually also drive displays remotely via properties. Roughly a year ago, I already posted some screen shots showing a FG instance that replicates a canvas property tree via telnet's &amp;quot;subscribe&amp;quot; command - it was a hack, but it worked well enough. Even though using UDP-based PUB/SUB, or maybe HLA, should probably scale better. Given the recent progress in this department, I am guessing that it may take us another ~2-3 release cycles until this materializes &amp;quot;automagically&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
In the mid-term, I would hope that we could agree to provide some dedicated API for implementing and initializing subsystems, to ensure that most future subsystems can be easily made optional/run-time configurable, which will entail establishing dependencies among subsystems in some &amp;quot;run-levels&amp;quot;-like setup, which will also touch Nasal bootstrapping, i.e. the stuff we're currently doing in FGNasalSys::init(), but which we're hoping to move into scripting space.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214206#p214206&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;FGCanvas Experiments &amp;amp; Updates&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 Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'll revisit bootstrapping soon, because it's the only sane way to resolve dependencies (intra-module or even subsystem support). FGCnvas definitely sounds like an excellent idea.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214207#p214207&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: FGCanvas Experiments &amp;amp; Updates&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Philosopher&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Jul 06&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== A Canvas based GNS 530 GPS ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |After a long hiatus (3 years!) I felt like doing some flightgear aircraft modeling again. 3 Years ago when I started the panel for my Bo, I couldn't find a nice, modern, panel mount IFR GPS. The King GPS we have is ancient, and the Garmin 196, while nicely modelled, Is a VFR handheld. So I decided to start with this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Gns530-prototype-07-2014.png|300px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I know the GNS530 is already kind of outdated as well, but together with its smaller sibling, the GNS430 it's still much more widespread than its successor (GTN650/750). Also the GTN650/750 use touch screen interfaces, which I'm not really a fan of.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Right now this is very much work in progress. It's also the first time I wrote more than 5 lines of nasal, so I was basically learning the language while I wrote this. Still, I think it's far enough to present it here and let people try it and send critique and suggestions. Learn more at [[Garmin GNS530]]...&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=215254#p215254&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Garmin gns530&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;cbendele&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Wed Jul 23&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Nasal: Making safer base-class calls ===&lt;br /&gt;
There's a lot of Nasal code floating around doing the equivalent of this when using multiple inheritance to make base class calls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
object.parents[x].method();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Internally, this works such that Nasal's inheritance mechanism relies on a so called '''parents''' vector that contains a list of classes that are used for field/method look-ups. This vector can be accessed using numeric indexes - thus, the correct value for '''x''' is directly affected by the way the parents vector is set up, i.e. its internal class ordering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var myClass = {parents:[FirstBaseClass, SecondBaseClass, ThirdBaseClass] };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, this practice of using indexed parents access to look up a base class should be considered a &amp;quot;hack&amp;quot; and discouraged, because it's not a particularly robust or even safe way to call a superclass, simply because it doesn't tell Nasal anything about the name of the class you're trying to call, but merely its index in the inheritance/lookup vector, which may be subject to change (e.g. due to refactoring). Thus, we encourage people to actually use Nasal's built-in '''call()''' API to accomplish the same thing in a more robust fashion:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Nasal that you want it to call a certain method in a particular class - and if that fails, you'll get better diagnostics (error messages), too. The main problem here is that the other approach is pretty vulnerable when restructuring your code, as it is heavily reliant on inheritance '''ordering''' - which is something that isn't exactly straightforward: code shouldn't &amp;quot;break&amp;quot; just because the inheritance ordering is modified. Thus, please try to use the latter idiom. If in doubt, just get in touch via the Nasal sub forum.&lt;br /&gt;
 &lt;br /&gt;
To pass argument to the method, just add them to the 2nd argument, i.e. the empty vector:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To pass a custom namespace environment, you can use this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var namespace = {};&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, namespace);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which would be equivalent to this example using an anonymous namespace:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {} );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(If you want to preserve/modify the namespace, it makes sense not use an anonymous namespace though).&lt;br /&gt;
&lt;br /&gt;
To do exception handling, you can pass an empty vector and check its size (&amp;gt;=1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
var err = [];&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, {}, err );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also declare the variable expression inline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
call(Class.method, [nil,nil,nil], me, var ns={}, var err=[] );&lt;br /&gt;
if(size(errors))&lt;br /&gt;
print(&amp;quot;There was some problem calling a base class method: Class.method()&amp;quot;);&lt;br /&gt;
else {&lt;br /&gt;
print(&amp;quot;Success, namespace is:&amp;quot;);&lt;br /&gt;
debug.dump(ns);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FGCamera ==&lt;br /&gt;
Development of FGCamera continues. The script is being redesigned to be compatible with default view system.&lt;br /&gt;
Upcoming version (FGCamera v1) will have new camera mode: &amp;quot;world-view&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|hebx8WdXHa0}}&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
=== Paro Int. Airport - VQPR ===&lt;br /&gt;
[[File:VQPR PARO AIRPORT.jpg|320px|right]]&lt;br /&gt;
{{#ev:youtube|itNY9YUmY3M||right|domestic flight from Bumthang to Paro}}&lt;br /&gt;
Works have been added to [[Paro Airport|Paro International Airport]] (VQPR) with terminal, tower, hangars and other buildings. Now users you can enjoy the apron lights, the reference points like Mr. Smiths House or other POIs like the Sangchen Choekhor Monastery. [[TerraSync]] has it all! It is not necessary to download any custom scenery. More information can be found on the wiki page: [[Paro Airport]]. This is the first airport of the Bhutanese Series. Three new domestic airports like Gelephu Airport (VQGP) are currently being developed. Work also continues on navaids for the Kingdom of Bhutan - of course only in the FlightGear-World. Everybody is invited to follow the stage of development at the designers wiki user page ([[User:Fgjosh|Fgjosh]]).&lt;br /&gt;
{{-}}&lt;br /&gt;
== Support for Nasal in Notepad++ ==&lt;br /&gt;
[[File:Highlight parse.png|400px|thumb|Screenshot of [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++]]]&lt;br /&gt;
Programming in Nasal on Windows can now be a lot friendlier with [http://gitorious.org/nasal-support/nasal-npp Nasal support for Notepad++].&amp;lt;br /&amp;gt;&lt;br /&gt;
Provides comprehensive syntax highlighting and class/function listing in a hierarchical fashion.&amp;lt;br/&amp;gt;&lt;br /&gt;
Syntax highlighting is available for other editors as well, for more information see [[Howto:Syntax highlighting for Nasal]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Primary Flight Displays for Android Devices ==&lt;br /&gt;
Android devices are light, thin, and offer a very decent computing power and graphics processing. They are battery operated and can connect to other devices through WiFi  (there is no need of cables). They are, in fact, perfect for integration in home-made cockpits. This new project offers the opportunity of extending their usage in the form of Primary Flight Displays and Navigation displays for airliners in Fligthgear. There are currently 4 Primary Flight Display (PFD) Apps in &amp;quot;early production&amp;quot; state: Basic, Boeing 777, Boeing 787-8, and Airbus 330. The Basic App is at this moment available in the Android Play Store. The other Apps will be uploaded during the next days provided that no serious problems are found in the Basic App. You are more than welcome to test it and give feedback! Visit the project website for more information: https://sites.google.com/site/flightgearandroid/&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jd61x-_QNpM}}&lt;br /&gt;
{{#ev:youtube|Y6M9SyMZSCk}}&lt;br /&gt;
{{#ev:youtube|N1D--DZjvtE}}&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Parachute for YASim (Thrusters &amp;amp; Nasal) ==&lt;br /&gt;
[[File:V-1 Parachute.png|350px|thumb|V-1falling slowly with a parachute]]&lt;br /&gt;
Tomaskom developed a realistically behaving parachute for YASim aircraft. It is capable of a slow and stable fall and can recover the aircraft even from very severe rotations. &amp;lt;br/&amp;gt;&lt;br /&gt;
It all began as a question about a parachute which ended by brainstorming of the best approach, you can read the related thread here: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/forum/development-hangar/4546-external-reactions-forces-in-yasim &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Re-implementing the code elsewhere is very easy, most of it can be blindly copied with just some adjustments (trigger binding, chute area, ...). There is a thread on the main forum with HOWTO for implementation, see [http://forum.flightgear.org/viewtopic.php?f=49&amp;amp;p=215650&amp;amp;sid=97b2010406d31b6fc2fabc7cf8b1c8f8 Parachute for YASim (Thrusters &amp;amp; Nasal)]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Currently there is a reference implementation in a special version of the V-1 flying bomb: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/11-other-objects-and-vehicles/400-v-1-flying-bomb &amp;lt;br/&amp;gt;&lt;br /&gt;
The drone (Firebee) for which the parachute was requested is not yet publicly available. &amp;lt;br/&amp;gt;&lt;br /&gt;
You can also get an idea of it's stabilization properties from this video: &amp;lt;br/&amp;gt;&lt;br /&gt;
https://www.dropbox.com/s/81ns5ib5tf3y74t/V-1_Parachute.avi&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
=== Mainair Flash 2 Alpha ===&lt;br /&gt;
The microlight [[Mainair Flash 2 Alpha]] is now weightshift controlled and has a new wing model.&lt;br /&gt;
* redesigned FDM with weightshift-control&lt;br /&gt;
* new wing model&lt;br /&gt;
* customizable controls&lt;br /&gt;
* weight and balance gui&lt;br /&gt;
* animated cockpit view&lt;br /&gt;
* animated pilot and an optional passenger&lt;br /&gt;
* emergency parachute&lt;br /&gt;
* multiplayer ready&lt;br /&gt;
* aerotow hitch&lt;br /&gt;
[[File:Flash2a_in_Air2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Aero L-159 ALCA ===&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM||right|L-159 Disintegration}}&lt;br /&gt;
A first public version of the L-159 ALCA (Advanced Light Combat Aircraft) has been released. The aircraft is still in alpha stage and fairly incomplete (there are some changes to the model planned, so no texturing yet, no cockpit instruments), but it already has many advanced and sometimes unique features, most notably the disintegration animations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Some of the most important features include: &lt;br /&gt;
* Unique model disintegration animation (video on the right, see details here: http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=23681)&lt;br /&gt;
* Cannons with realistic fire rate and tracers once every few rounds, visible/audible over MP (hit transmission is a work in progress)&lt;br /&gt;
* Fully automated fuel system with automatic source switching and fuel level balancing&lt;br /&gt;
* Carefully tuned lights including Rembrandt support, light intensity and flares fading in daylight. You may need to increase the Lights shader setting in order to see all effects with Rembrandt on.&lt;br /&gt;
* Most payload options modeled, including optional experimental fixed fuel probe&lt;br /&gt;
* I consider the FDM (YASim) almost complete and generally well tuned, handling changes a lot with heavy payload&lt;br /&gt;
Download available from the FGUK hangar: &amp;lt;br/&amp;gt;&lt;br /&gt;
http://fguk.eu/index.php/hangar/viewdownload/8-military-jets/409-l-159-alca&lt;br /&gt;
[[File:L-159.png|300px|thumbnail|left|L-159 ALCA]]&lt;br /&gt;
&lt;br /&gt;
== Multiplayer Events ==&lt;br /&gt;
[http://www.fguk.eu FGUK] will be taking the Mach Loop Challenge on Saturday 9th August, as flown by BAE in their Eurofighter simulator at Warton. An AI scenario displays the route, checks for adherence to the rules, and announces and records your time - the results will be published in the following week. More information and updates in the weeks either side of the 9th on FGUK's [https://www.facebook.com/FlightGearUK Facebook page] and Twitter account.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2014&amp;diff=72565</id>
		<title>FlightGear Newsletter June 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2014&amp;diff=72565"/>
		<updated>2014-06-10T22:15:52Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* FlightGear addons and mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{newsletter}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
{{Newsletter being written}}&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;
=== Logo Proposal ===&lt;br /&gt;
This is the new logo badge concept proposal for FlightGear designed by Michat.&lt;br /&gt;
&lt;br /&gt;
[[File:Fglogo1.png]]&lt;br /&gt;
[[File:Fglogowiki.png]]&lt;br /&gt;
[[File:Fglogoforum.png]]&lt;br /&gt;
&lt;br /&gt;
===MapStructure stress-testing ===&lt;br /&gt;
&lt;br /&gt;
[[File:Map-canvas-mapstructure-performance.png|thumb|stress-testing [[MapStructure]] using the ufo @ KSFO circling at 2000 kts in a climb, see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=21509&amp;amp;p=211611#p211611] ]]&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;Now that Hyde has committed Philosopher's latest changes, I'd be interested in getting some more feedback on performance.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Here, I am using the ufo @ksfo circling in a shuttle climb at &amp;gt;= 2000 kts GS and getting roughly 30 fps and 40-60 ms.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211611#p211611&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: NavDisplay &amp;amp; MapStructure discussion (previously via PM)&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;Tue Jun 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 777 EFB Prototype by I-NEMO ===&lt;br /&gt;
[[File:777-EFB-MAIN.png|thumb|777-200ER EFB [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23196]]]&lt;br /&gt;
[[File:777-EFB-AIRPORT-SEARCH.png|thumb|777-200 EFB AIRPORT SEARCH, see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23196&amp;amp;p=211410#p211410]]]&lt;br /&gt;
&lt;br /&gt;
I-NEMO has started porting his 777/EFB prototype to [[Canvas]]&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;As I wrote several times, I finally decided to put hands on the EFB (Reason: No one ever took care of developing an EFB for the 777; a 'working' EFB, though) with two (2) main goals in mind:&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
1) to do something to compensate for the lacking of an EFB inside the Seattle.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
2) to actually try (I repeat it: 'try') to learn some first essentials of nasal.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt; this Seattle EFB is just a 'rude' one: with this term, I mean (as a word's pun) 'unpolite'. I'm perfectly aware that the coding is horrible, clumsy, repetitive, silly and very, very far from what it should be. &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
My first aim was simply to have a somehow 'working' EFB inside the Seattle's Cockpit.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
My second aim was to use EFB.nas as a starting playground for a newbie as I am on 'nasal'. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;I do not pretend that current 777's EFB.nas is a piece of nice software; but - to my initial purpose - it works. Not completely, not nicely, not properly...but it's a starting point. At least, it works...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Learn more at [[Canvas EFB Framework]] ...&lt;br /&gt;
&lt;br /&gt;
=== Canvas Garmin GPSMap196 Updates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avidyne Entegra R9 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Extra500canvas.png|thumb|Work has begun to analyze, refactor and generalize useful parts of the [[Avidyne Entegra R9]] to help reuse some code in similar MFD efforts, like the [[Garmin GPSMap 196]] or [[Canvas EFB Framework]]]]&lt;br /&gt;
&lt;br /&gt;
=== Towards an Aircraft-agnostic MFD Framework ===&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping.png|thumb|This is an adapted version of the [[Garmin GPSMap 196]] that is currently being developed by F-JJTH. Here, the whole instrument is entirely set up in XML space, including buttons/event handling, but also the embedded canvas region that serves as the 'screen'. The idea is to allow arbitrary MFDs to be specified in an aircraft-agnostic fashion, including displays like a PFD, [[NavDisplay]] or EFB. For details, please see [[Canvas Glass Cockpit Efforts]].]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping-with-mapstructure.png|400px|thumb|This demonstrates how a purely XML-based MFD framework can instantiate dynamic [[MapStructure]] layers - none of this involves any [[Nasal]] coding now, it's just an XML file - to learn more, see [[Canvas Glass Cockpit Efforts]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping-with-mapstructure-with-kln89-skin.png|400px|thumb|This screen shot shows the texture of the hard-coded KLN89 instrument used as a skin/theme for the MFD instrument, with a MapStructure-powered map shown.]]&lt;br /&gt;
&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&lt;br /&gt;
=== Missions &amp;amp; Adventures ===&lt;br /&gt;
[[File:Missionb.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
{{forum|79|Tutorials, Missions &amp;amp; Adventures}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Getting your own ideas and features in FlightGear without having to be a coder ===&lt;br /&gt;
&lt;br /&gt;
We've been seeing an increasing number of discussions on the forum started by people who are obviously eager to become potential contributors, either by adding new features to FlightGear, or by improving other aspects of FlightGear as a whole (community, infrastructure, usability, end-user support, accessibility, funding etc). Unfortunately, this has caused some friction over time, because people were expecting their involvement to work differently, especially those primarily making suggestions and providing feedback through discussions are obviously getting fed up with the community of contributors not responding directly to such feedback.&lt;br /&gt;
Now, we do appreciate any community involvement obviously, but people who are serious about actually bringing certain changes to FlightGear will find that just making suggestions will typically not work too well, and that just participating in lengthy community discussions is usually fruitless. We've had some extremely heated discussions over the years, some debating interesting ideas - and many ending up being dozens of pages in size, containing hundreds of postings. Often, these contain lots of good ideas and suggestions, but sooner or later these suggestions become emotional and are no longer constructive - yet, we're dealing with them constantly, which is taking up resources, i.e. time and energy. In an open source project like FlightGear, which is entirely volunteer driven, time is the most precious resource we have to contribute. It is like a &amp;quot;currency&amp;quot; for the project, and whenever something (or someone) is taking up lots of time without anything materializing, this is draining resources from other areas, no matter if it's end-user support or development in some shape or form.&lt;br /&gt;
We are now trying to document how &amp;quot;bootstrapping&amp;quot; a feature or project works conceptually, i.e. implementing new features for Flightgear - to provide a perspective that enables people to better understand how to bring changes to FlightGear without having to do all the work on their own. Note that this doesn't mean that this is the only way to accomplish something, but this is a tested and proven way - which we didn't come up with, but which is just a convention that happens to &amp;quot;just work&amp;quot;, which is an important aspect for a non-organized project like FlightGear, where development itself also primarily &amp;quot;just happens&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Continue reading at [[Implementing new features for FlightGear]]...&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;
If you interested in other developing, i.e. not C++ but [[Nasal]] scripting and/or XML, there are some articles listed at [[:Category:Popular Community Requests]] that have been suggested, but not fully or partially implemented, and are &amp;quot;mentored efforts&amp;quot;. That means that the community is looking for a hand in implementing them -- help from ''you'' -- but will also have more experienced developers willing to help you, for example by having tailored tutorials or even code snippets written for you. As mentioned in each page, please get in touch if you would like to help with one of those projects. In comparison to C/C++, Nasal is simpler and easier to learn quickly. It also doesn't require recompiling, which means that you can test and develop changes with a standard FlightGear release, i.e. off of the main download page. As long as you can run FlightGear, you can also run Nasal code and contribute. Many tutorials covering a wide range of projects are listed at [[Nasal]], so if you know a programming/scripting language already, or would like to try something new, go ahead: read, write, try and get involved! When it comes to Nasal scripting, playing around with different tutorials and code snippets is more important than being an experienced coder. &lt;br /&gt;
&lt;br /&gt;
{{CppBind Ideas}}&lt;br /&gt;
&lt;br /&gt;
Of course, you're also free to work on whatever you want -- FlightGear as a community-driven doesn't tell people what to do, but welcomes any contributions from anybody, as long as they have acceptable quality and are free to be licensed under the GNU GPL. So if you have something you would like to contribute back to FlightGear, please get in touch! (Preferably using Gitorious for larger merge requests, and the forums or (core-) developer's mailing list to inform the developers of what you want to contribute back.) Changes contributed 6-8 weeks before a release will usually appear in the next release, so your changes can be spread across the world.&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;
=== Damage and disintegration ===&lt;br /&gt;
{{#ev:youtube|OpwNaoO3xMQ|240|right|Tomaskom's V-1 used in anger over London}}&lt;br /&gt;
{{#ev:youtube|H4XDuLo35ks|240|right|Victor V2.0 damage script causing a catastrophic failure and fire}}&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM|240|right|L-159 disintegration}}&lt;br /&gt;
The development team at FGUK have been experimenting with modelling aircraft damage in a number of different ways. First of all, Tomaskom has used the particle system carefully to produce visually impressive fireballs and smoke columns with very little FPS impact. First seen in his V-1, we hope to adapt this to simulate realistic fireballs for ground impacts (where appropriate). For the moment, it explodes with the full force of a V-1's explosive payload. On the right is a video excerpt from the #FlightNight which Tom organised to debut the V-1, where we all had '''way''' too much fun bombing London. As you can see, the smoke is visible from quite a long way away from the impact, and despite two fires burning with huge smoke columns, and over ten multiplayer aircraft within model range, the frame rates are still more than acceptable. StuartC has already integrated the explosion and fireball into several development aircraft, and we expect eventually to combine it with the disintegration code and make the size of the explosion dependent on fuel load etc.&lt;br /&gt;
&lt;br /&gt;
In a separate development, Algernon's work on the Victor V2.0(YASim) now includes modelled damage, a collection of Nasal scripts, some modified from existing FlightGear staples, which detects irregularities such as component failures, birdstrikes and combat weapon damage and adversely affects system performance and reliability accordingly. Unserviceability often follows, using the existing FlightGear failures system, and compatibility will be maintained as the failures system is improved. The damage script also calculates probabilites for chain reaction damage - for instance, an explosion or serious fire in one Victor engine will usually have an effect on the other. In extreme circumstances, an explosion will trigger further explosions and destroy the aircraft. The second video on the right shows a serious induced explosion on the Victor's number one engine at night. Some fine-tuning of the Rembrandt light has been carried out since this video was shot, so apologies for the visible cut-off.&lt;br /&gt;
&lt;br /&gt;
Finally, and most spectacularly, Tomaskom has demonstrated the disintegration capabilities of his L-159, which is under development. Hopefully, he will explain all here before publication date.&lt;br /&gt;
&lt;br /&gt;
=== Scenesetter ===&lt;br /&gt;
Scenesetter is a piece of code by Algernon, very early in development but already quite effective, which can effect changes to the time and weather from an AI scenario synchronously with other MP players. A crude proof of concept was used in the recent FGUK #FlightNight &amp;quot;British Weather&amp;quot;, where pilots visited different airfields with various unpleasant flying conditions. Scenesetter pushes METAR strings to the FlightGear weather system based on the location of an associated Navaid, establishing a circular zone of a specified radius around it in which METAR will be changed. Start time can be specified too, either by providing a local start time or a local time offset (useful for Multiplayer use where players will not all start the AI scenario at precisely the same time).&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;
&lt;br /&gt;
The Swedish fighter jet Saab JA-37 Viggen has been updated, since it was included in FG 3.0.0; More instruments, additional liveries, aerodynamic response to payload and tooltips on instruments. Option for automatic reverse thrust at touchdown, selection of HUD brightness, disabling of structural damage. The aircraft now also has multiplayer sounds and better cockpit view helps seeing the landing strip. Support for FG 2.8 by deleting a small section in an xml file. Also worth mentioning is countless bug-fixes and improvements, e.g. better handling at high altitudes and a bug fix in the lift force formula.&lt;br /&gt;
&lt;br /&gt;
[[File:Saab JA-37 Viggen Blue Peter Livery.png|Blå Petter Livery for JA-37]]&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&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;
&lt;br /&gt;
{{Volunteer Intro|mode=showlogo}}&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The Terragear maintainers are looking for volunteers to help with development on the next world scenery project.  If you've ever wondered how a full 3D model of earth can be generated from raw data, now is your chance.  See the plan at [[World Scenery 3.0 roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter]]&lt;br /&gt;
&amp;lt;!-- this needs to be changed after each release, so that newsletters show up in the proper category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Changes after 3.00]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2014&amp;diff=72538</id>
		<title>FlightGear Newsletter June 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2014&amp;diff=72538"/>
		<updated>2014-06-09T12:26:41Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{newsletter}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
{{Newsletter being written}}&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;
=== Logo Proposal ===&lt;br /&gt;
This is the new logo badge concept proposal for FlightGear designed by Michat.&lt;br /&gt;
&lt;br /&gt;
[[File:Fglogo1.png]]&lt;br /&gt;
[[File:Fglogowiki.png]]&lt;br /&gt;
[[File:Fglogoforum.png]]&lt;br /&gt;
&lt;br /&gt;
===MapStructure stress-testing ===&lt;br /&gt;
&lt;br /&gt;
[[File:Map-canvas-mapstructure-performance.png|thumb|stress-testing [[MapStructure]] using the ufo @ KSFO circling at 2000 kts in a climb, see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=21509&amp;amp;p=211611#p211611] ]]&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;Now that Hyde has committed Philosopher's latest changes, I'd be interested in getting some more feedback on performance.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Here, I am using the ufo @ksfo circling in a shuttle climb at &amp;gt;= 2000 kts GS and getting roughly 30 fps and 40-60 ms.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211611#p211611&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: NavDisplay &amp;amp; MapStructure discussion (previously via PM)&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;Tue Jun 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 777 EFB Prototype by I-NEMO ===&lt;br /&gt;
[[File:777-EFB-MAIN.png|thumb|777-200ER EFB [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23196]]]&lt;br /&gt;
[[File:777-EFB-AIRPORT-SEARCH.png|thumb|777-200 EFB AIRPORT SEARCH, see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23196&amp;amp;p=211410#p211410]]]&lt;br /&gt;
&lt;br /&gt;
I-NEMO has started porting his 777/EFB prototype to [[Canvas]]&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;As I wrote several times, I finally decided to put hands on the EFB (Reason: No one ever took care of developing an EFB for the 777; a 'working' EFB, though) with two (2) main goals in mind:&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
1) to do something to compensate for the lacking of an EFB inside the Seattle.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
2) to actually try (I repeat it: 'try') to learn some first essentials of nasal.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt; this Seattle EFB is just a 'rude' one: with this term, I mean (as a word's pun) 'unpolite'. I'm perfectly aware that the coding is horrible, clumsy, repetitive, silly and very, very far from what it should be. &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
My first aim was simply to have a somehow 'working' EFB inside the Seattle's Cockpit.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
My second aim was to use EFB.nas as a starting playground for a newbie as I am on 'nasal'. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;I do not pretend that current 777's EFB.nas is a piece of nice software; but - to my initial purpose - it works. Not completely, not nicely, not properly...but it's a starting point. At least, it works...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Learn more at [[Canvas EFB Framework]] ...&lt;br /&gt;
&lt;br /&gt;
=== Canvas Garmin GPSMap196 Updates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avidyne Entegra R9 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Extra500canvas.png|thumb|Work has begun to analyze, refactor and generalize useful parts of the [[Avidyne Entegra R9]] to help reuse some code in similar MFD efforts, like the [[Garmin GPSMap 196]] or [[Canvas EFB Framework]]]]&lt;br /&gt;
&lt;br /&gt;
=== Towards an Aircraft-agnostic MFD Framework ===&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping.png|thumb|This is an adapted version of the [[Garmin GPSMap 196]] that is currently being developed by F-JJTH. Here, the whole instrument is entirely set up in XML space, including buttons/event handling, but also the embedded canvas region that serves as the 'screen'. The idea is to allow arbitrary MFDs to be specified in an aircraft-agnostic fashion, including displays like a PFD, [[NavDisplay]] or EFB. For details, please see [[Canvas Glass Cockpit Efforts]].]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping-with-mapstructure.png|400px|thumb|This demonstrates how a purely XML-based MFD framework can instantiate dynamic [[MapStructure]] layers - none of this involves any [[Nasal]] coding now, it's just an XML file - to learn more, see [[Canvas Glass Cockpit Efforts]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping-with-mapstructure-with-kln89-skin.png|400px|thumb|This screen shot shows the texture of the hard-coded KLN89 instrument used as a skin/theme for the MFD instrument, with a MapStructure-powered map shown.]]&lt;br /&gt;
&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&lt;br /&gt;
=== Missions &amp;amp; Adventures ===&lt;br /&gt;
[[File:Missionb.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
{{forum|79|Tutorials, Missions &amp;amp; Adventures}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Getting your own ideas and features in FlightGear without having to be a coder ===&lt;br /&gt;
&lt;br /&gt;
We've been seeing an increasing number of discussions on the forum started by people who are obviously eager to become potential contributors, either by adding new features to FlightGear, or by improving other aspects of FlightGear as a whole (community, infrastructure, usability, end-user support, accessibility, funding etc). Unfortunately, this has caused some friction over time, because people were expecting their involvement to work differently, especially those primarily making suggestions and providing feedback through discussions are obviously getting fed up with the community of contributors not responding directly to such feedback.&lt;br /&gt;
Now, we do appreciate any community involvement obviously, but people who are serious about actually bringing certain changes to FlightGear will find that just making suggestions will typically not work too well, and that just participating in lengthy community discussions is usually fruitless. We've had some extremely heated discussions over the years, some debating interesting ideas - and many ending up being dozens of pages in size, containing hundreds of postings. Often, these contain lots of good ideas and suggestions, but sooner or later these suggestions become emotional and are no longer constructive - yet, we're dealing with them constantly, which is taking up resources, i.e. time and energy. In an open source project like FlightGear, which is entirely volunteer driven, time is the most precious resource we have to contribute. It is like a &amp;quot;currency&amp;quot; for the project, and whenever something (or someone) is taking up lots of time without anything materializing, this is draining resources from other areas, no matter if it's end-user support or development in some shape or form.&lt;br /&gt;
We are now trying to document how &amp;quot;bootstrapping&amp;quot; a feature or project works conceptually, i.e. implementing new features for Flightgear - to provide a perspective that enables people to better understand how to bring changes to FlightGear without having to do all the work on their own. Note that this doesn't mean that this is the only way to accomplish something, but this is a tested and proven way - which we didn't come up with, but which is just a convention that happens to &amp;quot;just work&amp;quot;, which is an important aspect for a non-organized project like FlightGear, where development itself also primarily &amp;quot;just happens&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Continue reading at [[Implementing new features for FlightGear]]...&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;
If you interested in other developing, i.e. not C++ but [[Nasal]] scripting and/or XML, there are some articles listed at [[:Category:Popular Community Requests]] that have been suggested, but not fully or partially implemented, and are &amp;quot;mentored efforts&amp;quot;. That means that the community is looking for a hand in implementing them -- help from ''you'' -- but will also have more experienced developers willing to help you, for example by having tailored tutorials or even code snippets written for you. As mentioned in each page, please get in touch if you would like to help with one of those projects. In comparison to C/C++, Nasal is simpler and easier to learn quickly. It also doesn't require recompiling, which means that you can test and develop changes with a standard FlightGear release, i.e. off of the main download page. As long as you can run FlightGear, you can also run Nasal code and contribute. Many tutorials covering a wide range of projects are listed at [[Nasal]], so if you know a programming/scripting language already, or would like to try something new, go ahead: read, write, try and get involved! When it comes to Nasal scripting, playing around with different tutorials and code snippets is more important than being an experienced coder. &lt;br /&gt;
&lt;br /&gt;
{{CppBind Ideas}}&lt;br /&gt;
&lt;br /&gt;
Of course, you're also free to work on whatever you want -- FlightGear as a community-driven doesn't tell people what to do, but welcomes any contributions from anybody, as long as they have acceptable quality and are free to be licensed under the GNU GPL. So if you have something you would like to contribute back to FlightGear, please get in touch! (Preferably using Gitorious for larger merge requests, and the forums or (core-) developer's mailing list to inform the developers of what you want to contribute back.) Changes contributed 6-8 weeks before a release will usually appear in the next release, so your changes can be spread across the world.&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;
=== Damage and disintegration ===&lt;br /&gt;
{{#ev:youtube|OpwNaoO3xMQ|240|right|Tomaskom's V-1 used in anger over London}}&lt;br /&gt;
{{#ev:youtube|H4XDuLo35ks|240|right|Victor V2.0 damage script causing a catastrophic failure and fire}}&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM|240|right|L-159 disintegration}}&lt;br /&gt;
The development team at FGUK have been experimenting with modelling aircraft damage in a number of different ways. First of all, Tomaskom has used the particle system carefully to produce visually impressive fireballs and smoke columns with very little FPS impact. First seen in his V-1, we hope to adapt this to simulate realistic fireballs for ground impacts (where appropriate). For the moment, it explodes with the full force of a V-1's explosive payload. On the right is a video excerpt from the #FlightNight which Tom organised to debut the V-1, where we all had '''way''' too much fun bombing London. As you can see, the smoke is visible from quite a long way away from the impact, and despite two fires burning with huge smoke columns, and over ten multiplayer aircraft within model range, the frame rates are still more than acceptable. StuartC has already integrated the explosion and fireball into several development aircraft, and we expect eventually to combine it with the disintegration code and make the size of the explosion dependent on fuel load etc.&lt;br /&gt;
&lt;br /&gt;
In a separate development, Algernon's work on the Victor V2.0(YASim) now includes modelled damage, a collection of Nasal scripts, some modified from existing FlightGear staples, which detects irregularities such as component failures, birdstrikes and combat weapon damage and adversely affects system performance and reliability accordingly. Unserviceability often follows, using the existing FlightGear failures system, and compatibility will be maintained as the failures system is improved. The damage script also calculates probabilites for chain reaction damage - for instance, an explosion or serious fire in one Victor engine will usually have an effect on the other. In extreme circumstances, an explosion will trigger further explosions and destroy the aircraft. The second video on the right shows a serious induced explosion on the Victor's number one engine at night. Some fine-tuning of the Rembrandt light has been carried out since this video was shot, so apologies for the visible cut-off.&lt;br /&gt;
&lt;br /&gt;
Finally, and most spectacularly, FGUK aerodynamicist Tomaskom has demonstrated the disintegration capabilities of his L-159, which is under development. I can say little more than the third video on the right demonstrates, except that it's still a work in progress and a proof of concept, and we expect numerous different structural failures will be able to be modelled, hopefully in partnership with the damage script described above. We're pretty excited about this one!&lt;br /&gt;
&lt;br /&gt;
=== Scenesetter ===&lt;br /&gt;
Scenesetter is a piece of code by Algernon, very early in development but already quite effective, which can effect changes to the time and weather from an AI scenario synchronously with other MP players. A crude proof of concept was used in the recent FGUK #FlightNight &amp;quot;British Weather&amp;quot;, where pilots visited different airfields with various unpleasant flying conditions. Scenesetter pushes METAR strings to the FlightGear weather system based on the location of an associated Navaid, establishing a circular zone of a specified radius around it in which METAR will be changed. Start time can be specified too, either by providing a local start time or a local time offset (useful for Multiplayer use where players will not all start the AI scenario at precisely the same time). &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;
&lt;br /&gt;
The Swedish fighter jet Saab JA-37 Viggen has been updated, since it was included in FG 3.0.0; More instruments, additional liveries, aerodynamic response to payload and tooltips on instruments. Option for automatic reverse thrust at touchdown, selection of HUD brightness, disabling of structural damage. The aircraft now also has multiplayer sounds and better cockpit view helps seeing the landing strip. Support for FG 2.8 by deleting a small section in an xml file. Also worth mentioning is countless bug-fixes and improvements, e.g. better handling at high altitudes and a bug fix in the lift force formula.&lt;br /&gt;
&lt;br /&gt;
[[File:Saab JA-37 Viggen Blue Peter Livery.png|Blå Petter Livery for JA-37]]&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&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;
&lt;br /&gt;
{{Volunteer Intro|mode=showlogo}}&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The Terragear maintainers are looking for volunteers to help with development on the next world scenery project.  If you've ever wondered how a full 3D model of earth can be generated from raw data, now is your chance.  See the plan at [[World Scenery 3.0 roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter]]&lt;br /&gt;
&amp;lt;!-- this needs to be changed after each release, so that newsletters show up in the proper category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Changes after 3.00]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2014&amp;diff=72537</id>
		<title>FlightGear Newsletter June 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2014&amp;diff=72537"/>
		<updated>2014-06-09T12:26:07Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{newsletter}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
{{Newsletter being written}}&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;
=== Logo Proposal ===&lt;br /&gt;
This is the new logo badge concept proposal for FlightGear designed by Michat.&lt;br /&gt;
&lt;br /&gt;
[[File:Fglogo1.png]]&lt;br /&gt;
[[File:Fglogowiki.png]]&lt;br /&gt;
[[File:Fglogoforum.png]]&lt;br /&gt;
&lt;br /&gt;
===MapStructure stress-testing ===&lt;br /&gt;
&lt;br /&gt;
[[File:Map-canvas-mapstructure-performance.png|thumb|stress-testing [[MapStructure]] using the ufo @ KSFO circling at 2000 kts in a climb, see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=21509&amp;amp;p=211611#p211611] ]]&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;Now that Hyde has committed Philosopher's latest changes, I'd be interested in getting some more feedback on performance.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Here, I am using the ufo @ksfo circling in a shuttle climb at &amp;gt;= 2000 kts GS and getting roughly 30 fps and 40-60 ms.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211611#p211611&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: NavDisplay &amp;amp; MapStructure discussion (previously via PM)&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;Tue Jun 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 777 EFB Prototype by I-NEMO ===&lt;br /&gt;
[[File:777-EFB-MAIN.png|thumb|777-200ER EFB [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23196]]]&lt;br /&gt;
[[File:777-EFB-AIRPORT-SEARCH.png|thumb|777-200 EFB AIRPORT SEARCH, see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23196&amp;amp;p=211410#p211410]]]&lt;br /&gt;
&lt;br /&gt;
I-NEMO has started porting his 777/EFB prototype to [[Canvas]]&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;As I wrote several times, I finally decided to put hands on the EFB (Reason: No one ever took care of developing an EFB for the 777; a 'working' EFB, though) with two (2) main goals in mind:&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
1) to do something to compensate for the lacking of an EFB inside the Seattle.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
2) to actually try (I repeat it: 'try') to learn some first essentials of nasal.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt; this Seattle EFB is just a 'rude' one: with this term, I mean (as a word's pun) 'unpolite'. I'm perfectly aware that the coding is horrible, clumsy, repetitive, silly and very, very far from what it should be. &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
My first aim was simply to have a somehow 'working' EFB inside the Seattle's Cockpit.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
My second aim was to use EFB.nas as a starting playground for a newbie as I am on 'nasal'. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;I do not pretend that current 777's EFB.nas is a piece of nice software; but - to my initial purpose - it works. Not completely, not nicely, not properly...but it's a starting point. At least, it works...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Learn more at [[Canvas EFB Framework]] ...&lt;br /&gt;
&lt;br /&gt;
=== Canvas Garmin GPSMap196 Updates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avidyne Entegra R9 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Extra500canvas.png|thumb|Work has begun to analyze, refactor and generalize useful parts of the [[Avidyne Entegra R9]] to help reuse some code in similar MFD efforts, like the [[Garmin GPSMap 196]] or [[Canvas EFB Framework]]]]&lt;br /&gt;
&lt;br /&gt;
=== Towards an Aircraft-agnostic MFD Framework ===&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping.png|thumb|This is an adapted version of the [[Garmin GPSMap 196]] that is currently being developed by F-JJTH. Here, the whole instrument is entirely set up in XML space, including buttons/event handling, but also the embedded canvas region that serves as the 'screen'. The idea is to allow arbitrary MFDs to be specified in an aircraft-agnostic fashion, including displays like a PFD, [[NavDisplay]] or EFB. For details, please see [[Canvas Glass Cockpit Efforts]].]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping-with-mapstructure.png|400px|thumb|This demonstrates how a purely XML-based MFD framework can instantiate dynamic [[MapStructure]] layers - none of this involves any [[Nasal]] coding now, it's just an XML file - to learn more, see [[Canvas Glass Cockpit Efforts]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping-with-mapstructure-with-kln89-skin.png|400px|thumb|This screen shot shows the texture of the hard-coded KLN89 instrument used as a skin/theme for the MFD instrument, with a MapStructure-powered map shown.]]&lt;br /&gt;
&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&lt;br /&gt;
=== Missions &amp;amp; Adventures ===&lt;br /&gt;
[[File:Missionb.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
{{forum|79|Tutorials, Missions &amp;amp; Adventures}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Getting your own ideas and features in FlightGear without having to be a coder ===&lt;br /&gt;
&lt;br /&gt;
We've been seeing an increasing number of discussions on the forum started by people who are obviously eager to become potential contributors, either by adding new features to FlightGear, or by improving other aspects of FlightGear as a whole (community, infrastructure, usability, end-user support, accessibility, funding etc). Unfortunately, this has caused some friction over time, because people were expecting their involvement to work differently, especially those primarily making suggestions and providing feedback through discussions are obviously getting fed up with the community of contributors not responding directly to such feedback.&lt;br /&gt;
Now, we do appreciate any community involvement obviously, but people who are serious about actually bringing certain changes to FlightGear will find that just making suggestions will typically not work too well, and that just participating in lengthy community discussions is usually fruitless. We've had some extremely heated discussions over the years, some debating interesting ideas - and many ending up being dozens of pages in size, containing hundreds of postings. Often, these contain lots of good ideas and suggestions, but sooner or later these suggestions become emotional and are no longer constructive - yet, we're dealing with them constantly, which is taking up resources, i.e. time and energy. In an open source project like FlightGear, which is entirely volunteer driven, time is the most precious resource we have to contribute. It is like a &amp;quot;currency&amp;quot; for the project, and whenever something (or someone) is taking up lots of time without anything materializing, this is draining resources from other areas, no matter if it's end-user support or development in some shape or form.&lt;br /&gt;
We are now trying to document how &amp;quot;bootstrapping&amp;quot; a feature or project works conceptually, i.e. implementing new features for Flightgear - to provide a perspective that enables people to better understand how to bring changes to FlightGear without having to do all the work on their own. Note that this doesn't mean that this is the only way to accomplish something, but this is a tested and proven way - which we didn't come up with, but which is just a convention that happens to &amp;quot;just work&amp;quot;, which is an important aspect for a non-organized project like FlightGear, where development itself also primarily &amp;quot;just happens&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Continue reading at [[Implementing new features for FlightGear]]...&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;
If you interested in other developing, i.e. not C++ but [[Nasal]] scripting and/or XML, there are some articles listed at [[:Category:Popular Community Requests]] that have been suggested, but not fully or partially implemented, and are &amp;quot;mentored efforts&amp;quot;. That means that the community is looking for a hand in implementing them -- help from ''you'' -- but will also have more experienced developers willing to help you, for example by having tailored tutorials or even code snippets written for you. As mentioned in each page, please get in touch if you would like to help with one of those projects. In comparison to C/C++, Nasal is simpler and easier to learn quickly. It also doesn't require recompiling, which means that you can test and develop changes with a standard FlightGear release, i.e. off of the main download page. As long as you can run FlightGear, you can also run Nasal code and contribute. Many tutorials covering a wide range of projects are listed at [[Nasal]], so if you know a programming/scripting language already, or would like to try something new, go ahead: read, write, try and get involved! When it comes to Nasal scripting, playing around with different tutorials and code snippets is more important than being an experienced coder. &lt;br /&gt;
&lt;br /&gt;
{{CppBind Ideas}}&lt;br /&gt;
&lt;br /&gt;
Of course, you're also free to work on whatever you want -- FlightGear as a community-driven doesn't tell people what to do, but welcomes any contributions from anybody, as long as they have acceptable quality and are free to be licensed under the GNU GPL. So if you have something you would like to contribute back to FlightGear, please get in touch! (Preferably using Gitorious for larger merge requests, and the forums or (core-) developer's mailing list to inform the developers of what you want to contribute back.) Changes contributed 6-8 weeks before a release will usually appear in the next release, so your changes can be spread across the world.&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;
=== Damage and disintegration ===&lt;br /&gt;
{{#ev:youtube|OpwNaoO3xMQ|240|right|Tomaskom's V-1 used in anger over London}}&lt;br /&gt;
{{#ev:youtube|H4XDuLo35ks|240|right|Victor V2.0 damage script causing a catastrophic failure and fire}}&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM|240|right|L-159 disintegration}}&lt;br /&gt;
The development team at FGUK have been experimenting with modelling aircraft damage in a number of different ways. First of all, Tomaskom has used the particle system carefully to produce visually impressive fireballs and smoke columns with very little FPS impact. First seen in his V-1, we hope to adapt this to simulate realistic fireballs for ground impacts (where appropriate). For the moment, it explodes with the full force of a V-1's explosive payload. On the right is a video excerpt from the #FlightNight which Tom organised to debut the V-1, where we all had '''way''' too much fun bombing London. As you can see, the smoke is visible from quite a long way away from the impact, and despite two fires burning with huge smoke columns, and over ten multiplayer aircraft within model range, the frame rates are still more than acceptable. StuartC has already integrated the explosion and fireball into several development aircraft, and we expect eventually to combine it with the disintegration code and make the size of the explosion dependent on fuel load etc.&lt;br /&gt;
&lt;br /&gt;
In a separate development, Algernon's work on the Victor V2.0(YASim) now includes modelled damage, a collection of Nasal scripts, some modified from existing FlightGear staples, which detects irregularities such as component failures, birdstrikes and combat weapon damage and adversely affects system performance and reliability accordingly. Unserviceability often follows, using the existing FlightGear failures system, and compatibility will be maintained as the failures system is improved. The damage script also calculates probabilites for chain reaction damage - for instance, an explosion or serious fire in one Victor engine will usually have an effect on the other. In extreme circumstances, an explosion will trigger further explosions and destroy the aircraft. The second video on the right shows a serious induced explosion on the Victor's number one engine at night. Some fine-tuning of the Rembrandt light has been carried out since this video was shot, so apologies for the visible cut-off.&lt;br /&gt;
&lt;br /&gt;
Finally, and most spectacularly, FGUK aerodynamicist Tomaskom has demonstrated the disintegration capabilities of his L-159, which is under development. I can say little more than the third video on the right demonstrates, except that it's still a work in progress and a proof of concept, and we expect numerous different structural failures will be able to be modelled, hopefully in partnership with the damage script described above. We're pretty excited about this one!&lt;br /&gt;
&lt;br /&gt;
PLEASE NOTE: I have been unable to post the videos at this moment. Hopefully this will be sorted out soon.&lt;br /&gt;
&lt;br /&gt;
=== Scenesetter ===&lt;br /&gt;
Scenesetter is a piece of code by Algernon, very early in development but already quite effective, which can effect changes to the time and weather from an AI scenario synchronously with other MP players. A crude proof of concept was used in the recent FGUK #FlightNight &amp;quot;British Weather&amp;quot;, where pilots visited different airfields with various unpleasant flying conditions. Scenesetter pushes METAR strings to the FlightGear weather system based on the location of an associated Navaid, establishing a circular zone of a specified radius around it in which METAR will be changed. Start time can be specified too, either by providing a local start time or a local time offset (useful for Multiplayer use where players will not all start the AI scenario at precisely the same time). &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;
&lt;br /&gt;
The Swedish fighter jet Saab JA-37 Viggen has been updated, since it was included in FG 3.0.0; More instruments, additional liveries, aerodynamic response to payload and tooltips on instruments. Option for automatic reverse thrust at touchdown, selection of HUD brightness, disabling of structural damage. The aircraft now also has multiplayer sounds and better cockpit view helps seeing the landing strip. Support for FG 2.8 by deleting a small section in an xml file. Also worth mentioning is countless bug-fixes and improvements, e.g. better handling at high altitudes and a bug fix in the lift force formula.&lt;br /&gt;
&lt;br /&gt;
[[File:Saab JA-37 Viggen Blue Peter Livery.png|Blå Petter Livery for JA-37]]&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&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;
&lt;br /&gt;
{{Volunteer Intro|mode=showlogo}}&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The Terragear maintainers are looking for volunteers to help with development on the next world scenery project.  If you've ever wondered how a full 3D model of earth can be generated from raw data, now is your chance.  See the plan at [[World Scenery 3.0 roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter]]&lt;br /&gt;
&amp;lt;!-- this needs to be changed after each release, so that newsletters show up in the proper category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Changes after 3.00]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2014&amp;diff=72536</id>
		<title>FlightGear Newsletter June 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2014&amp;diff=72536"/>
		<updated>2014-06-09T12:25:16Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{newsletter}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
{{Newsletter being written}}&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;
=== Logo Proposal ===&lt;br /&gt;
This is the new logo badge concept proposal for FlightGear designed by Michat.&lt;br /&gt;
&lt;br /&gt;
[[File:Fglogo1.png]]&lt;br /&gt;
[[File:Fglogowiki.png]]&lt;br /&gt;
[[File:Fglogoforum.png]]&lt;br /&gt;
&lt;br /&gt;
===MapStructure stress-testing ===&lt;br /&gt;
&lt;br /&gt;
[[File:Map-canvas-mapstructure-performance.png|thumb|stress-testing [[MapStructure]] using the ufo @ KSFO circling at 2000 kts in a climb, see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=21509&amp;amp;p=211611#p211611] ]]&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;Now that Hyde has committed Philosopher's latest changes, I'd be interested in getting some more feedback on performance.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Here, I am using the ufo @ksfo circling in a shuttle climb at &amp;gt;= 2000 kts GS and getting roughly 30 fps and 40-60 ms.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211611#p211611&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: NavDisplay &amp;amp; MapStructure discussion (previously via PM)&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;Tue Jun 03&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 777 EFB Prototype by I-NEMO ===&lt;br /&gt;
[[File:777-EFB-MAIN.png|thumb|777-200ER EFB [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23196]]]&lt;br /&gt;
[[File:777-EFB-AIRPORT-SEARCH.png|thumb|777-200 EFB AIRPORT SEARCH, see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23196&amp;amp;p=211410#p211410]]]&lt;br /&gt;
&lt;br /&gt;
I-NEMO has started porting his 777/EFB prototype to [[Canvas]]&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;As I wrote several times, I finally decided to put hands on the EFB (Reason: No one ever took care of developing an EFB for the 777; a 'working' EFB, though) with two (2) main goals in mind:&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
1) to do something to compensate for the lacking of an EFB inside the Seattle.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
2) to actually try (I repeat it: 'try') to learn some first essentials of nasal.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt; this Seattle EFB is just a 'rude' one: with this term, I mean (as a word's pun) 'unpolite'. I'm perfectly aware that the coding is horrible, clumsy, repetitive, silly and very, very far from what it should be. &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
My first aim was simply to have a somehow 'working' EFB inside the Seattle's Cockpit.&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
My second aim was to use EFB.nas as a starting playground for a newbie as I am on 'nasal'. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{cquote&lt;br /&gt;
  |&amp;lt;nowiki&amp;gt;I do not pretend that current 777's EFB.nas is a piece of nice software; but - to my initial purpose - it works. Not completely, not nicely, not properly...but it's a starting point. At least, it works...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=211550#p211550&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: 777 EFB status &amp;amp; plans  ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;I-NEMO&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Mon Jun 02&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Learn more at [[Canvas EFB Framework]] ...&lt;br /&gt;
&lt;br /&gt;
=== Canvas Garmin GPSMap196 Updates ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avidyne Entegra R9 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Extra500canvas.png|thumb|Work has begun to analyze, refactor and generalize useful parts of the [[Avidyne Entegra R9]] to help reuse some code in similar MFD efforts, like the [[Garmin GPSMap 196]] or [[Canvas EFB Framework]]]]&lt;br /&gt;
&lt;br /&gt;
=== Towards an Aircraft-agnostic MFD Framework ===&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping.png|thumb|This is an adapted version of the [[Garmin GPSMap 196]] that is currently being developed by F-JJTH. Here, the whole instrument is entirely set up in XML space, including buttons/event handling, but also the embedded canvas region that serves as the 'screen'. The idea is to allow arbitrary MFDs to be specified in an aircraft-agnostic fashion, including displays like a PFD, [[NavDisplay]] or EFB. For details, please see [[Canvas Glass Cockpit Efforts]].]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping-with-mapstructure.png|400px|thumb|This demonstrates how a purely XML-based MFD framework can instantiate dynamic [[MapStructure]] layers - none of this involves any [[Nasal]] coding now, it's just an XML file - to learn more, see [[Canvas Glass Cockpit Efforts]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas-mfd-framework-prototyping-with-mapstructure-with-kln89-skin.png|400px|thumb|This screen shot shows the texture of the hard-coded KLN89 instrument used as a skin/theme for the MFD instrument, with a MapStructure-powered map shown.]]&lt;br /&gt;
&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&lt;br /&gt;
=== Missions &amp;amp; Adventures ===&lt;br /&gt;
[[File:Missionb.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
{{forum|79|Tutorials, Missions &amp;amp; Adventures}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Getting your own ideas and features in FlightGear without having to be a coder ===&lt;br /&gt;
&lt;br /&gt;
We've been seeing an increasing number of discussions on the forum started by people who are obviously eager to become potential contributors, either by adding new features to FlightGear, or by improving other aspects of FlightGear as a whole (community, infrastructure, usability, end-user support, accessibility, funding etc). Unfortunately, this has caused some friction over time, because people were expecting their involvement to work differently, especially those primarily making suggestions and providing feedback through discussions are obviously getting fed up with the community of contributors not responding directly to such feedback.&lt;br /&gt;
Now, we do appreciate any community involvement obviously, but people who are serious about actually bringing certain changes to FlightGear will find that just making suggestions will typically not work too well, and that just participating in lengthy community discussions is usually fruitless. We've had some extremely heated discussions over the years, some debating interesting ideas - and many ending up being dozens of pages in size, containing hundreds of postings. Often, these contain lots of good ideas and suggestions, but sooner or later these suggestions become emotional and are no longer constructive - yet, we're dealing with them constantly, which is taking up resources, i.e. time and energy. In an open source project like FlightGear, which is entirely volunteer driven, time is the most precious resource we have to contribute. It is like a &amp;quot;currency&amp;quot; for the project, and whenever something (or someone) is taking up lots of time without anything materializing, this is draining resources from other areas, no matter if it's end-user support or development in some shape or form.&lt;br /&gt;
We are now trying to document how &amp;quot;bootstrapping&amp;quot; a feature or project works conceptually, i.e. implementing new features for Flightgear - to provide a perspective that enables people to better understand how to bring changes to FlightGear without having to do all the work on their own. Note that this doesn't mean that this is the only way to accomplish something, but this is a tested and proven way - which we didn't come up with, but which is just a convention that happens to &amp;quot;just work&amp;quot;, which is an important aspect for a non-organized project like FlightGear, where development itself also primarily &amp;quot;just happens&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Continue reading at [[Implementing new features for FlightGear]]...&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;
If you interested in other developing, i.e. not C++ but [[Nasal]] scripting and/or XML, there are some articles listed at [[:Category:Popular Community Requests]] that have been suggested, but not fully or partially implemented, and are &amp;quot;mentored efforts&amp;quot;. That means that the community is looking for a hand in implementing them -- help from ''you'' -- but will also have more experienced developers willing to help you, for example by having tailored tutorials or even code snippets written for you. As mentioned in each page, please get in touch if you would like to help with one of those projects. In comparison to C/C++, Nasal is simpler and easier to learn quickly. It also doesn't require recompiling, which means that you can test and develop changes with a standard FlightGear release, i.e. off of the main download page. As long as you can run FlightGear, you can also run Nasal code and contribute. Many tutorials covering a wide range of projects are listed at [[Nasal]], so if you know a programming/scripting language already, or would like to try something new, go ahead: read, write, try and get involved! When it comes to Nasal scripting, playing around with different tutorials and code snippets is more important than being an experienced coder. &lt;br /&gt;
&lt;br /&gt;
{{CppBind Ideas}}&lt;br /&gt;
&lt;br /&gt;
Of course, you're also free to work on whatever you want -- FlightGear as a community-driven doesn't tell people what to do, but welcomes any contributions from anybody, as long as they have acceptable quality and are free to be licensed under the GNU GPL. So if you have something you would like to contribute back to FlightGear, please get in touch! (Preferably using Gitorious for larger merge requests, and the forums or (core-) developer's mailing list to inform the developers of what you want to contribute back.) Changes contributed 6-8 weeks before a release will usually appear in the next release, so your changes can be spread across the world.&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;
=== Damage and disintegration ===&lt;br /&gt;
&amp;lt;!-- Videos commented out - the Captcha image is not working &lt;br /&gt;
{{#ev:youtube|OpwNaoO3xMQ|240|right|Tomaskom's V-1 used in anger over London}}&lt;br /&gt;
{{#ev:youtube|H4XDuLo35ks|240|right|Victor V2.0 damage script causing a catastrophic failure and fire}}&lt;br /&gt;
{{#ev:youtube|uLojBI7ezdM|240|right|L-159 disintegration}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The development team at FGUK have been experimenting with modelling aircraft damage in a number of different ways. First of all, Tomaskom has used the particle system carefully to produce visually impressive fireballs and smoke columns with very little FPS impact. First seen in his V-1, we hope to adapt this to simulate realistic fireballs for ground impacts (where appropriate). For the moment, it explodes with the full force of a V-1's explosive payload. On the right is a video excerpt from the #FlightNight which Tom organised to debut the V-1, where we all had '''way''' too much fun bombing London. As you can see, the smoke is visible from quite a long way away from the impact, and despite two fires burning with huge smoke columns, and over ten multiplayer aircraft within model range, the frame rates are still more than acceptable. StuartC has already integrated the explosion and fireball into several development aircraft, and we expect eventually to combine it with the disintegration code and make the size of the explosion dependent on fuel load etc.&lt;br /&gt;
&lt;br /&gt;
In a separate development, Algernon's work on the Victor V2.0(YASim) now includes modelled damage, a collection of Nasal scripts, some modified from existing FlightGear staples, which detects irregularities such as component failures, birdstrikes and combat weapon damage and adversely affects system performance and reliability accordingly. Unserviceability often follows, using the existing FlightGear failures system, and compatibility will be maintained as the failures system is improved. The damage script also calculates probabilites for chain reaction damage - for instance, an explosion or serious fire in one Victor engine will usually have an effect on the other. In extreme circumstances, an explosion will trigger further explosions and destroy the aircraft. The second video on the right shows a serious induced explosion on the Victor's number one engine at night. Some fine-tuning of the Rembrandt light has been carried out since this video was shot, so apologies for the visible cut-off.&lt;br /&gt;
&lt;br /&gt;
Finally, and most spectacularly, FGUK aerodynamicist Tomaskom has demonstrated the disintegration capabilities of his L-159, which is under development. I can say little more than the third video on the right demonstrates, except that it's still a work in progress and a proof of concept, and we expect numerous different structural failures will be able to be modelled, hopefully in partnership with the damage script described above. We're pretty excited about this one!&lt;br /&gt;
&lt;br /&gt;
PLEASE NOTE: I have been unable to post the videos at this moment. Hopefully this will be sorted out soon.&lt;br /&gt;
&lt;br /&gt;
=== Scenesetter ===&lt;br /&gt;
Scenesetter is a piece of code by Algernon, very early in development but already quite effective, which can effect changes to the time and weather from an AI scenario synchronously with other MP players. A crude proof of concept was used in the recent FGUK #FlightNight &amp;quot;British Weather&amp;quot;, where pilots visited different airfields with various unpleasant flying conditions. Scenesetter pushes METAR strings to the FlightGear weather system based on the location of an associated Navaid, establishing a circular zone of a specified radius around it in which METAR will be changed. Start time can be specified too, either by providing a local start time or a local time offset (useful for Multiplayer use where players will not all start the AI scenario at precisely the same time). &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;
&lt;br /&gt;
The Swedish fighter jet Saab JA-37 Viggen has been updated, since it was included in FG 3.0.0; More instruments, additional liveries, aerodynamic response to payload and tooltips on instruments. Option for automatic reverse thrust at touchdown, selection of HUD brightness, disabling of structural damage. The aircraft now also has multiplayer sounds and better cockpit view helps seeing the landing strip. Support for FG 2.8 by deleting a small section in an xml file. Also worth mentioning is countless bug-fixes and improvements, e.g. better handling at high altitudes and a bug fix in the lift force formula.&lt;br /&gt;
&lt;br /&gt;
[[File:Saab JA-37 Viggen Blue Peter Livery.png|Blå Petter Livery for JA-37]]&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&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;
&lt;br /&gt;
{{Volunteer Intro|mode=showlogo}}&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The Terragear maintainers are looking for volunteers to help with development on the next world scenery project.  If you've ever wondered how a full 3D model of earth can be generated from raw data, now is your chance.  See the plan at [[World Scenery 3.0 roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter]]&lt;br /&gt;
&amp;lt;!-- this needs to be changed after each release, so that newsletters show up in the proper category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Changes after 3.00]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56795</id>
		<title>FlightGear Newsletter December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56795"/>
		<updated>2013-01-02T17:08:49Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* FGUK's Saturday Night Flights */&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 the changelog of the upcoming release.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
Note to all contributors: Please also copy your newsletter additions to the changelog of the upcoming release: [[Changelog_3.0.0]].&lt;br /&gt;
&lt;br /&gt;
=== Atmospheric Light Scattering ===&lt;br /&gt;
&lt;br /&gt;
The atmospheric light scattering rendering framework received a major overhaul. Snow is now generated procedurally, which improves the performance if no snow is in the scene, but also allows the user to control the thickness of the snow layer - the shader can do a very light snow cover like in the winter textures all the way to a closed, thick snow layer. &lt;br /&gt;
&lt;br /&gt;
A new runway effect shader, similar to the one in the default rendering scheme, shows a hires bumpmap for runway closeups and displays also snow drifts in high resolution on the runway if the terrain at this altiude is snow-covered. This is complemented by a high resolution grass texture for the green around the runway.&lt;br /&gt;
&lt;br /&gt;
Major changes have been done to the ambient lighting of terrain and clouds in low light - the previous ambient light curve has been replaced by a light curve measured from a large set of photographs of sunsets. As a result, the color balance of cloud shadows in low sunlight is now much more realistic, and the effect of clouds casting a shadow on other clouds is now also effectively accounted for.&lt;br /&gt;
&lt;br /&gt;
In the course of these changes, the framework is now also able to render moonlit scenes at night, however this is not currently integrated to be done automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:Light scattering dec12 10.jpg|300px|Procedural snow and hires snow drifts on the runway.]]&lt;br /&gt;
[[File:Light scattering dec12 05.jpg|300px|Early morning scene over the French Alps.]]&lt;br /&gt;
[[File:Light scattering dec12 13.jpg|300px|New color balance of clouds in low light]]&lt;br /&gt;
&lt;br /&gt;
Combined and fully integrated with Advanced Weather, Atmospheric Light Scattering is now able to render highly realistic lighting and high-quality scenery texturing, rivaling the visual quality of FSX.&lt;br /&gt;
&lt;br /&gt;
=== Random Buildings ===&lt;br /&gt;
&amp;lt;!-- These are currently just a bunch of placeholders for the latest projects (as of 08/2012)  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Project Rembrandt ===&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&amp;lt;!--additions should also be added to:http://wiki.flightgear.org/Changelog_3.0.0#Some_of_the_major_changes_include: --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
=== FlightGear an Android ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Mailing list digest ===&lt;br /&gt;
&lt;br /&gt;
(by far the easiest option to populate the newsletter with contents is copying/pasting stuff from the forum and the mailing list or the git logs)&lt;br /&gt;
&lt;br /&gt;
=== Forum digest ===&lt;br /&gt;
&lt;br /&gt;
=== Git digest ===&lt;br /&gt;
&lt;br /&gt;
=== Getting involved as a programmer ===&lt;br /&gt;
&lt;br /&gt;
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;
== Snapshot releases ==&lt;br /&gt;
Every now and then, easy-to-install development snapshots are created (usually, twice montlhy). These snapshos depict a recent state of the development version of FlightGear. By using them users can test out features that will be included in the upcoming release. Testers are encouraged to file bugs at [http://code.google.com/p/flightgear-bugs/ the issue tracker].&lt;br /&gt;
&lt;br /&gt;
The snapshot can be download via the links at the bottom of this page: http://www.flightgear.org/download/. Updates and feedback can be found [http://flightgear.org/forums/viewtopic.php?f=28&amp;amp;t=10488&amp;amp;p=144233&amp;amp;hilit=snapshot#p144233 at the forum].&lt;br /&gt;
&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;
== 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;
== In the hangar ==&lt;br /&gt;
&lt;br /&gt;
All the way back in May 2011, we adopted a new status-rating system for aircraft. So far, only a few have actually been rated, as can be seen in the list 'hockenberry' set up at [https://docs.google.com/spreadsheet/ccc?key=0ApzphjA4w05ndF94Y2F0bzJTbHQ5QTJXZXJRcUVRbWc&amp;amp;hl=en_US Google Docs]. If you're an aircraft developer and your aircraft is/are not on the list, please consider rating their status. All you'll need to know/do is described at [[Formalizing Aircraft Status]]. If you'd just like to get started contributing to FlightGear, this would also seem like an excellent way to get started.&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
&lt;br /&gt;
[[File:St10-splash.png|thumb|A small pleasant plane]]&lt;br /&gt;
[[File:Pc12-splash.png|thumb|A classic that was not yet in FG]]&lt;br /&gt;
[[File:Gannet-splash.png|thumb|Dual Turboprop. It should be noted]]&lt;br /&gt;
[[File:Whirlwind-splash.png|thumb|Aircraft without future due to engines]]&lt;br /&gt;
[[File:Yak-36-splash.png|thumb|Russian VTOL 1963]]&lt;br /&gt;
[[File:F19-splash.png|thumb|A canard of 1927]]&lt;br /&gt;
The Socata ST 10 Diplomate : A command of Samaliet that I modeled with a lot of fun.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Pilatus PC 12/47 : A request of C-VALL (a Canadian :) ) that I modeled for him.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Fairey Gannet : A rather ugly aircraft, but it takes all kinds to fly :)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Westland Whirlwind : An aircraft that had great potential, but the choice of engines was fatal :(&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Yak 36 : A fantastic Russian VTOL modeled by Pierre Duval.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Focke Wulf F19 Ente : German experimental &amp;quot;tail-first&amp;quot; aircraft in the late 1920s.&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&lt;br /&gt;
&lt;br /&gt;
==== Boeing 707-320C and 707-3J9C ====&lt;br /&gt;
[[File:707-320-flightdeck.png|thumb|707-320C flightdeck]]&lt;br /&gt;
&lt;br /&gt;
The Boeing 707 has two new versions in Flightgear: [[Boeing_707-320|the 707-320C and the 3J19C]], which are downloaded and installed together as [[Boeing 707-320]]. The new version is based on the model of Innis Cunningham (already developed by Isaias Prestes). The gear and engines has been modified (with reversers), lights were added. The new versions have a detailed flightdeck, with working instruments, pedestal, etc. The FDM has ben re-writen in YASim.&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
===New articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===New aircraft articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
  categoryRoot=Aircraft&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===Most popular newsletters===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=5&lt;br /&gt;
  categoryRoot=FlightGear Newsletter&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community news ==&lt;br /&gt;
=== FlightGear on Google+ ===&lt;br /&gt;
The [https://plus.google.com/+flightgear FlightGear Google+ page] welcomed its 1000th plus this month! Please +1 us if you haven't already.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on YouTube ===&lt;br /&gt;
The Viper project, that we mentioned in the [[FlightGear Newsletter January 2012#FlightGear users|January edition]] of the newsletter, is on airborne! Now we can see their good results.&lt;br /&gt;
{{#ev:youtube|8wcEz9SfcYQ}} &lt;br /&gt;
You'll find more videos on the official [https://sites.google.com/site/mf2012theviper/ Viper cockpit website].&lt;br /&gt;
&lt;br /&gt;
Congratulations for that awesome project.&lt;br /&gt;
&lt;br /&gt;
=== New tutorials and screencasts ===&lt;br /&gt;
=== Forum news ===&lt;br /&gt;
=== Multiplayer ===&lt;br /&gt;
==== FGUK's Saturday Night Flights ====&lt;br /&gt;
[[File:FGUK-3rdNov12.jpg|270px|thumb|FGUK discovers there is nothing half so much worth doing than messing about in (flying) boats]]&lt;br /&gt;
[[File:FGUK-10thNov12.jpg|270px|thumb|Fast jets of FGUK leave the British winter behind for some fine-weather flying in Hawaii]]&lt;br /&gt;
[http://www.fguk.eu FGUK] rounded off November with four more memorable outings, forsaking the bleak winter scenery of the United Kingdom for the warmer climes of South and Pacific America before returning to the Lake District for some low flying exercises within easy flying distance of our home base of Llanbedr (EGOD). &lt;br /&gt;
&lt;br /&gt;
We started the month by leaving the fast jets snug in their hangars and paddling out to board seaplanes and flying boats dating from the classic age of intercontinental flight to modern day transport and fire-fighting aircraft. The additional challenge of beginning our flight from Lake Titicaca, 12000 feet up on the Andean Altiplano, set regular FGUK fliers practicing hard during the preceding week, with some of the older aircraft requiring skill and patience to even start their engines in the thin air, and all pilots adjusting to the unusual and slightly tricky experience of taking off at altitude. Their efforts paid off, forming up around Flight Leader Algernon to skim the Andes before descending steadily down with the terrain to land in a flurry of surf off the Peruvian coast. This was almost certainly a collection of aircraft never seen flying together before, with a truly gargantuan Hughes H4 Hercules (the ''Spruce Goose'') joining Canopus, the first Short S.23 'Empire' flying boat, a Bombardier 415 water-bomber, classically-beautiful Consolidated Catalina PBY and Grumman Goose among others.&lt;br /&gt;
&lt;br /&gt;
Next week saw a return to a more traditional FGUK theme, with assorted fast jets hammering across somebody else's airspace. Flight Leader Neilson chose Hawaii for this flight, in order to showcase the new scenery package included in FGFS 2.8; it attracted a varied selection of fighters and ground attack aircraft including several classics from Dave Culp's hangar, which FGUK now hosts and maintains. Two F4 Phantoms, two F-15s (one C and one E) and a brace of Tornado GR4s shattered the peace of the island for two hours, at speeds high enough to require a refueling at Hilo. As is becoming standard now for all flight planners, Neilson put a good deal of preparation into this flight, with an illustrated flight plan and a downloadable Route Manager route available in advance of the event, and as always, our multimedia artists got to work during the following week to collate and shape their collected stills and video clips into galleries and movies, which are available in the FGUK media forum (see the link below).&lt;br /&gt;
&lt;br /&gt;
The chance to hone some slightly rusty skills came the following week, with a theme surround a single aircraft, and one which is both famously capable and notoriously tricky to handle - the physics-defying BaE Harrier. As one of the great British aircraft of all time, the Harrier is well represented in the FGUK hangar and the pilots had several incarnations to choose from for this high-speed, low-level, cross-continental mission from Chile to Port Stanley. Planned and led by N-SCOT, the flight plan had some tricky twists, including employing the Harrier's ace card feature: its ability to operate away from traditional flight infrastructure, in this case, a beach refueling. One vertical take-off later, and the squadron was skimming the waves, headed southeast for Stanley at 200ft AGL. Reports that the first round in the Victory public house was purchased by StuartC are apparently without substance.&lt;br /&gt;
&lt;br /&gt;
The last week of November took us closer to home when Moli organised a flight to the Lake District in the North of England. Departing Walney Island airfield (coincidentally the site of the first ever FGUK flying event back in 2010) were Hawker Hunters, Vought F-8 Crusaders, and an FGR2 among others. The weather was typically damp and grey, but with cockpit heaters turned up the low-level blast through the valleys and over the lakes was a success.&lt;br /&gt;
&lt;br /&gt;
FGUK welcomes pilots from all corners of the FG universe to fly with us on a Saturday at 2000hrs UTC. Please check the [http://www.fguk.eu/forum/saturday-night-flying Saturday Night Flying subforum on our website] to find out where we will be gathering and whether there are any recommendations or requirements for aircraft, and address any questions to us there. We hope to see you in the skies!&lt;br /&gt;
&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.&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[Flightgear On Android]] team is looking for testers&lt;br /&gt;
* The [[Target4Today]] team is looking for volunteers to help improving FlightGear's combat support&lt;br /&gt;
* The [[FGFSPM]] (FlightGear Package Manager) is looking for a new maintainer.&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2012 12]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56794</id>
		<title>FlightGear Newsletter December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56794"/>
		<updated>2013-01-02T15:39:47Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* FGUK's Saturday Night Flights */&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 the changelog of the upcoming release.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
Note to all contributors: Please also copy your newsletter additions to the changelog of the upcoming release: [[Changelog_3.0.0]].&lt;br /&gt;
&lt;br /&gt;
=== Atmospheric Light Scattering ===&lt;br /&gt;
&lt;br /&gt;
The atmospheric light scattering rendering framework received a major overhaul. Snow is now generated procedurally, which improves the performance if no snow is in the scene, but also allows the user to control the thickness of the snow layer - the shader can do a very light snow cover like in the winter textures all the way to a closed, thick snow layer. &lt;br /&gt;
&lt;br /&gt;
A new runway effect shader, similar to the one in the default rendering scheme, shows a hires bumpmap for runway closeups and displays also snow drifts in high resolution on the runway if the terrain at this altiude is snow-covered. This is complemented by a high resolution grass texture for the green around the runway.&lt;br /&gt;
&lt;br /&gt;
Major changes have been done to the ambient lighting of terrain and clouds in low light - the previous ambient light curve has been replaced by a light curve measured from a large set of photographs of sunsets. As a result, the color balance of cloud shadows in low sunlight is now much more realistic, and the effect of clouds casting a shadow on other clouds is now also effectively accounted for.&lt;br /&gt;
&lt;br /&gt;
In the course of these changes, the framework is now also able to render moonlit scenes at night, however this is not currently integrated to be done automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:Light scattering dec12 10.jpg|300px|Procedural snow and hires snow drifts on the runway.]]&lt;br /&gt;
[[File:Light scattering dec12 05.jpg|300px|Early morning scene over the French Alps.]]&lt;br /&gt;
[[File:Light scattering dec12 13.jpg|300px|New color balance of clouds in low light]]&lt;br /&gt;
&lt;br /&gt;
Combined and fully integrated with Advanced Weather, Atmospheric Light Scattering is now able to render highly realistic lighting and high-quality scenery texturing, rivaling the visual quality of FSX.&lt;br /&gt;
&lt;br /&gt;
=== Random Buildings ===&lt;br /&gt;
&amp;lt;!-- These are currently just a bunch of placeholders for the latest projects (as of 08/2012)  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Project Rembrandt ===&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&amp;lt;!--additions should also be added to:http://wiki.flightgear.org/Changelog_3.0.0#Some_of_the_major_changes_include: --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
=== FlightGear an Android ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Mailing list digest ===&lt;br /&gt;
&lt;br /&gt;
(by far the easiest option to populate the newsletter with contents is copying/pasting stuff from the forum and the mailing list or the git logs)&lt;br /&gt;
&lt;br /&gt;
=== Forum digest ===&lt;br /&gt;
&lt;br /&gt;
=== Git digest ===&lt;br /&gt;
&lt;br /&gt;
=== Getting involved as a programmer ===&lt;br /&gt;
&lt;br /&gt;
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;
== Snapshot releases ==&lt;br /&gt;
Every now and then, easy-to-install development snapshots are created (usually, twice montlhy). These snapshos depict a recent state of the development version of FlightGear. By using them users can test out features that will be included in the upcoming release. Testers are encouraged to file bugs at [http://code.google.com/p/flightgear-bugs/ the issue tracker].&lt;br /&gt;
&lt;br /&gt;
The snapshot can be download via the links at the bottom of this page: http://www.flightgear.org/download/. Updates and feedback can be found [http://flightgear.org/forums/viewtopic.php?f=28&amp;amp;t=10488&amp;amp;p=144233&amp;amp;hilit=snapshot#p144233 at the forum].&lt;br /&gt;
&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;
== 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;
== In the hangar ==&lt;br /&gt;
&lt;br /&gt;
All the way back in May 2011, we adopted a new status-rating system for aircraft. So far, only a few have actually been rated, as can be seen in the list 'hockenberry' set up at [https://docs.google.com/spreadsheet/ccc?key=0ApzphjA4w05ndF94Y2F0bzJTbHQ5QTJXZXJRcUVRbWc&amp;amp;hl=en_US Google Docs]. If you're an aircraft developer and your aircraft is/are not on the list, please consider rating their status. All you'll need to know/do is described at [[Formalizing Aircraft Status]]. If you'd just like to get started contributing to FlightGear, this would also seem like an excellent way to get started.&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
&lt;br /&gt;
[[File:St10-splash.png|thumb|A small pleasant plane]]&lt;br /&gt;
[[File:Pc12-splash.png|thumb|A classic that was not yet in FG]]&lt;br /&gt;
[[File:Gannet-splash.png|thumb|Dual Turboprop. It should be noted]]&lt;br /&gt;
[[File:Whirlwind-splash.png|thumb|Aircraft without future due to engines]]&lt;br /&gt;
[[File:Yak-36-splash.png|thumb|Russian VTOL 1963]]&lt;br /&gt;
[[File:F19-splash.png|thumb|A canard of 1927]]&lt;br /&gt;
The Socata ST 10 Diplomate : A command of Samaliet that I modeled with a lot of fun.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Pilatus PC 12/47 : A request of C-VALL (a Canadian :) ) that I modeled for him.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Fairey Gannet : A rather ugly aircraft, but it takes all kinds to fly :)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Westland Whirlwind : An aircraft that had great potential, but the choice of engines was fatal :(&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Yak 36 : A fantastic Russian VTOL modeled by Pierre Duval.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Focke Wulf F19 Ente : German experimental &amp;quot;tail-first&amp;quot; aircraft in the late 1920s.&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&lt;br /&gt;
&lt;br /&gt;
==== Boeing 707-320C and 707-3J9C ====&lt;br /&gt;
[[File:707-320-flightdeck.png|thumb|707-320C flightdeck]]&lt;br /&gt;
&lt;br /&gt;
The Boeing 707 has two new versions in Flightgear: [[Boeing_707-320|the 707-320C and the 3J19C]], which are downloaded and installed together as [[Boeing 707-320]]. The new version is based on the model of Innis Cunningham (already developed by Isaias Prestes). The gear and engines has been modified (with reversers), lights were added. The new versions have a detailed flightdeck, with working instruments, pedestal, etc. The FDM has ben re-writen in YASim.&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
===New articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===New aircraft articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
  categoryRoot=Aircraft&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===Most popular newsletters===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=5&lt;br /&gt;
  categoryRoot=FlightGear Newsletter&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community news ==&lt;br /&gt;
=== FlightGear on Google+ ===&lt;br /&gt;
The [https://plus.google.com/+flightgear FlightGear Google+ page] welcomed its 1000th plus this month! Please +1 us if you haven't already.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on YouTube ===&lt;br /&gt;
The Viper project, that we mentioned in the [[FlightGear Newsletter January 2012#FlightGear users|January edition]] of the newsletter, is on airborne! Now we can see their good results.&lt;br /&gt;
{{#ev:youtube|8wcEz9SfcYQ}} &lt;br /&gt;
You'll find more videos on the official [https://sites.google.com/site/mf2012theviper/ Viper cockpit website].&lt;br /&gt;
&lt;br /&gt;
Congratulations for that awesome project.&lt;br /&gt;
&lt;br /&gt;
=== New tutorials and screencasts ===&lt;br /&gt;
=== Forum news ===&lt;br /&gt;
=== Multiplayer ===&lt;br /&gt;
==== FGUK's Saturday Night Flights ====&lt;br /&gt;
[[File:FGUK-3rdNov12.jpg|270px|thumb|FGUK discovers there is nothing half so much worth doing than messing about in (flying) boats]]&lt;br /&gt;
[[File:FGUK-10thNov12.jpg|270px|thumb|Fast jets of FGUK leave the British winter behind for some fine-weather flying in Hawaii]]&lt;br /&gt;
[http://www.fguk.eu FGUK] rounded off November with four more memorable outings, forsaking the bleak winter scenery of the United Kingdom for the warmer climes of South and Pacific America before returning to the Lake District for some low flying exercises within easy flying distance of our home base of Llanbedr (EGOD). &lt;br /&gt;
&lt;br /&gt;
We started the month by leaving the fast jets snug in their hangars and paddling out to board seaplanes and flying boats dating from the classic age of intercontinental flight to modern day transport and fire-fighting aircraft. The additional challenge of beginning our flight from Lake Titicaca, 12000 feet up on the Andean Altiplano, set regular FGUK fliers practicing hard during the preceding week, with some of the older aircraft requiring skill and patience to even start their engines in the thin air, and all pilots adjusting to the unusual and slightly tricky experience of taking off at altitude. Their efforts paid off, forming up around Flight Leader Algernon to skim the Andes before descending steadily down with the terrain to land in a flurry of surf off the Peruvian coast. This was almost certainly a collection of aircraft never seen flying before, with a truly gargantuan Hughes H4 Hercules (the ''Spruce Goose'') joining Canopus, the first Short S.23 'Empire' flying boat, a Bombardier 415 water-bomber, classically-beautiful Consolidated Catalina PBY and Grumman Goose among others.&lt;br /&gt;
&lt;br /&gt;
Next week saw a return to a more traditional FGUK theme, with assorted fast jets hammering across somebody else's airspace. Flight Leader Neilson chose Hawaii for this flight, in order to showcase the new scenery package included in FGFS 2.8; it attracted a varied selection of fighters and ground attack aircraft including several classics from Dave Culp's hangar, which FGUK now hosts and maintains. Two F4 Phantoms, two F-15s (one C and one E) and a brace of Tornado GR4s shattered the peace of the island for two hours, at speeds high enough to require a refueling at Hilo. As is becoming standard now for all flight planners, Neilson put a good deal of preparation into this flight, with an illustrated flight plan and a downloadable Route Manager route available in advance of the event, and as always, our multimedia artists got to work during the following week to collate and shape their collected stills and video clips into galleries and movies, which are available in the FGUK media forum (see the link below).&lt;br /&gt;
&lt;br /&gt;
The chance to hone some slightly rusty skills came the following week, with a theme surround a single aircraft, and one which is both famously capable and notoriously tricky to handle - the physics-defying BaE Harrier. As one of the great British aircraft of all time, the Harrier is well represented in the FGUK hangar and the pilots had several incarnations to choose from for this high-speed, low-level, cross-continental mission from Chile to Port Stanley. Planned and led by N-SCOT, the flight plan had some tricky twists, including employing the Harrier's ace card feature: its ability to operate away from traditional flight infrastructure, in this case, a beach refueling. One vertical take-off later, and the squadron was skimming the waves, headed southeast for Stanley at 200ft AGL. Reports that the first round in the Victory public house was purchased by StuartC are apparently without substance.&lt;br /&gt;
&lt;br /&gt;
The last week of November took us closer to home when Moli organised a flight to the Lake District in the North of England. Departing Walney Island airfield (coincidentally the site of the first ever FGUK flying event back in 2010) were Hawker Hunters, Vought F-8 Crusaders, and an FGR2 among others. The weather was typically damp and grey, but with cockpit heaters turned up the low-level blast through the valleys and over the lakes was a success.&lt;br /&gt;
&lt;br /&gt;
FGUK welcomes pilots from all corners of the FG universe to fly with us on a Saturday at 2000hrs UTC. Please check the [http://www.fguk.eu/forum/saturday-night-flying Saturday Night Flying subforum on our website] to find out where we will be gathering and whether there are any recommendations or requirements for aircraft, and address any questions to us there. We hope to see you in the skies!&lt;br /&gt;
&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.&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[Flightgear On Android]] team is looking for testers&lt;br /&gt;
* The [[Target4Today]] team is looking for volunteers to help improving FlightGear's combat support&lt;br /&gt;
* The [[FGFSPM]] (FlightGear Package Manager) is looking for a new maintainer.&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2012 12]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56793</id>
		<title>FlightGear Newsletter December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56793"/>
		<updated>2013-01-02T15:38:17Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* FGUK's Saturday Night Flights */&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 the changelog of the upcoming release.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
Note to all contributors: Please also copy your newsletter additions to the changelog of the upcoming release: [[Changelog_3.0.0]].&lt;br /&gt;
&lt;br /&gt;
=== Atmospheric Light Scattering ===&lt;br /&gt;
&lt;br /&gt;
The atmospheric light scattering rendering framework received a major overhaul. Snow is now generated procedurally, which improves the performance if no snow is in the scene, but also allows the user to control the thickness of the snow layer - the shader can do a very light snow cover like in the winter textures all the way to a closed, thick snow layer. &lt;br /&gt;
&lt;br /&gt;
A new runway effect shader, similar to the one in the default rendering scheme, shows a hires bumpmap for runway closeups and displays also snow drifts in high resolution on the runway if the terrain at this altiude is snow-covered. This is complemented by a high resolution grass texture for the green around the runway.&lt;br /&gt;
&lt;br /&gt;
Major changes have been done to the ambient lighting of terrain and clouds in low light - the previous ambient light curve has been replaced by a light curve measured from a large set of photographs of sunsets. As a result, the color balance of cloud shadows in low sunlight is now much more realistic, and the effect of clouds casting a shadow on other clouds is now also effectively accounted for.&lt;br /&gt;
&lt;br /&gt;
In the course of these changes, the framework is now also able to render moonlit scenes at night, however this is not currently integrated to be done automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:Light scattering dec12 10.jpg|300px|Procedural snow and hires snow drifts on the runway.]]&lt;br /&gt;
[[File:Light scattering dec12 05.jpg|300px|Early morning scene over the French Alps.]]&lt;br /&gt;
[[File:Light scattering dec12 13.jpg|300px|New color balance of clouds in low light]]&lt;br /&gt;
&lt;br /&gt;
Combined and fully integrated with Advanced Weather, Atmospheric Light Scattering is now able to render highly realistic lighting and high-quality scenery texturing, rivaling the visual quality of FSX.&lt;br /&gt;
&lt;br /&gt;
=== Random Buildings ===&lt;br /&gt;
&amp;lt;!-- These are currently just a bunch of placeholders for the latest projects (as of 08/2012)  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Project Rembrandt ===&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&amp;lt;!--additions should also be added to:http://wiki.flightgear.org/Changelog_3.0.0#Some_of_the_major_changes_include: --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
=== FlightGear an Android ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Mailing list digest ===&lt;br /&gt;
&lt;br /&gt;
(by far the easiest option to populate the newsletter with contents is copying/pasting stuff from the forum and the mailing list or the git logs)&lt;br /&gt;
&lt;br /&gt;
=== Forum digest ===&lt;br /&gt;
&lt;br /&gt;
=== Git digest ===&lt;br /&gt;
&lt;br /&gt;
=== Getting involved as a programmer ===&lt;br /&gt;
&lt;br /&gt;
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;
== Snapshot releases ==&lt;br /&gt;
Every now and then, easy-to-install development snapshots are created (usually, twice montlhy). These snapshos depict a recent state of the development version of FlightGear. By using them users can test out features that will be included in the upcoming release. Testers are encouraged to file bugs at [http://code.google.com/p/flightgear-bugs/ the issue tracker].&lt;br /&gt;
&lt;br /&gt;
The snapshot can be download via the links at the bottom of this page: http://www.flightgear.org/download/. Updates and feedback can be found [http://flightgear.org/forums/viewtopic.php?f=28&amp;amp;t=10488&amp;amp;p=144233&amp;amp;hilit=snapshot#p144233 at the forum].&lt;br /&gt;
&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;
== 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;
== In the hangar ==&lt;br /&gt;
&lt;br /&gt;
All the way back in May 2011, we adopted a new status-rating system for aircraft. So far, only a few have actually been rated, as can be seen in the list 'hockenberry' set up at [https://docs.google.com/spreadsheet/ccc?key=0ApzphjA4w05ndF94Y2F0bzJTbHQ5QTJXZXJRcUVRbWc&amp;amp;hl=en_US Google Docs]. If you're an aircraft developer and your aircraft is/are not on the list, please consider rating their status. All you'll need to know/do is described at [[Formalizing Aircraft Status]]. If you'd just like to get started contributing to FlightGear, this would also seem like an excellent way to get started.&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
&lt;br /&gt;
[[File:St10-splash.png|thumb|A small pleasant plane]]&lt;br /&gt;
[[File:Pc12-splash.png|thumb|A classic that was not yet in FG]]&lt;br /&gt;
[[File:Gannet-splash.png|thumb|Dual Turboprop. It should be noted]]&lt;br /&gt;
[[File:Whirlwind-splash.png|thumb|Aircraft without future due to engines]]&lt;br /&gt;
[[File:Yak-36-splash.png|thumb|Russian VTOL 1963]]&lt;br /&gt;
[[File:F19-splash.png|thumb|A canard of 1927]]&lt;br /&gt;
The Socata ST 10 Diplomate : A command of Samaliet that I modeled with a lot of fun.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Pilatus PC 12/47 : A request of C-VALL (a Canadian :) ) that I modeled for him.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Fairey Gannet : A rather ugly aircraft, but it takes all kinds to fly :)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Westland Whirlwind : An aircraft that had great potential, but the choice of engines was fatal :(&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Yak 36 : A fantastic Russian VTOL modeled by Pierre Duval.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Focke Wulf F19 Ente : German experimental &amp;quot;tail-first&amp;quot; aircraft in the late 1920s.&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&lt;br /&gt;
&lt;br /&gt;
==== Boeing 707-320C and 707-3J9C ====&lt;br /&gt;
[[File:707-320-flightdeck.png|thumb|707-320C flightdeck]]&lt;br /&gt;
&lt;br /&gt;
The Boeing 707 has two new versions in Flightgear: [[Boeing_707-320|the 707-320C and the 3J19C]], which are downloaded and installed together as [[Boeing 707-320]]. The new version is based on the model of Innis Cunningham (already developed by Isaias Prestes). The gear and engines has been modified (with reversers), lights were added. The new versions have a detailed flightdeck, with working instruments, pedestal, etc. The FDM has ben re-writen in YASim.&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
===New articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===New aircraft articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
  categoryRoot=Aircraft&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===Most popular newsletters===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=5&lt;br /&gt;
  categoryRoot=FlightGear Newsletter&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community news ==&lt;br /&gt;
=== FlightGear on Google+ ===&lt;br /&gt;
The [https://plus.google.com/+flightgear FlightGear Google+ page] welcomed its 1000th plus this month! Please +1 us if you haven't already.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on YouTube ===&lt;br /&gt;
The Viper project, that we mentioned in the [[FlightGear Newsletter January 2012#FlightGear users|January edition]] of the newsletter, is on airborne! Now we can see their good results.&lt;br /&gt;
{{#ev:youtube|8wcEz9SfcYQ}} &lt;br /&gt;
You'll find more videos on the official [https://sites.google.com/site/mf2012theviper/ Viper cockpit website].&lt;br /&gt;
&lt;br /&gt;
Congratulations for that awesome project.&lt;br /&gt;
&lt;br /&gt;
=== New tutorials and screencasts ===&lt;br /&gt;
=== Forum news ===&lt;br /&gt;
=== Multiplayer ===&lt;br /&gt;
==== FGUK's Saturday Night Flights ====&lt;br /&gt;
''A work in progress''&lt;br /&gt;
[[File:FGUK-3rdNov12.jpg|270px|thumb|FGUK discovers there is nothing half so much worth doing than messing about in (flying) boats]]&lt;br /&gt;
[[File:FGUK-10thNov12.jpg|270px|thumb|Fast jets of FGUK leave the British winter behind for some fine-weather flying in Hawaii]]&lt;br /&gt;
[http://www.fguk.eu FGUK] rounded off November with four more memorable outings, forsaking the bleak winter scenery of the United Kingdom for the warmer climes of South and Pacific America before returning to the Lake District for some low flying exercises within easy flying distance of our home base of Llanbedr (EGOD). &lt;br /&gt;
&lt;br /&gt;
We started the month by leaving the fast jets snug in their hangars and paddling out to board seaplanes and flying boats dating from the classic age of intercontinental flight to modern day transport and fire-fighting aircraft. The additional challenge of beginning our flight from Lake Titicaca, 12000 feet up on the Andean Altiplano, set regular FGUK fliers practicing hard during the preceding week, with some of the older aircraft requiring skill and patience to even start their engines in the thin air, and all pilots adjusting to the unusual and slightly tricky experience of taking off at altitude. Their efforts paid off, forming up around Flight Leader Algernon to skim the Andes before descending steadily down with the terrain to land in a flurry of surf off the Peruvian coast. This was almost certainly a collection of aircraft never seen flying before, with a truly gargantuan Hughes H4 Hercules (the ''Spruce Goose'') joining Canopus, the first Short S.23 'Empire' flying boat, a Bombardier 415 water-bomber, classically-beautiful Consolidated Catalina PBY and Grumman Goose among others.&lt;br /&gt;
&lt;br /&gt;
Next week saw a return to a more traditional FGUK theme, with assorted fast jets hammering across somebody else's airspace. Flight Leader Neilson chose Hawaii for this flight, in order to showcase the new scenery package included in FGFS 2.8; it attracted a varied selection of fighters and ground attack aircraft including several classics from Dave Culp's hangar, which FGUK now hosts and maintains. Two F4 Phantoms, two F-15s (one C and one E) and a brace of Tornado GR4s shattered the peace of the island for two hours, at speeds high enough to require a refueling at Hilo. As is becoming standard now for all flight planners, Neilson put a good deal of preparation into this flight, with an illustrated flight plan and a downloadable Route Manager route available in advance of the event, and as always, our multimedia artists got to work during the following week to collate and shape their collected stills and video clips into galleries and movies, which are available in the FGUK media forum (see the link below).&lt;br /&gt;
&lt;br /&gt;
The chance to hone some slightly rusty skills came the following week, with a theme surround a single aircraft, and one which is both famously capable and notoriously tricky to handle - the physics-defying BaE Harrier. As one of the great British aircraft of all time, the Harrier is well represented in the FGUK hangar and the pilots had several incarnations to choose from for this high-speed, low-level, cross-continental mission from Chile to Port Stanley. Planned and led by N-SCOT, the flight plan had some tricky twists, including employing the Harrier's ace card feature: its ability to operate away from traditional flight infrastructure, in this case, a beach refueling. One vertical take-off later, and the squadron was skimming the waves, headed southeast for Stanley at 200ft AGL. Reports that the first round in the Victory public house was purchased by StuartC are apparently without substance.&lt;br /&gt;
&lt;br /&gt;
The last week of November took us closer to home when Moli organised a flight to the Lake District in the North of England. Departing Walney Island airfield (coincidentally the site of the first ever FGUK flying event back in 2010) were Hawker Hunters, Vought F-8 Crusaders, and an FGR2 among others. The weather was typically damp and grey, but with cockpit heaters turned up the low-level blast through the valleys and over the lakes was a success.&lt;br /&gt;
&lt;br /&gt;
FGUK welcomes pilots from all corners of the FG universe to fly with us on a Saturday at 2000hrs UTC. Please check the [http://www.fguk.eu/forum/saturday-night-flying Saturday Night Flying subforum on our website] to find out where we will be gathering and whether there are any recommendations or requirements for aircraft, and address any questions to us there. We hope to see you in the skies!&lt;br /&gt;
&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.&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[Flightgear On Android]] team is looking for testers&lt;br /&gt;
* The [[Target4Today]] team is looking for volunteers to help improving FlightGear's combat support&lt;br /&gt;
* The [[FGFSPM]] (FlightGear Package Manager) is looking for a new maintainer.&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2012 12]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56249</id>
		<title>FlightGear Newsletter December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56249"/>
		<updated>2012-12-10T21:20:55Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* FGUK's Saturday Night Flights */&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 the changelog of the upcoming release.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
Note to all contributors: Please also copy your newsletter additions to the changelog of the upcoming release: [[Changelog_3.0.0]].&lt;br /&gt;
&lt;br /&gt;
=== Atmospheric Light Scattering ===&lt;br /&gt;
&lt;br /&gt;
The atmospheric light scattering rendering framework received a major overhaul. Snow is now generated procedurally, which improves the performance if no snow is in the scene, but also allows the user to control the thickness of the snow layer - the shader can do a very light snow cover like in the winter textures all the way to a closed, thick snow layer. &lt;br /&gt;
&lt;br /&gt;
A new runway effect shader, similar to the one in the default rendering scheme, shows a hires bumpmap for runway closeups and displays also snow drifts in high resolution on the runway if the terrain at this altiude is snow-covered. This is complemented by a high resolution grass texture for the green around the runway.&lt;br /&gt;
&lt;br /&gt;
Major changes have been done to the ambient lighting of terrain and clouds in low light - the previous ambient light curve has been replaced by a light curve measured from a large set of photographs of sunsets. As a result, the color balance of cloud shadows in low sunlight is now much more realistic, and the effect of clouds casting a shadow on other clouds is now also effectively accounted for.&lt;br /&gt;
&lt;br /&gt;
In the course of these changes, the framework is now also able to render moonlit scenes at night, however this is not currently integrated to be done automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:Light scattering dec12 10.jpg|300px|Procedural snow and hires snow drifts on the runway.]]&lt;br /&gt;
[[File:Light scattering dec12 05.jpg|300px|Early morning scene over the French Alps.]]&lt;br /&gt;
[[File:Light scattering dec12 13.jpg|300px|New color balance of clouds in low light]]&lt;br /&gt;
&lt;br /&gt;
Combined and fully integrated with Advanced Weather, Atmospheric Light Scattering is now able to render highly realistic lighting and high-quality scenery texturing, rivaling the visual quality of FSX.&lt;br /&gt;
&lt;br /&gt;
=== Random Buildings ===&lt;br /&gt;
&amp;lt;!-- These are currently just a bunch of placeholders for the latest projects (as of 08/2012)  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Project Rembrandt ===&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&amp;lt;!--additions should also be added to:http://wiki.flightgear.org/Changelog_3.0.0#Some_of_the_major_changes_include: --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
=== FlightGear an Android ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Mailing list digest ===&lt;br /&gt;
&lt;br /&gt;
(by far the easiest option to populate the newsletter with contents is copying/pasting stuff from the forum and the mailing list or the git logs)&lt;br /&gt;
&lt;br /&gt;
=== Forum digest ===&lt;br /&gt;
&lt;br /&gt;
=== Git digest ===&lt;br /&gt;
&lt;br /&gt;
=== Getting involved as a programmer ===&lt;br /&gt;
&lt;br /&gt;
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;
== Snapshot releases ==&lt;br /&gt;
Every now and then, easy-to-install development snapshots are created (usually, twice montlhy). These snapshos depict a recent state of the development version of FlightGear. By using them users can test out features that will be included in the upcoming release. Testers are encouraged to file bugs at [http://code.google.com/p/flightgear-bugs/ the issue tracker].&lt;br /&gt;
&lt;br /&gt;
The snapshot can be download via the links at the bottom of this page: http://www.flightgear.org/download/. Updates and feedback can be found [http://flightgear.org/forums/viewtopic.php?f=28&amp;amp;t=10488&amp;amp;p=144233&amp;amp;hilit=snapshot#p144233 at the forum].&lt;br /&gt;
&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;
== 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;
== In the hangar ==&lt;br /&gt;
&lt;br /&gt;
All the way back in May 2011, we addopted a new status-rating system for aircraft. So far, only a few have actually been rated, as can be seen in the list 'hockenberry' set up at [https://docs.google.com/spreadsheet/ccc?key=0ApzphjA4w05ndF94Y2F0bzJTbHQ5QTJXZXJRcUVRbWc&amp;amp;hl=en_US Google Docs]. If you're an aircraft developer and your aircraft is/are not on the list, please consider rating their status. All you'll need to know/do is described at [[Formalizing Aircraft Status]]. If you'd just like to get started contributing to FlightGear, this would also seem like an excellent way to get started.&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
===New articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===New aircraft articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
  categoryRoot=Aircraft&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===Most popular newsletters===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=5&lt;br /&gt;
  categoryRoot=FlightGear Newsletter&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;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;
==== FGUK's Saturday Night Flights ====&lt;br /&gt;
''A work in progress''&lt;br /&gt;
[[File:FGUK-3rdNov12.jpg|270px|thumb|FGUK discovers there is nothing half so much worth doing than messing about in (flying) boats]]&lt;br /&gt;
[[File:FGUK-10thNov12.jpg|270px|thumb|Fast jets of FGUK leave the British winter behind for some fine-weather flying in Hawaii]]&lt;br /&gt;
[http://www.fguk.eu FGUK] rounded off November with four more memorable outings, forsaking the bleak winter scenery of the United Kingdom for the warmer climes of South and Pacific America before returning to the Lake District for some low flying exercises within easy flying distance of our home base of Llanbedr (EGOD). &lt;br /&gt;
&lt;br /&gt;
We started the month by leaving the fast jets snug in their hangars and paddling out to board seaplanes and flying boats dating from the classic age of intercontinental flight to modern day transport and fire-fighting aircraft. The additional challenge of beginning our flight from Lake Titicaca, 12000 feet up on the Andean Altiplano, set regular FGUK fliers practicing hard during the preceding week, with some of the older aircraft requiring skill and patience to even start their engines in the thin air, and all pilots adjusting to the unusual and slightly tricky experience of taking off at altitude. Their efforts paid off, forming up around Flight Leader Algernon to skim the Andes before descending steadily down with the terrain to land in a flurry of surf off the Peruvian coast. This was almost certainly a collection of aircraft never seen flying before, with a truly gargantuan Hughes H4 Hercules (the ''Spruce Goose'') joining Canopus, the first Short S.23 'Empire' flying boat, a Bombardier 415 water-bomber, classically-beautiful Consolidated Catalina PBY and Grumman Goose among others.&lt;br /&gt;
&lt;br /&gt;
Next week saw a return to a more traditional FGUK theme, with assorted fast jets hammering across somebody else's airspace. Flight Leader Neilson chose Hawaii for this flight, in order to showcase the new scenery package included in FGFS 2.8; it attracted a varied selection of fighters and ground attack aircraft including several classics from Dave Culp's hangar, which FGUK now hosts and maintains. Two F4 Phantoms, two F-15s (one C and one E) and a brace of Tornado GR4s shattered the peace of the island for two hours, at speeds high enough to require a refueling at Hilo. As is becoming standard now for all flight planners, Neilson put a good deal of preparation into this flight, with an illustrated flight plan and a downloadable Route Manager route available in advance of the event, and as always, our multimedia artists got to work during the following week to collate and shape their collected stills and video clips into galleries and movies, which are available in the FGUK media forum (see the link below).&lt;br /&gt;
&lt;br /&gt;
The chance to hone some slightly rusty skills came the following week, with a theme surround a single aircraft, and one which is both famously capable and notoriously tricky to handle - the physics-defying BaE Harrier. As one of the great British aircraft of all time, the Harrier is well represented in the FGUK hangar and the pilots had several incarnations to choose from for this high-speed, low-level, cross-continental mission from Chile to Port Stanley. Planned and led by N-SCOT, the flight plan had some tricky twists, including employing the Harrier's ace card feature: its ability to operate away from traditional flight infrastructure, in this case, a beach refueling. One vertical take-off later, and the squadron was skimming the waves, headed southeast for Stanley at 200ft AGL. Reports that the first round in the Victory public house was purchased by StuartC are apparently without substance.&lt;br /&gt;
&lt;br /&gt;
''Still to come: A rainy flight in the Lakes, planned events for December, and how to get involved.''&lt;br /&gt;
&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.&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[Flightgear On Android]] team is looking for testers&lt;br /&gt;
* The [[Target4Today]] team is looking for volunteers to help improving FlightGear's combat support&lt;br /&gt;
* The [[OpenRadar]] project is looking for a new maintainer.&lt;br /&gt;
* The [[FGFSPM]] (FlightGear Package Manager) is looking for a new maintainer.&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2012 12]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56248</id>
		<title>FlightGear Newsletter December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56248"/>
		<updated>2012-12-10T17:48:11Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* FGUK's Saturday Night Flights */&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 the changelog of the upcoming release.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
Note to all contributors: Please also copy your newsletter additions to the changelog of the upcoming release: [[Changelog_3.0.0]].&lt;br /&gt;
&lt;br /&gt;
=== Atmospheric Light Scattering ===&lt;br /&gt;
&lt;br /&gt;
The atmospheric light scattering rendering framework received a major overhaul. Snow is now generated procedurally, which improves the performance if no snow is in the scene, but also allows the user to control the thickness of the snow layer - the shader can do a very light snow cover like in the winter textures all the way to a closed, thick snow layer. &lt;br /&gt;
&lt;br /&gt;
A new runway effect shader, similar to the one in the default rendering scheme, shows a hires bumpmap for runway closeups and displays also snow drifts in high resolution on the runway if the terrain at this altiude is snow-covered. This is complemented by a high resolution grass texture for the green around the runway.&lt;br /&gt;
&lt;br /&gt;
Major changes have been done to the ambient lighting of terrain and clouds in low light - the previous ambient light curve has been replaced by a light curve measured from a large set of photographs of sunsets. As a result, the color balance of cloud shadows in low sunlight is now much more realistic, and the effect of clouds casting a shadow on other clouds is now also effectively accounted for.&lt;br /&gt;
&lt;br /&gt;
In the course of these changes, the framework is now also able to render moonlit scenes at night, however this is not currently integrated to be done automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:Light scattering dec12 10.jpg|300px|Procedural snow and hires snow drifts on the runway.]]&lt;br /&gt;
[[File:Light scattering dec12 05.jpg|300px|Early morning scene over the French Alps.]]&lt;br /&gt;
[[File:Light scattering dec12 13.jpg|300px|New color balance of clouds in low light]]&lt;br /&gt;
&lt;br /&gt;
Combined and fully integrated with Advanced Weather, Atmospheric Light Scattering is now able to render highly realistic lighting and high-quality scenery texturing, rivaling the visual quality of FSX.&lt;br /&gt;
&lt;br /&gt;
=== Random Buildings ===&lt;br /&gt;
&amp;lt;!-- These are currently just a bunch of placeholders for the latest projects (as of 08/2012)  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Project Rembrandt ===&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&amp;lt;!--additions should also be added to:http://wiki.flightgear.org/Changelog_3.0.0#Some_of_the_major_changes_include: --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
=== FlightGear an Android ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Mailing list digest ===&lt;br /&gt;
&lt;br /&gt;
(by far the easiest option to populate the newsletter with contents is copying/pasting stuff from the forum and the mailing list or the git logs)&lt;br /&gt;
&lt;br /&gt;
=== Forum digest ===&lt;br /&gt;
&lt;br /&gt;
=== Git digest ===&lt;br /&gt;
&lt;br /&gt;
=== Getting involved as a programmer ===&lt;br /&gt;
&lt;br /&gt;
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;
== Snapshot releases ==&lt;br /&gt;
Every now and then, easy-to-install development snapshots are created (usually, twice montlhy). These snapshos depict a recent state of the development version of FlightGear. By using them users can test out features that will be included in the upcoming release. Testers are encouraged to file bugs at [http://code.google.com/p/flightgear-bugs/ the issue tracker].&lt;br /&gt;
&lt;br /&gt;
The snapshot can be download via the links at the bottom of this page: http://www.flightgear.org/download/. Updates and feedback can be found [http://flightgear.org/forums/viewtopic.php?f=28&amp;amp;t=10488&amp;amp;p=144233&amp;amp;hilit=snapshot#p144233 at the forum].&lt;br /&gt;
&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;
== 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;
== In the hangar ==&lt;br /&gt;
&lt;br /&gt;
All the way back in May 2011, we addopted a new status-rating system for aircraft. So far, only a few have actually been rated, as can be seen in the list 'hockenberry' set up at [https://docs.google.com/spreadsheet/ccc?key=0ApzphjA4w05ndF94Y2F0bzJTbHQ5QTJXZXJRcUVRbWc&amp;amp;hl=en_US Google Docs]. If you're an aircraft developer and your aircraft is/are not on the list, please consider rating their status. All you'll need to know/do is described at [[Formalizing Aircraft Status]]. If you'd just like to get started contributing to FlightGear, this would also seem like an excellent way to get started.&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
===New articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===New aircraft articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
  categoryRoot=Aircraft&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===Most popular newsletters===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=5&lt;br /&gt;
  categoryRoot=FlightGear Newsletter&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;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;
==== FGUK's Saturday Night Flights ====&lt;br /&gt;
''A work in progress''&lt;br /&gt;
[[File:FGUK-3rdNov12.jpg|270px|thumb|FGUK discovers there is nothing half so much worth doing than messing about in (flying) boats]]&lt;br /&gt;
[[File:FGUK-10thNov12.jpg|270px|thumb|Fast jets of FGUK leave the British winter behind for some fine-weather flying in Hawaii]]&lt;br /&gt;
[http://www.fguk.eu FGUK] rounded off November with four more memorable outings, forsaking the bleak winter scenery of the United Kingdom for the warmer climes of South and Pacific America before returning to the Lake District for some low flying exercises within easy flying distance of our home base of Llanbedr (EGOD). &lt;br /&gt;
&lt;br /&gt;
We started the month by leaving the fast jets snug in their hangars and paddling out to board seaplanes and flying boats dating from the classic age of intercontinental flight to modern day transport and fire-fighting aircraft. The additional challenge of beginning our flight from Lake Titicaca, 12000 feet up on the Andean Altiplano, set regular FGUK fliers practicing hard during the preceding week, with some of the older aircraft requiring skill and patience to even start their engines in the thin air, and all pilots adjusting to the unusual and slightly tricky experience of taking off at altitude. Their efforts paid off, forming up around Flight Leader Algernon to skim the Andes before descending steadily down with the terrain to land in a flurry of surf off the Peruvian coast. This was almost certainly a collection of aircraft never seen flying before, with a truly gargantuan Hughes H4 Hercules (the ''Spruce Goose'') joining Canopus, the first Short S.23 'Empire' flying boat, a Bombardier 415 water-bomber, classically-beautiful Consolidated Catalina PBY and Grumman Goose among others.&lt;br /&gt;
&lt;br /&gt;
Next week saw a return to a more traditional FGUK theme, with assorted fast jets hammering across somebody else's airspace. Flight Leader Neilson chose Hawaii for this flight, in order to showcase the new scenery package included in FGFS 2.8; it attracted a varied selection of fighters and ground attack aircraft including several classics from Dave Culp's hangar, which FGUK now hosts and maintains. Two F4 Phantoms, two F-15s (one C and one E) and a brace of Tornado GR4s shattered the peace of the island for two hours, at speeds high enough to require a refueling at Hilo. As is becoming standard now for all flight planners, Neilson put a good deal of preparation into this flight, with an illustrated flight plan and a downloadable Route Manager route available in advance of the event, and as always, our multimedia artists got to work during the following week to collate and shape their collected stills and video clips into galleries and movies, which are available in the FGUK media forum (see the link below).&lt;br /&gt;
&lt;br /&gt;
The chance to hone some slightly rusty skills came the following week, with a theme surround a single aircraft, and one which is both famously capable and notoriously tricky to handle - the physics-defying BaE Harrier. As one of the great British aircraft of all time, the Harrier is well represented in the FGUK hangar and the pilots had several incarnations to choose from for this high-speed, low-level, cross-continental mission from Chile to Port Stanley. Planned and led by N-SCOT, the flight plan had some tricky twists, including employing the Harrier's ace card feature: its ability to operate away from traditional flight infrastructure, in this case, a beach refueling. One vertical take-off later, and the squadron was skimming the waves, headed southeast for Stanley at 200ft AGL. Reports that the first round in the Victory public house was purchased by StuartC are apparently without substance.&lt;br /&gt;
&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.&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[Flightgear On Android]] team is looking for testers&lt;br /&gt;
* The [[Target4Today]] team is looking for volunteers to help improving FlightGear's combat support&lt;br /&gt;
* The [[OpenRadar]] project is looking for a new maintainer.&lt;br /&gt;
* The [[FGFSPM]] (FlightGear Package Manager) is looking for a new maintainer.&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2012 12]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:FGUK-3rdNov12.jpg&amp;diff=56247</id>
		<title>File:FGUK-3rdNov12.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:FGUK-3rdNov12.jpg&amp;diff=56247"/>
		<updated>2012-12-10T16:38:35Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* {{int:filedesc}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=FGUK pilots fly seaplanes and flying boats from Lake Titicata, 12000ft up in the Andes, down to the coast of Peru in November 2012}}&lt;br /&gt;
|date=2012-12-10&lt;br /&gt;
|source=FGUK Media Forum&lt;br /&gt;
|author=Neilson, an FGUK Contributor&lt;br /&gt;
|permission=&lt;br /&gt;
|other_versions=&lt;br /&gt;
|other_fields=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{FAL}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56246</id>
		<title>FlightGear Newsletter December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56246"/>
		<updated>2012-12-10T16:37:06Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* FGUK's Saturday Night Flights */&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 the changelog of the upcoming release.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
Note to all contributors: Please also copy your newsletter additions to the changelog of the upcoming release: [[Changelog_3.0.0]].&lt;br /&gt;
&lt;br /&gt;
=== Atmospheric Light Scattering ===&lt;br /&gt;
&lt;br /&gt;
The atmospheric light scattering rendering framework received a major overhaul. Snow is now generated procedurally, which improves the performance if no snow is in the scene, but also allows the user to control the thickness of the snow layer - the shader can do a very light snow cover like in the winter textures all the way to a closed, thick snow layer. &lt;br /&gt;
&lt;br /&gt;
A new runway effect shader, similar to the one in the default rendering scheme, shows a hires bumpmap for runway closeups and displays also snow drifts in high resolution on the runway if the terrain at this altiude is snow-covered. This is complemented by a high resolution grass texture for the green around the runway.&lt;br /&gt;
&lt;br /&gt;
Major changes have been done to the ambient lighting of terrain and clouds in low light - the previous ambient light curve has been replaced by a light curve measured from a large set of photographs of sunsets. As a result, the color balance of cloud shadows in low sunlight is now much more realistic, and the effect of clouds casting a shadow on other clouds is now also effectively accounted for.&lt;br /&gt;
&lt;br /&gt;
In the course of these changes, the framework is now also able to render moonlit scenes at night, however this is not currently integrated to be done automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:Light scattering dec12 10.jpg|300px|Procedural snow and hires snow drifts on the runway.]]&lt;br /&gt;
[[File:Light scattering dec12 05.jpg|300px|Early morning scene over the French Alps.]]&lt;br /&gt;
[[File:Light scattering dec12 13.jpg|300px|New color balance of clouds in low light]]&lt;br /&gt;
&lt;br /&gt;
Combined and fully integrated with Advanced Weather, Atmospheric Light Scattering is now able to render highly realistic lighting and high-quality scenery texturing, rivaling the visual quality of FSX.&lt;br /&gt;
&lt;br /&gt;
=== Random Buildings ===&lt;br /&gt;
&amp;lt;!-- These are currently just a bunch of placeholders for the latest projects (as of 08/2012)  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Project Rembrandt ===&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&amp;lt;!--additions should also be added to:http://wiki.flightgear.org/Changelog_3.0.0#Some_of_the_major_changes_include: --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
=== FlightGear an Android ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Mailing list digest ===&lt;br /&gt;
&lt;br /&gt;
(by far the easiest option to populate the newsletter with contents is copying/pasting stuff from the forum and the mailing list or the git logs)&lt;br /&gt;
&lt;br /&gt;
=== Forum digest ===&lt;br /&gt;
&lt;br /&gt;
=== Git digest ===&lt;br /&gt;
&lt;br /&gt;
=== Getting involved as a programmer ===&lt;br /&gt;
&lt;br /&gt;
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;
== Snapshot releases ==&lt;br /&gt;
Every now and then, easy-to-install development snapshots are created (usually, twice montlhy). These snapshos depict a recent state of the development version of FlightGear. By using them users can test out features that will be included in the upcoming release. Testers are encouraged to file bugs at [http://code.google.com/p/flightgear-bugs/ the issue tracker].&lt;br /&gt;
&lt;br /&gt;
The snapshot can be download via the links at the bottom of this page: http://www.flightgear.org/download/. Updates and feedback can be found [http://flightgear.org/forums/viewtopic.php?f=28&amp;amp;t=10488&amp;amp;p=144233&amp;amp;hilit=snapshot#p144233 at the forum].&lt;br /&gt;
&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;
== 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;
== In the hangar ==&lt;br /&gt;
&lt;br /&gt;
All the way back in May 2011, we addopted a new status-rating system for aircraft. So far, only a few have actually been rated, as can be seen in the list 'hockenberry' set up at [https://docs.google.com/spreadsheet/ccc?key=0ApzphjA4w05ndF94Y2F0bzJTbHQ5QTJXZXJRcUVRbWc&amp;amp;hl=en_US Google Docs]. If you're an aircraft developer and your aircraft is/are not on the list, please consider rating their status. All you'll need to know/do is described at [[Formalizing Aircraft Status]]. If you'd just like to get started contributing to FlightGear, this would also seem like an excellent way to get started.&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
===New articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===New aircraft articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
  categoryRoot=Aircraft&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===Most popular newsletters===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=5&lt;br /&gt;
  categoryRoot=FlightGear Newsletter&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;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;
==== FGUK's Saturday Night Flights ====&lt;br /&gt;
''A work in progress''&lt;br /&gt;
[[File:FGUK-3rdNov12.jpg|270px|thumb|FGUK discovers there is nothing half so much worth doing than messing about in (flying) boats]]&lt;br /&gt;
[[File:FGUK-10thNov12.jpg|270px|thumb|Fast jets of FGUK leave the British winter behind for some fine-weather flying in Hawaii]]&lt;br /&gt;
[http://www.fguk.eu FGUK] rounded off November with four more memorable outings, forsaking the bleak winter scenery of the United Kingdom for the warmer climes of South and Pacific America before returning to the Lake District for some low flying exercises within easy flying distance of our home base of Llanbedr (EGOD). &lt;br /&gt;
&lt;br /&gt;
We started the month by leaving the fast jets snug in their hangars and paddling out to board seaplanes and flying boats dating from the classic age of intercontinental flight to modern day transport and fire-fighting aircraft. The additional challenge of beginning our flight from Lake Titicaca, 12000 feet up on the Andean Altiplano, set regular FGUK fliers practicing hard during the preceding week, with some of the older aircraft requiring skill and patience to even start their engines in the thin air, and all pilots adjusting to the unusual and slightly tricky experience of taking off at altitude. Their efforts paid off, forming up around Flight Leader Algernon to skim the Andes before descending steadily down with the terrain to land in a flurry of surf off the Peruvian coast. This was almost certainly a collection of aircraft never seen flying before, with a truly gargantuan Hughes H4 Hercules (the ''Spruce Goose'') joining Canopus, the first Short S.23 'Empire' flying boat, a Bombardier 415 water-bomber, classically-beautiful Consolidated Catalina PBY and Grumman Goose among others.&lt;br /&gt;
&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.&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[Flightgear On Android]] team is looking for testers&lt;br /&gt;
* The [[Target4Today]] team is looking for volunteers to help improving FlightGear's combat support&lt;br /&gt;
* The [[OpenRadar]] project is looking for a new maintainer.&lt;br /&gt;
* The [[FGFSPM]] (FlightGear Package Manager) is looking for a new maintainer.&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2012 12]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:FGUK-10thNov12.jpg&amp;diff=56245</id>
		<title>File:FGUK-10thNov12.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:FGUK-10thNov12.jpg&amp;diff=56245"/>
		<updated>2012-12-10T16:25:01Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Fast jets of FGUK line up after flying in Hawaii, 10th December 2012}}&lt;br /&gt;
|date=2012-12-10&lt;br /&gt;
|source=FGUK Media Forum&lt;br /&gt;
|author=StuartC of FGUK&lt;br /&gt;
|permission=&lt;br /&gt;
|other_versions=&lt;br /&gt;
|other_fields=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{FAL}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56242</id>
		<title>FlightGear Newsletter December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_December_2012&amp;diff=56242"/>
		<updated>2012-12-10T16:06:49Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Multiplayer */&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 the changelog of the upcoming release.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
Note to all contributors: Please also copy your newsletter additions to the changelog of the upcoming release: [[Changelog_3.0.0]].&lt;br /&gt;
&lt;br /&gt;
=== Atmospheric Light Scattering ===&lt;br /&gt;
&lt;br /&gt;
The atmospheric light scattering rendering framework received a major overhaul. Snow is now generated procedurally, which improves the performance if no snow is in the scene, but also allows the user to control the thickness of the snow layer - the shader can do a very light snow cover like in the winter textures all the way to a closed, thick snow layer. &lt;br /&gt;
&lt;br /&gt;
A new runway effect shader, similar to the one in the default rendering scheme, shows a hires bumpmap for runway closeups and displays also snow drifts in high resolution on the runway if the terrain at this altiude is snow-covered. This is complemented by a high resolution grass texture for the green around the runway.&lt;br /&gt;
&lt;br /&gt;
Major changes have been done to the ambient lighting of terrain and clouds in low light - the previous ambient light curve has been replaced by a light curve measured from a large set of photographs of sunsets. As a result, the color balance of cloud shadows in low sunlight is now much more realistic, and the effect of clouds casting a shadow on other clouds is now also effectively accounted for.&lt;br /&gt;
&lt;br /&gt;
In the course of these changes, the framework is now also able to render moonlit scenes at night, however this is not currently integrated to be done automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:Light scattering dec12 10.jpg|300px|Procedural snow and hires snow drifts on the runway.]]&lt;br /&gt;
[[File:Light scattering dec12 05.jpg|300px|Early morning scene over the French Alps.]]&lt;br /&gt;
[[File:Light scattering dec12 13.jpg|300px|New color balance of clouds in low light]]&lt;br /&gt;
&lt;br /&gt;
Combined and fully integrated with Advanced Weather, Atmospheric Light Scattering is now able to render highly realistic lighting and high-quality scenery texturing, rivaling the visual quality of FSX.&lt;br /&gt;
&lt;br /&gt;
=== Random Buildings ===&lt;br /&gt;
&amp;lt;!-- These are currently just a bunch of placeholders for the latest projects (as of 08/2012)  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Project Rembrandt ===&lt;br /&gt;
=== Canvas System ===&lt;br /&gt;
&amp;lt;!--additions should also be added to:http://wiki.flightgear.org/Changelog_3.0.0#Some_of_the_major_changes_include: --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High Level Architecture ===&lt;br /&gt;
=== FlightGear an Android ===&lt;br /&gt;
&lt;br /&gt;
=== Usability Improvements ===&lt;br /&gt;
&lt;br /&gt;
=== Mailing list digest ===&lt;br /&gt;
&lt;br /&gt;
(by far the easiest option to populate the newsletter with contents is copying/pasting stuff from the forum and the mailing list or the git logs)&lt;br /&gt;
&lt;br /&gt;
=== Forum digest ===&lt;br /&gt;
&lt;br /&gt;
=== Git digest ===&lt;br /&gt;
&lt;br /&gt;
=== Getting involved as a programmer ===&lt;br /&gt;
&lt;br /&gt;
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;
== Snapshot releases ==&lt;br /&gt;
Every now and then, easy-to-install development snapshots are created (usually, twice montlhy). These snapshos depict a recent state of the development version of FlightGear. By using them users can test out features that will be included in the upcoming release. Testers are encouraged to file bugs at [http://code.google.com/p/flightgear-bugs/ the issue tracker].&lt;br /&gt;
&lt;br /&gt;
The snapshot can be download via the links at the bottom of this page: http://www.flightgear.org/download/. Updates and feedback can be found [http://flightgear.org/forums/viewtopic.php?f=28&amp;amp;t=10488&amp;amp;p=144233&amp;amp;hilit=snapshot#p144233 at the forum].&lt;br /&gt;
&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;
== 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;
== In the hangar ==&lt;br /&gt;
&lt;br /&gt;
All the way back in May 2011, we addopted a new status-rating system for aircraft. So far, only a few have actually been rated, as can be seen in the list 'hockenberry' set up at [https://docs.google.com/spreadsheet/ccc?key=0ApzphjA4w05ndF94Y2F0bzJTbHQ5QTJXZXJRcUVRbWc&amp;amp;hl=en_US Google Docs]. If you're an aircraft developer and your aircraft is/are not on the list, please consider rating their status. All you'll need to know/do is described at [[Formalizing Aircraft Status]]. If you'd just like to get started contributing to FlightGear, this would also seem like an excellent way to get started.&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&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;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
===New articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===New aircraft articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
  categoryRoot=Aircraft&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===Most popular newsletters===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=5&lt;br /&gt;
  categoryRoot=FlightGear Newsletter&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;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;
==== FGUK's Saturday Night Flights ====&lt;br /&gt;
''A work in progress''&lt;br /&gt;
[[File:FGUK-3rdNov12.jpg|270px|thumb|FGUK discovers there is nothing half so much worth doing than messing about in (flying) boats]]&lt;br /&gt;
[http://www.fguk.eu FGUK] rounded off November with four more memorable outings, forsaking the bleak winter scenery of the United Kingdom for the warmer climes of South and Pacific America before returning to the Lake District for some low flying exercises within easy flying distance of our home base of Llanbedr (EGOD). &lt;br /&gt;
&lt;br /&gt;
We started the month by leaving the fast jets snug in their hangars and paddling out to board seaplanes and flying boats dating from the classic age of intercontinental flight to modern day transport and fire-fighting aircraft. The additional challenge of beginning our flight from Lake Titicaca, 12000 feet up on the Andean Altiplano, set regular FGUK fliers practicing hard during the preceding week, with some of the older aircraft requiring skill and patience to even start their engines, and all pilots adjusting to the unusual and slightly tricky experience of taking off at altitude.&lt;br /&gt;
&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.&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[FGRadar]] project (standalone ATC client) is looking for people to join the project, give ideas, requests or opinions.&lt;br /&gt;
* The [[Flightgear On Android]] team is looking for testers&lt;br /&gt;
* The [[Target4Today]] team is looking for volunteers to help improving FlightGear's combat support&lt;br /&gt;
* The [[OpenRadar]] project is looking for a new maintainer.&lt;br /&gt;
* The [[FGFSPM]] (FlightGear Package Manager) is looking for a new maintainer.&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2012 12]]&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:FGUK-3rdNov12.jpg&amp;diff=56241</id>
		<title>File:FGUK-3rdNov12.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:FGUK-3rdNov12.jpg&amp;diff=56241"/>
		<updated>2012-12-10T15:44:12Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=FGUK pilots fly seaplanes and flying boats from Lake Titicata, 12000ft up in the Andes, down to the coast of Chile in November 2012}}&lt;br /&gt;
|date=2012-12-10&lt;br /&gt;
|source=FGUK Media Forum&lt;br /&gt;
|author=Neilson, an FGUK Contributor&lt;br /&gt;
|permission=&lt;br /&gt;
|other_versions=&lt;br /&gt;
|other_fields=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{FAL}}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Development_Documentation&amp;diff=49624</id>
		<title>Eurofighter Typhoon: Development Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Development_Documentation&amp;diff=49624"/>
		<updated>2012-05-06T17:34:48Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Generic Multiplayer Properties ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1px&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
!ID  !!  Property                                                      || Type(*) || Allocation&lt;br /&gt;
|-&lt;br /&gt;
|10100 || &amp;quot;sim/multiplay/generic/string[0]&amp;quot;                             || STRING || &lt;br /&gt;
|-&lt;br /&gt;
|10101 || &amp;quot;sim/multiplay/generic/string[1]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10102 || &amp;quot;sim/multiplay/generic/string[2]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10103 || &amp;quot;sim/multiplay/generic/string[3]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10104 || &amp;quot;sim/multiplay/generic/string[4]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10105 || &amp;quot;sim/multiplay/generic/string[5]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10106 || &amp;quot;sim/multiplay/generic/string[6]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10107 || &amp;quot;sim/multiplay/generic/string[7]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10108 || &amp;quot;sim/multiplay/generic/string[8]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10109 || &amp;quot;sim/multiplay/generic/string[9]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10110 || &amp;quot;sim/multiplay/generic/string[10]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10111 || &amp;quot;sim/multiplay/generic/string[11]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10112 || &amp;quot;sim/multiplay/generic/string[12]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10113 || &amp;quot;sim/multiplay/generic/string[13]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10114 || &amp;quot;sim/multiplay/generic/string[14]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10115 || &amp;quot;sim/multiplay/generic/string[15]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10116 || &amp;quot;sim/multiplay/generic/string[16]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10117 || &amp;quot;sim/multiplay/generic/string[17]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10118 || &amp;quot;sim/multiplay/generic/string[18]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10119 || &amp;quot;sim/multiplay/generic/string[19]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10200 || &amp;quot;sim/multiplay/generic/float[0]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10201 || &amp;quot;sim/multiplay/generic/float[1]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10202 || &amp;quot;sim/multiplay/generic/float[2]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10203 || &amp;quot;sim/multiplay/generic/float[3]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10204 || &amp;quot;sim/multiplay/generic/float[4]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10205 || &amp;quot;sim/multiplay/generic/float[5]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10206 || &amp;quot;sim/multiplay/generic/float[6]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10207 || &amp;quot;sim/multiplay/generic/float[7]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10208 || &amp;quot;sim/multiplay/generic/float[8]&amp;quot;                              || FLOAT || &amp;quot;/canopy/position-norm&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10209 || &amp;quot;sim/multiplay/generic/float[9]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10210 || &amp;quot;sim/multiplay/generic/float[10]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10211 || &amp;quot;sim/multiplay/generic/float[11]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10212 || &amp;quot;sim/multiplay/generic/float[12]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10213 || &amp;quot;sim/multiplay/generic/float[13]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10214 || &amp;quot;sim/multiplay/generic/float[14]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10215 || &amp;quot;sim/multiplay/generic/float[15]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10216 || &amp;quot;sim/multiplay/generic/float[16]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10217 || &amp;quot;sim/multiplay/generic/float[17]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10218 || &amp;quot;sim/multiplay/generic/float[18]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10219 || &amp;quot;sim/multiplay/generic/float[19]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10300 || &amp;quot;sim/multiplay/generic/int[0]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10301 || &amp;quot;sim/multiplay/generic/int[1]&amp;quot;                                || INT || &amp;quot;/gear/gear[0]/tyre-smoke&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10302 || &amp;quot;sim/multiplay/generic/int[2]&amp;quot;                                || INT || &amp;quot;/gear/gear[1]/tyre-smoke&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10303 || &amp;quot;sim/multiplay/generic/int[3]&amp;quot;                                || INT || &amp;quot;/gear/gear[2]/tyre-smoke&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10304 || &amp;quot;sim/multiplay/generic/int[4]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10305 || &amp;quot;sim/multiplay/generic/int[5]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10306 || &amp;quot;sim/multiplay/generic/int[6]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10307 || &amp;quot;sim/multiplay/generic/int[7]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10308 || &amp;quot;sim/multiplay/generic/int[8]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10309 || &amp;quot;sim/multiplay/generic/int[9]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10310 || &amp;quot;sim/multiplay/generic/int[10]&amp;quot;                               || INT || &amp;quot;/engines/engine[0]/afterburner&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10311 || &amp;quot;sim/multiplay/generic/int[11]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10312 || &amp;quot;sim/multiplay/generic/int[12]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10313 || &amp;quot;sim/multiplay/generic/int[13]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10314 || &amp;quot;sim/multiplay/generic/int[14]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10315 || &amp;quot;sim/multiplay/generic/int[15]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10316 || &amp;quot;sim/multiplay/generic/int[16]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10317 || &amp;quot;sim/multiplay/generic/int[17]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10318 || &amp;quot;sim/multiplay/generic/int[18]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10319 || &amp;quot;sim/multiplay/generic/int[19]&amp;quot;                               || INT&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Development_Documentation&amp;diff=49623</id>
		<title>Eurofighter Typhoon: Development Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Development_Documentation&amp;diff=49623"/>
		<updated>2012-05-06T17:32:32Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Generic Multiplayer Properties ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1px&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
!ID  !!  Property                                                      || Type(*) || Allocation&lt;br /&gt;
|-&lt;br /&gt;
|10100 || &amp;quot;sim/multiplay/generic/string[0]&amp;quot;                             || STRING || &lt;br /&gt;
|-&lt;br /&gt;
|10101 || &amp;quot;sim/multiplay/generic/string[1]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10102 || &amp;quot;sim/multiplay/generic/string[2]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10103 || &amp;quot;sim/multiplay/generic/string[3]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10104 || &amp;quot;sim/multiplay/generic/string[4]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10105 || &amp;quot;sim/multiplay/generic/string[5]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10106 || &amp;quot;sim/multiplay/generic/string[6]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10107 || &amp;quot;sim/multiplay/generic/string[7]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10108 || &amp;quot;sim/multiplay/generic/string[8]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10109 || &amp;quot;sim/multiplay/generic/string[9]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10110 || &amp;quot;sim/multiplay/generic/string[10]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10111 || &amp;quot;sim/multiplay/generic/string[11]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10112 || &amp;quot;sim/multiplay/generic/string[12]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10113 || &amp;quot;sim/multiplay/generic/string[13]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10114 || &amp;quot;sim/multiplay/generic/string[14]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10115 || &amp;quot;sim/multiplay/generic/string[15]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10116 || &amp;quot;sim/multiplay/generic/string[16]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10117 || &amp;quot;sim/multiplay/generic/string[17]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10118 || &amp;quot;sim/multiplay/generic/string[18]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10119 || &amp;quot;sim/multiplay/generic/string[19]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10200 || &amp;quot;sim/multiplay/generic/float[0]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10201 || &amp;quot;sim/multiplay/generic/float[1]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10202 || &amp;quot;sim/multiplay/generic/float[2]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10203 || &amp;quot;sim/multiplay/generic/float[3]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10204 || &amp;quot;sim/multiplay/generic/float[4]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10205 || &amp;quot;sim/multiplay/generic/float[5]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10206 || &amp;quot;sim/multiplay/generic/float[6]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10207 || &amp;quot;sim/multiplay/generic/float[7]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10208 || &amp;quot;sim/multiplay/generic/float[8]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10209 || &amp;quot;sim/multiplay/generic/float[9]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10210 || &amp;quot;sim/multiplay/generic/float[10]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10211 || &amp;quot;sim/multiplay/generic/float[11]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10212 || &amp;quot;sim/multiplay/generic/float[12]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10213 || &amp;quot;sim/multiplay/generic/float[13]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10214 || &amp;quot;sim/multiplay/generic/float[14]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10215 || &amp;quot;sim/multiplay/generic/float[15]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10216 || &amp;quot;sim/multiplay/generic/float[16]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10217 || &amp;quot;sim/multiplay/generic/float[17]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10218 || &amp;quot;sim/multiplay/generic/float[18]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10219 || &amp;quot;sim/multiplay/generic/float[19]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10300 || &amp;quot;sim/multiplay/generic/int[0]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10301 || &amp;quot;sim/multiplay/generic/int[1]&amp;quot;                                || INT || &amp;quot;/gear/gear[0]/tyre-smoke&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10302 || &amp;quot;sim/multiplay/generic/int[2]&amp;quot;                                || INT || &amp;quot;/gear/gear[1]/tyre-smoke&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10303 || &amp;quot;sim/multiplay/generic/int[3]&amp;quot;                                || INT || &amp;quot;/gear/gear[2]/tyre-smoke&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10304 || &amp;quot;sim/multiplay/generic/int[4]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10305 || &amp;quot;sim/multiplay/generic/int[5]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10306 || &amp;quot;sim/multiplay/generic/int[6]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10307 || &amp;quot;sim/multiplay/generic/int[7]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10308 || &amp;quot;sim/multiplay/generic/int[8]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10309 || &amp;quot;sim/multiplay/generic/int[9]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10310 || &amp;quot;sim/multiplay/generic/int[10]&amp;quot;                               || INT || &amp;quot;/engines/engine[0]/afterburner&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|10311 || &amp;quot;sim/multiplay/generic/int[11]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10312 || &amp;quot;sim/multiplay/generic/int[12]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10313 || &amp;quot;sim/multiplay/generic/int[13]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10314 || &amp;quot;sim/multiplay/generic/int[14]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10315 || &amp;quot;sim/multiplay/generic/int[15]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10316 || &amp;quot;sim/multiplay/generic/int[16]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10317 || &amp;quot;sim/multiplay/generic/int[17]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10318 || &amp;quot;sim/multiplay/generic/int[18]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10319 || &amp;quot;sim/multiplay/generic/int[19]&amp;quot;                               || INT&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Development_Documentation&amp;diff=49504</id>
		<title>Eurofighter Typhoon: Development Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Development_Documentation&amp;diff=49504"/>
		<updated>2012-05-06T16:50:49Z</updated>

		<summary type="html">&lt;p&gt;Algernon: Created page with &amp;quot; == Generic Multiplayer Properties ==  {| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1px&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; !ID  !!  Property                                                   ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Generic Multiplayer Properties ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1px&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
!ID  !!  Property                                                      || Type(*)&lt;br /&gt;
|-&lt;br /&gt;
|10100 || &amp;quot;sim/multiplay/generic/string[0]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10101 || &amp;quot;sim/multiplay/generic/string[1]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10102 || &amp;quot;sim/multiplay/generic/string[2]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10103 || &amp;quot;sim/multiplay/generic/string[3]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10104 || &amp;quot;sim/multiplay/generic/string[4]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10105 || &amp;quot;sim/multiplay/generic/string[5]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10106 || &amp;quot;sim/multiplay/generic/string[6]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10107 || &amp;quot;sim/multiplay/generic/string[7]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10108 || &amp;quot;sim/multiplay/generic/string[8]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10109 || &amp;quot;sim/multiplay/generic/string[9]&amp;quot;                             || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10110 || &amp;quot;sim/multiplay/generic/string[10]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10111 || &amp;quot;sim/multiplay/generic/string[11]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10112 || &amp;quot;sim/multiplay/generic/string[12]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10113 || &amp;quot;sim/multiplay/generic/string[13]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10114 || &amp;quot;sim/multiplay/generic/string[14]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10115 || &amp;quot;sim/multiplay/generic/string[15]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10116 || &amp;quot;sim/multiplay/generic/string[16]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10117 || &amp;quot;sim/multiplay/generic/string[17]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10118 || &amp;quot;sim/multiplay/generic/string[18]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10119 || &amp;quot;sim/multiplay/generic/string[19]&amp;quot;                            || STRING&lt;br /&gt;
|-&lt;br /&gt;
|10200 || &amp;quot;sim/multiplay/generic/float[0]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10201 || &amp;quot;sim/multiplay/generic/float[1]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10202 || &amp;quot;sim/multiplay/generic/float[2]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10203 || &amp;quot;sim/multiplay/generic/float[3]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10204 || &amp;quot;sim/multiplay/generic/float[4]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10205 || &amp;quot;sim/multiplay/generic/float[5]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10206 || &amp;quot;sim/multiplay/generic/float[6]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10207 || &amp;quot;sim/multiplay/generic/float[7]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10208 || &amp;quot;sim/multiplay/generic/float[8]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10209 || &amp;quot;sim/multiplay/generic/float[9]&amp;quot;                              || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10210 || &amp;quot;sim/multiplay/generic/float[10]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10211 || &amp;quot;sim/multiplay/generic/float[11]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10212 || &amp;quot;sim/multiplay/generic/float[12]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10213 || &amp;quot;sim/multiplay/generic/float[13]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10214 || &amp;quot;sim/multiplay/generic/float[14]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10215 || &amp;quot;sim/multiplay/generic/float[15]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10216 || &amp;quot;sim/multiplay/generic/float[16]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10217 || &amp;quot;sim/multiplay/generic/float[17]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10218 || &amp;quot;sim/multiplay/generic/float[18]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10219 || &amp;quot;sim/multiplay/generic/float[19]&amp;quot;                             || FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|10300 || &amp;quot;sim/multiplay/generic/int[0]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10301 || &amp;quot;sim/multiplay/generic/int[1]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10302 || &amp;quot;sim/multiplay/generic/int[2]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10303 || &amp;quot;sim/multiplay/generic/int[3]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10304 || &amp;quot;sim/multiplay/generic/int[4]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10305 || &amp;quot;sim/multiplay/generic/int[5]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10306 || &amp;quot;sim/multiplay/generic/int[6]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10307 || &amp;quot;sim/multiplay/generic/int[7]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10308 || &amp;quot;sim/multiplay/generic/int[8]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10309 || &amp;quot;sim/multiplay/generic/int[9]&amp;quot;                                || INT&lt;br /&gt;
|-&lt;br /&gt;
|10310 || &amp;quot;sim/multiplay/generic/int[10]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10311 || &amp;quot;sim/multiplay/generic/int[11]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10312 || &amp;quot;sim/multiplay/generic/int[12]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10313 || &amp;quot;sim/multiplay/generic/int[13]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10314 || &amp;quot;sim/multiplay/generic/int[14]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10315 || &amp;quot;sim/multiplay/generic/int[15]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10316 || &amp;quot;sim/multiplay/generic/int[16]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10317 || &amp;quot;sim/multiplay/generic/int[17]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10318 || &amp;quot;sim/multiplay/generic/int[18]&amp;quot;                               || INT&lt;br /&gt;
|-&lt;br /&gt;
|10319 || &amp;quot;sim/multiplay/generic/int[19]&amp;quot;                               || INT&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Flight_Manual&amp;diff=48985</id>
		<title>Eurofighter Typhoon: Flight Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Flight_Manual&amp;diff=48985"/>
		<updated>2012-05-04T12:11:51Z</updated>

		<summary type="html">&lt;p&gt;Algernon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This document is a work in progress. We aim to produce a concise guide to flying the Eurofighter Typhoon and operating its systems. Keep checking back - as things are added to the aircraft, so they'll be documented here - we hope to make these updates in a timely manner, ideally when new versions of the aircraft are released.&lt;br /&gt;
&lt;br /&gt;
'''Please note that some versions of the aircraft are not currently undergoing development, owing to limitations within earlier versions of FlightGear, and functions described in this document may not exist or work as described. To make the most use of the aircraft's newest features, please use the latest versions of both FlightGear and the Typhoon'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The [[Eurofighter Typhoon]] is an agile, multirole combat aircraft designed upon relaxed stability principles.&lt;br /&gt;
&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
Eurofighter Typhoon for FlightGear was developed by Maverick Alex, DFaber, Almursi, Algernon, Aster and other contributors.&lt;br /&gt;
This document initialised by --[[User:Algernon|Algernon]] 16:28, 28 June 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Develop &amp;amp; Customise ===&lt;br /&gt;
See [[Eurofighter Typhoon: Development Documentation]]&lt;br /&gt;
&lt;br /&gt;
== Flight Controls ==&lt;br /&gt;
The aircraft is controlled via stick, throttle and rudder pedals, whose motions are processed by the Flight Control System and appropriate signals are passed to the flight control surfaces, the canards, flaperons and rudder. &lt;br /&gt;
&lt;br /&gt;
=== Flight Control System ===&lt;br /&gt;
&lt;br /&gt;
The FCS can be bypassed, but this is not recommended under normal flight conditions. &lt;br /&gt;
&lt;br /&gt;
=== Ground Controls ===&lt;br /&gt;
On the ground, the Typhoon is steered by a castering nosewheel whose maximum angle and steering ratio decreases as ground speed increases. The main gear is equipped with speed brakes and parking brakes, and ground braking is assisted at ground speeds above 50kts by the canard, which rotates fully forward to act as an air brake.&lt;br /&gt;
&lt;br /&gt;
== Avionics ==&lt;br /&gt;
===Head Up Display===&lt;br /&gt;
===Multi-Fuction Head Down Displays===&lt;br /&gt;
===Manual Data Entry Facility===&lt;br /&gt;
The MDEF is located on the left glareshield, above and left of the left-hand MFHDD. It consists of a bank of Autopilot Keys (diagonal and top-right, and SubSystem Keys. The 12 keys on the left select the desired page to be displayed on the 12 softkeys on the right, through which the navigation, defensive and communications equipment is programmed and controlled. Available pages are:&lt;br /&gt;
*'''MIDS''': Multi-function Information Display System - select MIDS page&lt;br /&gt;
*'''NAV''': Navgiation Subsystem - Access Route Manager ('''RTE MGR'''), adjust route, lock altitude hold to Route Manager altitude instructions ('''NAV ALT''')&lt;br /&gt;
*'''AIDS''': Navigation Aids - Select steering bug to heading, Nav (Route Manager) Mode ('''NAV MODE''') or Tacan Mode ('''TACN MODE'''); switch Tacan power.&lt;br /&gt;
*'''NIS''': NATO Identification Systems - not yet functional&lt;br /&gt;
*'''INT''': Interrogator - select interrogator on or standby ('''INT SBY/ON'''), select interrogation mode (available modes are Modes 1, 2, 3A, 4A and S, plus Mode C.&lt;br /&gt;
*'''XPDR''': Transponder - select transponder on or standby ('''XPDR SBY/ON'''), select modes to on or standby, enter codes for Modes 1 &amp;amp; 3A ('''1/3A CODE''')&lt;br /&gt;
*'''XMIT''': Transmitters - switch aircraft radio systems between normal and silent modes for stealth operations.&lt;br /&gt;
*'''RAD1''': Radio 1 - Channel and function select; select Radio 1 as active radio ('''RAD1 ACTV/MON''')&lt;br /&gt;
*'''RAD2''': Radio 2 - Channel and function select; select Radio 2 as active radio ('''RAD2 ACTV/MON''')&lt;br /&gt;
*'''DAS''': Defensive Aids Subsystem&lt;br /&gt;
*'''MISC''': Miscellaneous Functions&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
=== Nav Aids ===&lt;br /&gt;
Navigational assistance is provided by the Navigation Computer, guiding the pilot along a heading, route or beam using information from the two primary navigation systems, [[Route Manager]] (NAV) and [[TACAN]]. Course information is displayed on the HUD, ASI and MFHDDs, as well as commanding the autopilot when engaged in track mode. The course to steer is indicated by the steering bug, an incomplete circle located on the HUD heading ribbon. If the required course is beyond the scope of the ribbon, the bug will park indicating the direction in which to steer. The bug can be hidden by pressing the BUG OFF softkey in the AIDS subsystem; it will reappear when either navigation system is selected.&lt;br /&gt;
&lt;br /&gt;
Control of navigational aids is through the AIDS subsystem page on the MDEF. Switching between NAV and TACAN modes is controlled by pressing NAV MODE or TACN MODE; the selected system is indicated by a lit button. &lt;br /&gt;
&lt;br /&gt;
'''NAV Mode''' directs the flight along a route of waypoints, which can be created, saved and loaded in Route Manager. Waypoints can contain altitude instructions as well as lateral fix information. NAV Mode functions are controlled through the NAV subsystem softkeys. When a route is active in Route Manager, next waypoint information (Waypoint ID, bearing, rang and time-to-target) is displayed in the lower left section of the HUD.&lt;br /&gt;
&lt;br /&gt;
'''TACN Mode''' directs the flight towards a TACAN or VORTAC station, or another aircraft equipped to transmit TACAN. TACAN functions are controlled through the AIDS subsystem softkeys. When the TACAN transceiver is active, the TACAN channel is displayed on the lower right section of the HUD; additional information (TACAN station ID, bearing and distance) is displayed when the selected TACAN station is in range.&lt;br /&gt;
&lt;br /&gt;
=== Autopilot ===&lt;br /&gt;
Autopilot modes are selected using the keys located at the top of the MDEF. There are two lateral and two vertical modes, three advanced modes and an autothrottle. Any active autopilot mode is indicated by a lit AP button; clicking this button cancels the lateral and vertical modes. The autothrottle is activated and deactivated using the AT button, which is lit when the autothrottle is operating.&lt;br /&gt;
==== Lateral Modes ====&lt;br /&gt;
There are two principal lateral modes, Heading ('''HDG''') and Track ('''TRK'''), selectable on the MDEF. Heading mode directs the aircraft on a set magnetic heading. Track Mode directs the aircraft according to the instructions of the navigation computer.&lt;br /&gt;
==== Vertical Modes ====&lt;br /&gt;
==== Advanced Modes ====&lt;br /&gt;
Autoclimb ('''CLM''') automatically gains altitude at the most efficient climb rate to the set altitude. Auto Attack ('''ATK''') flies automatically in pursuit of another aircraft, selected by the targeting computer. ''These modes are not yet functional''&lt;br /&gt;
&lt;br /&gt;
== Radar ==&lt;br /&gt;
=== CAPTOR ===&lt;br /&gt;
=== Transponder ===&lt;br /&gt;
=== Interrogator ===&lt;br /&gt;
&lt;br /&gt;
== Communications ==&lt;br /&gt;
The Typhoon has two VHF radios, Radio 1 and Radio 2, which are managed by the '''Communications and Audio Management Unit (CAMU)''' and operated via the MDEF and MIDS panels. There are ten channels available: Ch1 and Ch2 are preset to the two FGCom global frequencies, Ch 3 - Ch 8 can be user preset (data is stored in the Data/channels.xml file), and there are two manual frequency channels, M1 and M2, settable in the Typhoon RadioComms dialog. The radio controls support the optional [[User:Tuxklok|dual FGCom configuration]], where two channels can be monitored and one selected as active for transmission. If not installed, only RAD1 is available for use.&lt;br /&gt;
&lt;br /&gt;
Channel information is displayed on the COMM page of the MIDS display, and the pilot can scroll through channels and select the active radio using the MIDS softkeys. Direct channel selection can be made using the RAD1 and RAD2 pages of the MDEF. The channel list can be viewed on any HDD on the FREQ page, and selected channels are also shown on the MIDS HOME page.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Flight_Manual&amp;diff=37063</id>
		<title>Eurofighter Typhoon: Flight Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Flight_Manual&amp;diff=37063"/>
		<updated>2011-11-13T05:13:44Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Acknowledgements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This document is a work in progress. We aim to produce a concise guide to flying the Eurofighter Typhoon and operating its systems. Keep checking back - as things are added to the aircraft, so they'll be documented here - we hope to make these updates in a timely manner, ideally when new versions of the aircraft are released.&lt;br /&gt;
&lt;br /&gt;
'''Please note that some versions of the aircraft are not currently undergoing development, owing to limitations within earlier versions of FlightGear, and functions described in this document may not exist or work as described. To make the most use of the aircraft's newest features, please use the latest versions of both FlightGear and the Typhoon'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The [[Eurofighter Typhoon]] is an agile, multirole combat aircraft designed upon relaxed stability principles.&lt;br /&gt;
&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
Eurofighter Typhoon for FlightGear was developed by Maverick Alex, DFaber, Almursi, Algernon, Aster and other contributors.&lt;br /&gt;
This document initialised by --[[User:Algernon|Algernon]] 16:28, 28 June 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Develop &amp;amp; Customise ===&lt;br /&gt;
See [[Eurofighter Typhoon: Development Documentation]]&lt;br /&gt;
&lt;br /&gt;
== Flight Controls ==&lt;br /&gt;
The aircraft is controlled via stick, throttle and rudder pedals, whose motions are processed by the Flight Control System and appropriate signals are passed to the flight control surfaces, the canards, flaperons and rudder. &lt;br /&gt;
&lt;br /&gt;
=== Flight Control System ===&lt;br /&gt;
&lt;br /&gt;
The FCS can be bypassed, but this is not recommended under normal flight conditions. &lt;br /&gt;
&lt;br /&gt;
== Avionics ==&lt;br /&gt;
===Head Up Display===&lt;br /&gt;
===Multi-Fuction Head Down Displays===&lt;br /&gt;
===Manual Data Entry Facility===&lt;br /&gt;
The MDEF is located on the left glareshield, above and left of the left-hand MFHDD. It consists of a bank of Autopilot Keys (diagonal and top-right, and SubSystem Keys. The 12 keys on the left select the desired page to be displayed on the 12 softkeys on the right, through which the navigation, defensive and communications equipment is programmed and controlled. Available pages are:&lt;br /&gt;
*'''MIDS''': Multi-function Information Display System - select MIDS page&lt;br /&gt;
*'''NAV''': Navgiation Subsystem - Access Route Manager ('''RTE MGR'''), adjust route, lock altitude hold to Route Manager altitude instructions ('''NAV ALT''')&lt;br /&gt;
*'''AIDS''': Navigation Aids - Select steering bug to heading, Nav (Route Manager) Mode ('''NAV MODE''') or Tacan Mode ('''TACN MODE'''); switch Tacan power.&lt;br /&gt;
*'''NIS''': NATO Identification Systems - not yet functional&lt;br /&gt;
*'''INT''': Interrogator - select interrogator on or standby ('''INT SBY/ON'''), select interrogation mode (available modes are Modes 1, 2, 3A, 4A and S, plus Mode C.&lt;br /&gt;
*'''XPDR''': Transponder - select transponder on or standby ('''XPDR SBY/ON'''), select modes to on or standby, enter codes for Modes 1 &amp;amp; 3A ('''1/3A CODE''')&lt;br /&gt;
*'''XMIT''': Transmitters - switch aircraft radio systems between normal and silent modes for stealth operations.&lt;br /&gt;
*'''RAD1''': Radio 1 - Channel and function select; select Radio 1 as active radio ('''RAD1 ACTV/MON''')&lt;br /&gt;
*'''RAD2''': Radio 2 - Channel and function select; select Radio 2 as active radio ('''RAD2 ACTV/MON''')&lt;br /&gt;
*'''DAS''': Defensive Aids Subsystem&lt;br /&gt;
*'''MISC''': Miscellaneous Functions&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
=== Nav Aids ===&lt;br /&gt;
Navigational assistance is provided by the Navigation Computer, guiding the pilot along a heading, route or beam using information from the two primary navigation systems, [[Route Manager]] (NAV) and [[TACAN]]. Course information is displayed on the HUD, ASI and MFHDDs, as well as commanding the autopilot when engaged in track mode. The course to steer is indicated by the steering bug, an incomplete circle located on the HUD heading ribbon. If the required course is beyond the scope of the ribbon, the bug will park indicating the direction in which to steer. The bug can be hidden by pressing the BUG OFF softkey in the AIDS subsystem; it will reappear when either navigation system is selected.&lt;br /&gt;
&lt;br /&gt;
Control of navigational aids is through the AIDS subsystem page on the MDEF. Switching between NAV and TACAN modes is controlled by pressing NAV MODE or TACN MODE; the selected system is indicated by a lit button. &lt;br /&gt;
&lt;br /&gt;
'''NAV Mode''' directs the flight along a route of waypoints, which can be created, saved and loaded in Route Manager. Waypoints can contain altitude instructions as well as lateral fix information. NAV Mode functions are controlled through the NAV subsystem softkeys. When a route is active in Route Manager, next waypoint information (Waypoint ID, bearing, rang and time-to-target) is displayed in the lower left section of the HUD.&lt;br /&gt;
&lt;br /&gt;
'''TACN Mode''' directs the flight towards a TACAN or VORTAC station, or another aircraft equipped to transmit TACAN. TACAN functions are controlled through the AIDS subsystem softkeys. When the TACAN transceiver is active, the TACAN channel is displayed on the lower right section of the HUD; additional information (TACAN station ID, bearing and distance) is displayed when the selected TACAN station is in range.&lt;br /&gt;
&lt;br /&gt;
=== Autopilot ===&lt;br /&gt;
Autopilot modes are selected using the keys located at the top of the MDEF. There are two lateral and two vertical modes, three advanced modes and an autothrottle. Any active autopilot mode is indicated by a lit AP button; clicking this button cancels the lateral and vertical modes. The autothrottle is activated and deactivated using the AT button, which is lit when the autothrottle is operating.&lt;br /&gt;
==== Lateral Modes ====&lt;br /&gt;
There are two principal lateral modes, Heading ('''HDG''') and Track ('''TRK'''), selectable on the MDEF. Heading mode directs the aircraft on a set magnetic heading. Track Mode directs the aircraft according to the instructions of the navigation computer.&lt;br /&gt;
==== Vertical Modes ====&lt;br /&gt;
==== Advanced Modes ====&lt;br /&gt;
Autoclimb ('''CLM''') automatically gains altitude at the most efficient climb rate to the set altitude. Auto Attack ('''ATK''') flies automatically in pursuit of another aircraft, selected by the targeting computer. ''These modes are not yet functional''&lt;br /&gt;
&lt;br /&gt;
== Radar ==&lt;br /&gt;
=== CAPTOR ===&lt;br /&gt;
=== Transponder ===&lt;br /&gt;
=== Interrogator ===&lt;br /&gt;
&lt;br /&gt;
== Communications ==&lt;br /&gt;
The Typhoon has two VHF radios, Radio 1 and Radio 2, which are managed by the '''Communications and Audio Management Unit (CAMU)''' and operated via the MDEF and MIDS panels. There are ten channels available: Ch1 and Ch2 are preset to the two FGCom global frequencies, Ch 3 - Ch 8 can be user preset (data is stored in the Data/channels.xml file), and there are two manual frequency channels, M1 and M2, settable in the Typhoon RadioComms dialog. The radio controls support the optional [[User:Tuxklok|dual FGCom configuration]], where two channels can be monitored and one selected as active for transmission. If not installed, only RAD1 is available for use.&lt;br /&gt;
&lt;br /&gt;
Channel information is displayed on the COMM page of the MIDS display, and the pilot can scroll through channels and select the active radio using the MIDS softkeys. Direct channel selection can be made using the RAD1 and RAD2 pages of the MDEF. The channel list can be viewed on any HDD on the FREQ page, and selected channels are also shown on the MIDS HOME page.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Flight_Manual&amp;diff=37062</id>
		<title>Eurofighter Typhoon: Flight Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Flight_Manual&amp;diff=37062"/>
		<updated>2011-11-13T05:04:05Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Manual Data Entry Facility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This document is a work in progress. We aim to produce a concise guide to flying the Eurofighter Typhoon and operating its systems. Keep checking back - as things are added to the aircraft, so they'll be documented here - we hope to make these updates in a timely manner, ideally when new versions of the aircraft are released.&lt;br /&gt;
&lt;br /&gt;
'''Please note that some versions of the aircraft are not currently undergoing development, owing to limitations within earlier versions of FlightGear, and functions described in this document may not exist or work as described. To make the most use of the aircraft's newest features, please use the latest versions of both FlightGear and the Typhoon'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The [[Eurofighter Typhoon]] is an agile, multirole combat aircraft designed upon relaxed stability principles.&lt;br /&gt;
&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
Eurofighter Typhoon for FlightGear was developed by Maverick Alex, DFaber, Almursi, Algernon and other contributors.&lt;br /&gt;
This document initialised by --[[User:Algernon|Algernon]] 16:28, 28 June 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Develop &amp;amp; Customise ===&lt;br /&gt;
See [[Eurofighter Typhoon: Development Documentation]]&lt;br /&gt;
&lt;br /&gt;
== Flight Controls ==&lt;br /&gt;
The aircraft is controlled via stick, throttle and rudder pedals, whose motions are processed by the Flight Control System and appropriate signals are passed to the flight control surfaces, the canards, flaperons and rudder. &lt;br /&gt;
&lt;br /&gt;
=== Flight Control System ===&lt;br /&gt;
&lt;br /&gt;
The FCS can be bypassed, but this is not recommended under normal flight conditions. &lt;br /&gt;
&lt;br /&gt;
== Avionics ==&lt;br /&gt;
===Head Up Display===&lt;br /&gt;
===Multi-Fuction Head Down Displays===&lt;br /&gt;
===Manual Data Entry Facility===&lt;br /&gt;
The MDEF is located on the left glareshield, above and left of the left-hand MFHDD. It consists of a bank of Autopilot Keys (diagonal and top-right, and SubSystem Keys. The 12 keys on the left select the desired page to be displayed on the 12 softkeys on the right, through which the navigation, defensive and communications equipment is programmed and controlled. Available pages are:&lt;br /&gt;
*'''MIDS''': Multi-function Information Display System - select MIDS page&lt;br /&gt;
*'''NAV''': Navgiation Subsystem - Access Route Manager ('''RTE MGR'''), adjust route, lock altitude hold to Route Manager altitude instructions ('''NAV ALT''')&lt;br /&gt;
*'''AIDS''': Navigation Aids - Select steering bug to heading, Nav (Route Manager) Mode ('''NAV MODE''') or Tacan Mode ('''TACN MODE'''); switch Tacan power.&lt;br /&gt;
*'''NIS''': NATO Identification Systems - not yet functional&lt;br /&gt;
*'''INT''': Interrogator - select interrogator on or standby ('''INT SBY/ON'''), select interrogation mode (available modes are Modes 1, 2, 3A, 4A and S, plus Mode C.&lt;br /&gt;
*'''XPDR''': Transponder - select transponder on or standby ('''XPDR SBY/ON'''), select modes to on or standby, enter codes for Modes 1 &amp;amp; 3A ('''1/3A CODE''')&lt;br /&gt;
*'''XMIT''': Transmitters - switch aircraft radio systems between normal and silent modes for stealth operations.&lt;br /&gt;
*'''RAD1''': Radio 1 - Channel and function select; select Radio 1 as active radio ('''RAD1 ACTV/MON''')&lt;br /&gt;
*'''RAD2''': Radio 2 - Channel and function select; select Radio 2 as active radio ('''RAD2 ACTV/MON''')&lt;br /&gt;
*'''DAS''': Defensive Aids Subsystem&lt;br /&gt;
*'''MISC''': Miscellaneous Functions&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
=== Nav Aids ===&lt;br /&gt;
Navigational assistance is provided by the Navigation Computer, guiding the pilot along a heading, route or beam using information from the two primary navigation systems, [[Route Manager]] (NAV) and [[TACAN]]. Course information is displayed on the HUD, ASI and MFHDDs, as well as commanding the autopilot when engaged in track mode. The course to steer is indicated by the steering bug, an incomplete circle located on the HUD heading ribbon. If the required course is beyond the scope of the ribbon, the bug will park indicating the direction in which to steer. The bug can be hidden by pressing the BUG OFF softkey in the AIDS subsystem; it will reappear when either navigation system is selected.&lt;br /&gt;
&lt;br /&gt;
Control of navigational aids is through the AIDS subsystem page on the MDEF. Switching between NAV and TACAN modes is controlled by pressing NAV MODE or TACN MODE; the selected system is indicated by a lit button. &lt;br /&gt;
&lt;br /&gt;
'''NAV Mode''' directs the flight along a route of waypoints, which can be created, saved and loaded in Route Manager. Waypoints can contain altitude instructions as well as lateral fix information. NAV Mode functions are controlled through the NAV subsystem softkeys. When a route is active in Route Manager, next waypoint information (Waypoint ID, bearing, rang and time-to-target) is displayed in the lower left section of the HUD.&lt;br /&gt;
&lt;br /&gt;
'''TACN Mode''' directs the flight towards a TACAN or VORTAC station, or another aircraft equipped to transmit TACAN. TACAN functions are controlled through the AIDS subsystem softkeys. When the TACAN transceiver is active, the TACAN channel is displayed on the lower right section of the HUD; additional information (TACAN station ID, bearing and distance) is displayed when the selected TACAN station is in range.&lt;br /&gt;
&lt;br /&gt;
=== Autopilot ===&lt;br /&gt;
Autopilot modes are selected using the keys located at the top of the MDEF. There are two lateral and two vertical modes, three advanced modes and an autothrottle. Any active autopilot mode is indicated by a lit AP button; clicking this button cancels the lateral and vertical modes. The autothrottle is activated and deactivated using the AT button, which is lit when the autothrottle is operating.&lt;br /&gt;
==== Lateral Modes ====&lt;br /&gt;
There are two principal lateral modes, Heading ('''HDG''') and Track ('''TRK'''), selectable on the MDEF. Heading mode directs the aircraft on a set magnetic heading. Track Mode directs the aircraft according to the instructions of the navigation computer.&lt;br /&gt;
==== Vertical Modes ====&lt;br /&gt;
==== Advanced Modes ====&lt;br /&gt;
Autoclimb ('''CLM''') automatically gains altitude at the most efficient climb rate to the set altitude. Auto Attack ('''ATK''') flies automatically in pursuit of another aircraft, selected by the targeting computer. ''These modes are not yet functional''&lt;br /&gt;
&lt;br /&gt;
== Radar ==&lt;br /&gt;
=== CAPTOR ===&lt;br /&gt;
=== Transponder ===&lt;br /&gt;
=== Interrogator ===&lt;br /&gt;
&lt;br /&gt;
== Communications ==&lt;br /&gt;
The Typhoon has two VHF radios, Radio 1 and Radio 2, which are managed by the '''Communications and Audio Management Unit (CAMU)''' and operated via the MDEF and MIDS panels. There are ten channels available: Ch1 and Ch2 are preset to the two FGCom global frequencies, Ch 3 - Ch 8 can be user preset (data is stored in the Data/channels.xml file), and there are two manual frequency channels, M1 and M2, settable in the Typhoon RadioComms dialog. The radio controls support the optional [[User:Tuxklok|dual FGCom configuration]], where two channels can be monitored and one selected as active for transmission. If not installed, only RAD1 is available for use.&lt;br /&gt;
&lt;br /&gt;
Channel information is displayed on the COMM page of the MIDS display, and the pilot can scroll through channels and select the active radio using the MIDS softkeys. Direct channel selection can be made using the RAD1 and RAD2 pages of the MDEF. The channel list can be viewed on any HDD on the FREQ page, and selected channels are also shown on the MIDS HOME page.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Flight_Manual&amp;diff=37061</id>
		<title>Eurofighter Typhoon: Flight Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Eurofighter_Typhoon:_Flight_Manual&amp;diff=37061"/>
		<updated>2011-11-13T05:01:50Z</updated>

		<summary type="html">&lt;p&gt;Algernon: /* Communications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This document is a work in progress. We aim to produce a concise guide to flying the Eurofighter Typhoon and operating its systems. Keep checking back - as things are added to the aircraft, so they'll be documented here - we hope to make these updates in a timely manner, ideally when new versions of the aircraft are released.&lt;br /&gt;
&lt;br /&gt;
'''Please note that some versions of the aircraft are not currently undergoing development, owing to limitations within earlier versions of FlightGear, and functions described in this document may not exist or work as described. To make the most use of the aircraft's newest features, please use the latest versions of both FlightGear and the Typhoon'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The [[Eurofighter Typhoon]] is an agile, multirole combat aircraft designed upon relaxed stability principles.&lt;br /&gt;
&lt;br /&gt;
=== Acknowledgements ===&lt;br /&gt;
Eurofighter Typhoon for FlightGear was developed by Maverick Alex, DFaber, Almursi, Algernon and other contributors.&lt;br /&gt;
This document initialised by --[[User:Algernon|Algernon]] 16:28, 28 June 2011 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Develop &amp;amp; Customise ===&lt;br /&gt;
See [[Eurofighter Typhoon: Development Documentation]]&lt;br /&gt;
&lt;br /&gt;
== Flight Controls ==&lt;br /&gt;
The aircraft is controlled via stick, throttle and rudder pedals, whose motions are processed by the Flight Control System and appropriate signals are passed to the flight control surfaces, the canards, flaperons and rudder. &lt;br /&gt;
&lt;br /&gt;
=== Flight Control System ===&lt;br /&gt;
&lt;br /&gt;
The FCS can be bypassed, but this is not recommended under normal flight conditions. &lt;br /&gt;
&lt;br /&gt;
== Avionics ==&lt;br /&gt;
===Head Up Display===&lt;br /&gt;
===Multi-Fuction Head Down Displays===&lt;br /&gt;
===Manual Data Entry Facility===&lt;br /&gt;
The MDEF is located on the left glareshield, above and left of the left-hand MFHDD. It consists of a bank of Autopilot Keys (diagonal and top-right, and SubSystem Keys. The 12 keys on the left select the desired page to be displayed on the 12 softkeys on the right, through which the navigation, defensive and communications equipment is programmed and controlled. Available pages are:&lt;br /&gt;
*'''MIDS''': Multi-function Information Display System - not yet functional&lt;br /&gt;
*'''NAV''': Navgiation Subsystem - Access Route Manager ('''RTE MGR'''), adjust route, lock altitude hold to Route Manager altitude instructions ('''NAV ALT''')&lt;br /&gt;
*'''AIDS''': Navigation Aids - Select steering bug to heading, Nav (Route Manager) Mode ('''NAV MODE''') or Tacan Mode ('''TACN MODE'''); switch Tacan power.&lt;br /&gt;
*'''NIS''': NATO Identification Systems - not yet functional&lt;br /&gt;
*'''INT''': Interrogator - select interrogator on or standby ('''INT SBY/ON'''), select interrogation mode (available modes are Modes 1, 2, 3A, 4A and S, plus Mode C.&lt;br /&gt;
*'''XPDR''': Transponder - select transponder on or standby ('''XPDR SBY/ON'''), select modes to on or standby, enter codes for Modes 1 &amp;amp; 3A ('''1/3A CODE''')&lt;br /&gt;
*'''XMIT''': Transmitters - switch aircraft radio systems between normal and silent modes for stealth operations.&lt;br /&gt;
*'''RAD1''': Radio 1 - Channel and function select; select Radio 1 as active radio ('''RAD1 ACTV/MON''')&lt;br /&gt;
*'''RAD2''': Radio 2 - Channel and function select; select Radio 2 as active radio ('''RAD2 ACTV/MON''')&lt;br /&gt;
*'''DAS''': Defensive Aids Subsystem&lt;br /&gt;
*'''MISC''': Miscellaneous Functions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
=== Nav Aids ===&lt;br /&gt;
Navigational assistance is provided by the Navigation Computer, guiding the pilot along a heading, route or beam using information from the two primary navigation systems, [[Route Manager]] (NAV) and [[TACAN]]. Course information is displayed on the HUD, ASI and MFHDDs, as well as commanding the autopilot when engaged in track mode. The course to steer is indicated by the steering bug, an incomplete circle located on the HUD heading ribbon. If the required course is beyond the scope of the ribbon, the bug will park indicating the direction in which to steer. The bug can be hidden by pressing the BUG OFF softkey in the AIDS subsystem; it will reappear when either navigation system is selected.&lt;br /&gt;
&lt;br /&gt;
Control of navigational aids is through the AIDS subsystem page on the MDEF. Switching between NAV and TACAN modes is controlled by pressing NAV MODE or TACN MODE; the selected system is indicated by a lit button. &lt;br /&gt;
&lt;br /&gt;
'''NAV Mode''' directs the flight along a route of waypoints, which can be created, saved and loaded in Route Manager. Waypoints can contain altitude instructions as well as lateral fix information. NAV Mode functions are controlled through the NAV subsystem softkeys. When a route is active in Route Manager, next waypoint information (Waypoint ID, bearing, rang and time-to-target) is displayed in the lower left section of the HUD.&lt;br /&gt;
&lt;br /&gt;
'''TACN Mode''' directs the flight towards a TACAN or VORTAC station, or another aircraft equipped to transmit TACAN. TACAN functions are controlled through the AIDS subsystem softkeys. When the TACAN transceiver is active, the TACAN channel is displayed on the lower right section of the HUD; additional information (TACAN station ID, bearing and distance) is displayed when the selected TACAN station is in range.&lt;br /&gt;
&lt;br /&gt;
=== Autopilot ===&lt;br /&gt;
Autopilot modes are selected using the keys located at the top of the MDEF. There are two lateral and two vertical modes, three advanced modes and an autothrottle. Any active autopilot mode is indicated by a lit AP button; clicking this button cancels the lateral and vertical modes. The autothrottle is activated and deactivated using the AT button, which is lit when the autothrottle is operating.&lt;br /&gt;
==== Lateral Modes ====&lt;br /&gt;
There are two principal lateral modes, Heading ('''HDG''') and Track ('''TRK'''), selectable on the MDEF. Heading mode directs the aircraft on a set magnetic heading. Track Mode directs the aircraft according to the instructions of the navigation computer.&lt;br /&gt;
==== Vertical Modes ====&lt;br /&gt;
==== Advanced Modes ====&lt;br /&gt;
Autoclimb ('''CLM''') automatically gains altitude at the most efficient climb rate to the set altitude. Auto Attack ('''ATK''') flies automatically in pursuit of another aircraft, selected by the targeting computer. ''These modes are not yet functional''&lt;br /&gt;
&lt;br /&gt;
== Radar ==&lt;br /&gt;
=== CAPTOR ===&lt;br /&gt;
=== Transponder ===&lt;br /&gt;
=== Interrogator ===&lt;br /&gt;
&lt;br /&gt;
== Communications ==&lt;br /&gt;
The Typhoon has two VHF radios, Radio 1 and Radio 2, which are managed by the '''Communications and Audio Management Unit (CAMU)''' and operated via the MDEF and MIDS panels. There are ten channels available: Ch1 and Ch2 are preset to the two FGCom global frequencies, Ch 3 - Ch 8 can be user preset (data is stored in the Data/channels.xml file), and there are two manual frequency channels, M1 and M2, settable in the Typhoon RadioComms dialog. The radio controls support the optional [[User:Tuxklok|dual FGCom configuration]], where two channels can be monitored and one selected as active for transmission. If not installed, only RAD1 is available for use.&lt;br /&gt;
&lt;br /&gt;
Channel information is displayed on the COMM page of the MIDS display, and the pilot can scroll through channels and select the active radio using the MIDS softkeys. Direct channel selection can be made using the RAD1 and RAD2 pages of the MDEF. The channel list can be viewed on any HDD on the FREQ page, and selected channels are also shown on the MIDS HOME page.&lt;/div&gt;</summary>
		<author><name>Algernon</name></author>
	</entry>
</feed>