<?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=Adrian</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=Adrian"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Adrian"/>
	<updated>2026-04-08T23:25:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto_talk:Coding_a_simple_Nasal_Framework&amp;diff=74212</id>
		<title>Howto talk:Coding a simple Nasal Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto_talk:Coding_a_simple_Nasal_Framework&amp;diff=74212"/>
		<updated>2014-07-24T20:40:55Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Todo: Considerations for creating Canvas Widgets ==&lt;br /&gt;
&lt;br /&gt;
* benefits of creating widgets&lt;br /&gt;
* supporting multiple instances&lt;br /&gt;
* creating multiple windows of a widget&lt;br /&gt;
* creating a window/dialog with multiple widgets (tabs?)&lt;br /&gt;
* all Canvas-based instruments/MFDs should support GUI-based viewing, without requiring a cockpit/aircraft-even if it's just for testing/development purposes (profiling)&lt;br /&gt;
* every widget must support rendering to a customizable context/canvas, so that recursion is fully supported, i.e. dialogs showing instruments with GUI elements&lt;br /&gt;
&lt;br /&gt;
--[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 14:25, 29 June 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I feel that the whole subject of creating a Nasal framework could become an exercise in futility, and should even be discouraged in favour of writing code within the core framework. Nasal simply does not have the suitable debugging tools which could make it a big winner. A large piece of code could easily become unmaintainable in case the original developer left. Case in point: local weather.&lt;br /&gt;
::[[User:Adrian|Adrian]] ([[User talk:Adrian|talk]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: I guess it's a matter of having to make concessions - in an ideal world, you'd be correct obviously. But given the state of affairs, manpower is not where core development is - but where fgdata contributions happen. The degree of Canvas-based developments and related novelties has meanwhile exceeded any related core developments (except for Canvas itself), including stuff like the hard-coded [[Map]] dialog, wxradar, agradar, groundradar, kln89  etc - and that was foreseeable even within a few months after the most basic drawing primitives were added and supported. &lt;br /&gt;
&lt;br /&gt;
::: But what's been happening is a lot of unprecedented &amp;quot;glass&amp;quot; development in various areas, that was basically completely chaotic, disorganized - without any collaboration and coordination taking place. The few cases where this was not the case, we spent a ton of time doing behind-the-scenes networking. But otherwise, we're seeing a number of efforts, with very desirable features, being developed by people who have no clue/interest about collaborating properly, in order not to write redundant -and usually even incompatible/conflicting- code. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: However, I am not sure if you've even played with Canvas recently, or if you're aware of the underlying C++ code, and the deprecated code that is made obsolete by Canvas. &lt;br /&gt;
::: But it is obvious that without any further involvement/direction from our side, all this fgdata development is going to continue obviously, without any significant degree of collaboration/coordination going on.&lt;br /&gt;
::: So coming up with '''frameworks''' in scripting space is the only sane, and scaleable, way to deal with this - absent some major change in the FlightGear development philosophy. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: Also, what you say is not quite spot-on when it comes to &amp;quot;the core framework&amp;quot; though: What we'll certainly need to explore increasingly is extending the Canvas system itself through extended/added elements and primitives - and that's been happening already, Tom has added a huge number of novelties recently - but we cannot be expected to port all existing code that's being written by dozens of aircraft developers and other Canvas adopters. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: Thus, localizing and encapsulating functionality in terms of having dedicated frameworks is the right thing to do - because it allows us to define boundaries, while phasing out/re-implementing more native hooks over time, i.e. more optimized code. &lt;br /&gt;
::: But as long as people come up with their own code doing all sorts of things in a heavily redundant fashion, they cannot benefit from such optimizations automatically, because all THEIR existing code will need to be manually ported - which is exactly the whole point of having a framework-centric development model. &lt;br /&gt;
::: If you've been following my Canvas related postings on the forum, you may have seen that I started exploring re-implementing '''certain''' parts of [[MapStructure]] in C++ space, which is kinda promising - and all code/aircraft/dialogs using the MapStructure '''framework''' (such as Gijs' ND) will automatically benefit from those changes if they're merged, because the key functionality is well-encapsulated there.&lt;br /&gt;
::: Which also kinda challenges your whole point about maintenance issues, because frameworks are typically just 500-1000 lines, while separating front-end and back-en code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: Like Thorsten suggested himself, LW is far from being a good example here - despite your point being totally valid (I kept saying that for years ...), but the main challenge there is not &amp;quot;framework-centric&amp;quot; development, but the whole development methodology adopted there - Thorsten recently mentioned that he thinks it could be re-architected within 4-6 weeks by a team of skilled Nasal coders - so we've had the same discussion behind the scenes. But Thorsten also said that the main issue is that he wasn't familiar with certain programming techniques when he started LW, so it very much &amp;quot;evolved&amp;quot; over time, and wasn't refactored in any major way - and Thorsten kept saying that &amp;quot;it works&amp;quot;, so there's not much motivation to do something about it, which I kinda share - I am also more interested in other things, despite having tried cleaning up a few things there a while ago.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: Overall, when it comes to major Nasal-based contributions like [[Advanced Weather]] (or [[Bombable]]) the main challenge is not the implementation language, but rather the underlying expertise, i.e. maths, physics, AI, combat etc - the language part is trivial, and good and maintainable Nasal code can definitely be written, just look at any code committed by AndersG, TheTom or Philosopher - the real challenge is that there's no major barrier to entry when it comes to writing Nasal code, and we're seeing a lot of mediocre code committed, often in terms of performance - but almost certainly in structural terms, i.e. stuff like code organization/reuse and refactoring/generalization. Which kinda comes with the territory, i.e. $FG_ROOT/Nasal not being reviewed/maintained any longer. Nasal is not the reason for this, it's just making the underlying problem more prominent, because we 1) have a lot of fgdata-level coding going on and 2) because we're not reviewing/refactoring stuff properly.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: Like I said, the core Canvas system will certainly be extended and refined over time, but there's no sane way for us to deal with existing code, unless people adopt a framework-centric development model that would allow us to encapsulate and localize functionality - once that is the case, refining frameworks, re-implementing them and even phasing them out is straightforward - but as long as people continue with the current &amp;quot;method&amp;quot;, we'll end up with a huge mess with Nasal code using different parts of the Canvas system is hugely inconsistent ways, without having anybody willing to do the ugly refactoring/porting work to use more recent Canvas APIs. And frankly, I am not going to volunteer cleaning up all that mess - it's like ThorstenB once said about [[Advanced Weather]]: it's simply too much to handle for a single person. Then again, we cannot expect non-coders to adopt and honor important concepts like &amp;quot;code reuse&amp;quot;, &amp;quot;constant refactoring&amp;quot; and &amp;quot;encapsulation&amp;quot; without also providing working examples. As could be seen in the last few days, doing that actually scales very well - just look at all of omega95's recent postings in the canvas forum.  &lt;br /&gt;
&lt;br /&gt;
::: Extending the Canvas system is happening, and will continue to happen, but it's a process that will take months, and probably even years - until then, it makes sense to encapsulate common functionality in terms of frameworks, and use that come up with requirements for the Canvas system itself. Otherwise, we'd need a time machine ...&lt;br /&gt;
&lt;br /&gt;
::: Now, debugging and profiling Nasal code is a different issue - and one that's being worked on, Philosopher has created several very promising patches, some of which we've been running to test/profile and debug code - none of this has been merged yet, but it's on the way.--[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 20:00, 24 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I certainly don't disagree that recent Canvas efforts have become a lot more organised and this has affected the quality of the code in a good way, but the fact still remains that there are too few useful tools to aid Nasal development, while there certainly are a ton for C++ frameworks. Also, while C++ is less forgiving than Nasal, it is also easier to maintain and debug using established techniques. I feel that the project would benefit a lot by encouraging existing contributors to move up to the core code base and have access to a plethora of data that otherwise would be wrapped in layers which don't contribute much to speed and ease of debugging. Of course, Nasal has an important place, but I think developing a large platform strictly within Nasal means asking for trouble in the future. &lt;br /&gt;
:: [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 20:40, 24 July 2014 (UTC)&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto_talk:Coding_a_simple_Nasal_Framework&amp;diff=74210</id>
		<title>Howto talk:Coding a simple Nasal Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto_talk:Coding_a_simple_Nasal_Framework&amp;diff=74210"/>
		<updated>2014-07-24T18:55:52Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Todo: Considerations for creating Canvas Widgets ==&lt;br /&gt;
&lt;br /&gt;
* benefits of creating widgets&lt;br /&gt;
* supporting multiple instances&lt;br /&gt;
* creating multiple windows of a widget&lt;br /&gt;
* creating a window/dialog with multiple widgets (tabs?)&lt;br /&gt;
* all Canvas-based instruments/MFDs should support GUI-based viewing, without requiring a cockpit/aircraft-even if it's just for testing/development purposes (profiling)&lt;br /&gt;
* every widget must support rendering to a customizable context/canvas, so that recursion is fully supported, i.e. dialogs showing instruments with GUI elements&lt;br /&gt;
&lt;br /&gt;
--[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 14:25, 29 June 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I feel that the whole subject of creating a Nasal framework could become an exercise in futility, and should even be discouraged in favour of writing code within the core framework. Nasal simply does not have the suitable debugging tools which could make it a big winner. A large piece of code could easily become unmaintainable in case the original developer left. Case in point: local weather.&lt;br /&gt;
::[[User:Adrian|Adrian]] ([[User talk:Adrian|talk]])&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User_talk:Hooray/SandBox/FlightGear_Performance_and_Run-Time_Footprint_Debate&amp;diff=73955</id>
		<title>User talk:Hooray/SandBox/FlightGear Performance and Run-Time Footprint Debate</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User_talk:Hooray/SandBox/FlightGear_Performance_and_Run-Time_Footprint_Debate&amp;diff=73955"/>
		<updated>2014-07-09T22:05:11Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* MEANING &amp;amp; PURPOSE ???????? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==MEANING &amp;amp; PURPOSE ????????==&lt;br /&gt;
&lt;br /&gt;
What's the meaning, and purpose of this page? Personal issues should be dealt in private and not brought in public, even more so not on a wiki, which is supposed to be neutral and informative.&lt;br /&gt;
&lt;br /&gt;
This new exercise in futility is just the latest in a long run of late from a couple of contributors to the wiki, could we please just stop this now????&lt;br /&gt;
&lt;br /&gt;
Op-eds and debates have their place on blogs, and other such personal channels, not on (official) wikis which are supposed to supplement documentation, and carry the clout of apparently being an 'official statement' from the project.&lt;br /&gt;
&lt;br /&gt;
[[User:I4dnf|I4dnf]] ([[User talk:I4dnf|talk]]) 11:14, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It does make a lot of sense to present, and summarize, the main arguments and issues that were raised by several contributors. As you may have noticed, compared to the original thread, this is already somewhat &amp;quot;redacted&amp;quot;, i.e. minus several emotional statements and tirades. Thus, the purpose is quite simply to get to the meat of the discussion, i.e. the main issues and the suggestions presented by several people, so that people can make up their own mind without having to waste 30 minutes going through pointless debates. This being -quite obviously- a collection of quotes, it is far from appearing &amp;quot;official&amp;quot;. &lt;br /&gt;
: If any points made here seem &amp;quot;authoritative&amp;quot; it's just because of the exact people who made them, i.e. Thorsten's rendering/GLSL/effects statements obviously carry more weight than mine for example. We've had other heated debates about FlightGear issues, no  matter if it's lack of usability, lack of a good GUI, lack of a 2D rendering API, lack of combat support etc - in varying forms, many of these were addressed over time, in response to debates like these. &lt;br /&gt;
: You don't have to agree here obviously - but frankly, I also don't agree with things you have done and said in the past, as you know. Like Thorsten so eloquently stated on the forum: We all have different ways of dealing with such situations. The wiki  has proven to be a fairly usable platform to present such issues in a less emotional fashion. It is for a reason that we've started locking emotional threads after posting a link to a wiki article presenting the main issues (e.g. [[FlightGear_and_old_Hardware]]): it helps us waste less time. As for your suggestion to deal with personal issues privately: I couldn't agree more with you (and would have loved to see you applying the same standards to your own disagreements with fellow contributors!), but this is '''not''' an attempt to continue the original debate or just make my own point here, it's a summary of all the main arguments and proposals. Those among us who're interested in understanding and fixing such issues, and prevent such debates, actually require some way to gather, evaluate &amp;amp; analyze '''all''' standpoints. This has worked well enough for other heated debates, so I don't see why it shouldn't work this time. --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 14:35, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: First of all let's get things straight: I have never redacted or quoted  someone out of context, I have never presented my personal opinions as the &amp;quot;project's official stance&amp;quot;. I have merely used my right given by the EU law, on my work, so please spear me the &amp;quot;you've done same/worse&amp;quot; discourse, as that's not going to stick.&lt;br /&gt;
:: Btw, no, bullying other people and shutting their mouth under the guise of &amp;quot;project stance&amp;quot; does not mean the debate was solved. It just means that your louder shouts and your abuse of clout has subdued their comments. Censoring the forums and selectively deleting disgruntled posts and/or locking threads and using the ban-hammer threat doesn't mean that either.&lt;br /&gt;
:: I'm merely saying that I think personal opinions should be clearly marked as such (no, looking at the history of edits on one page doesn't mean that it's marked as personal opinion), and that I think they have no place on the wiki in the first place. And that I think you're abusing these quotes to paint an image that suits, at most, your personal idea of this project and its development (like it happened in all those other cases that worked oh so well).&lt;br /&gt;
:: [[User:I4dnf|I4dnf]] ([[User talk:I4dnf|talk]]) 15:14, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: There's no &amp;quot;out-of-context&amp;quot; quoting taking place here, if surrounding context is omitted, the corresponding header makes the point pretty obvious. Besides, that's exactly the point of quoting people, while still linking back to the original posting/discussion: so that statements can be looked up and checked. &lt;br /&gt;
&lt;br /&gt;
::: I've  never said that you've done &amp;quot;something worse&amp;quot; - I just said that your applying good standards, but apparently not in the scope of your own work, contributions and discussions/disagreements. &lt;br /&gt;
::: And not sure what you are referring to WRT to &amp;quot;EU law&amp;quot;. The GPL, and the FSF, are pretty clear about &amp;quot;retracting&amp;quot; contributions-once you release work under the GPL, you are granting others all the freedoms that you are taking by &amp;quot;reserving the right&amp;quot; to retract your work at any later time. See the FSF/GPL FAQs. Their point is quite specifically that individuals acting that way are harming the project, which is exactly which more established projects like the kernel or gcc, require people to sign contracts to prevent such havoc from happening.&lt;br /&gt;
&lt;br /&gt;
::: I totally agree with your point on censorship, but people aren't being censored, it's just that debates that would otherwise need moderation (which IS taking up time) are reviewed and locked if necessary, while providing a less heated platform (i.e. the wiki) to present different views. &lt;br /&gt;
::: Personal opinions are what they're, and they can be easily identified as such by looking at the link, which is part of each quote. The edit history doesn't contain any such information obviously. &lt;br /&gt;
&lt;br /&gt;
::: There's no &amp;quot;abusive quoting&amp;quot; taking place, it's a summary of points raised by fellow users and contributors-not even very selective, I added quite a lot of stuff that I disagree/d with personally. &lt;br /&gt;
::: But then again, I also once disagreed with the idea to implement a weather system in scripting space, or to implement a 2D rendering API on top of the property tree, or to add scripted AI. And I once ripped out Nasal and replaced it with a different scripting engine - that was several years ago, these days, it is obvious that I was wrong in many of these instances-and I've tried to support several of such efforts/occasions, despite my original reluctance/disagreement. &lt;br /&gt;
&lt;br /&gt;
::: Which kinda goes to show, that the wiki, and summarized discussions there, does work exceptionally well - in fact, much better so than the majority of heated debates on the devel list or the forum. You may not agree with me, or the discussions and features I was involved in, but there clearly is a benefit here. The good thing about contributing to a project like this one is that people don't necessarily have to agree to still collaborate, or even just contribute to an unrelated area. &lt;br /&gt;
&lt;br /&gt;
::: At the end of the day, it really doesn't matter. However, people who are using their track record of participation and contributions as leverage to &amp;quot;veto&amp;quot; and make their points, and threaten to possibly pull certain contributions, is '''always''' going to be harmful and cause havoc. It is with great relief that I find this an uncommon behavior among people involved in more critical parts of the project, like the core code, or we would really be in a pathetic situation.&lt;br /&gt;
&lt;br /&gt;
::: Don't get me wrong: I disagreed with Thorsten on several counts, but that's been previously the case already, and while it may take a while for the dust to settle, I have no doubt that we'll collaborate again, and probably exchange lots of messages behind the scenes. &lt;br /&gt;
&lt;br /&gt;
::: Case in point, we've gone through this at least a dozen times before and just went on a few weeks later, so I have no reason to believe that this will be any different. I have the utmost of respect for Thorsten, not just for his work, but also for him as an individual, because he's really trying to improve things on a &amp;quot;meta&amp;quot; level, not just in terms of &amp;quot;features&amp;quot; but also project coordination and collaboration-often enough acting as an interface between core developers, contributors and end-users. Obviously, this can be very daunting and frustrating. But no matter how strongly the two of us may have agreed on technical terms, he's never refused to answer any questions that I've had, and neither have I. --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 16:14, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: First of all, I don't see the reason to duplicate forum posts here, when a simple link might be enough.&lt;br /&gt;
&lt;br /&gt;
:::: Second, whatever interpretation of GPL you choose, it doesn't supersede the copyright law. While GPL is just a license, the author of whatever work is involved still has the ultimate right to change the license or stop distributing his own work. I also might say that GPL is not the best license for works other than code, since there are various licenses better suited to artistic contributions. Don't know why Flighgear chose GPL for other works than code. As a Flightgear contributor, I see the subject of the IAR80 as a non-issue. I4dnf can do anything with his contribution, even if it's unorthodox by our standards.&lt;br /&gt;
&lt;br /&gt;
:::: [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 20:39, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: 1) it's so that people don't have to go through dozens (or even hundreds) of postings/tirades to find the main points made by fellow contributors, as previously stated.&lt;br /&gt;
:: 2) I am not a lawyer, and even if you and I were both lawyers, our &amp;quot;opinions&amp;quot; would be irrelevant still. Which is why I kept referring to the FSF/GPL FAQs explicitly, which supports the main statement here, but which also states pretty clearly why the FSF expects written statements from its contributors (e.g. GCC) [http://www.gnu.org/licenses/gpl-faq.html#CanDeveloperThirdParty] [http://www.cnet.com/news/revoking-open-source/].&lt;br /&gt;
:: 3) There's no point in debating this here and now-no matter the outcome, it won't have '''any''' effect whatsoever, for the simple reason that 1) FlightGear traditionally doesn't consult lawyers or pursue such debates, and 2) that FlightGear as such is '''not''' a legal entity at all - we've seen good contributions removed for questionable reasons before - and probably will see that happen again. This was never a matter of 'copyright' or a developer deciding to stop distributing his own work, it was exactly about asking for previously GPL'ed contributions to be revoked by others, which isn't just implicit right like &amp;quot;copyright&amp;quot;. Please refer to the FSF/GPL FAQs for details though-they're available in a plethora of languages. --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 20:57, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: You might be confusing the GPL issue with the bit about the FSF requiring people to surrender copyright to them, in order to defend in court. Either way, copyright is recognised in almost every country, while GPL may not have stood a trial. Hence my statements above. I don't think we need to discuss this further here, but references to the IAR will bring this up inevitably ;-)&lt;br /&gt;
&lt;br /&gt;
::: [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 22:05, 9 July 2014 (UTC)&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User_talk:Hooray/SandBox/FlightGear_Performance_and_Run-Time_Footprint_Debate&amp;diff=73946</id>
		<title>User talk:Hooray/SandBox/FlightGear Performance and Run-Time Footprint Debate</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User_talk:Hooray/SandBox/FlightGear_Performance_and_Run-Time_Footprint_Debate&amp;diff=73946"/>
		<updated>2014-07-09T20:39:26Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* MEANING &amp;amp; PURPOSE ???????? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==MEANING &amp;amp; PURPOSE ????????==&lt;br /&gt;
&lt;br /&gt;
What's the meaning, and purpose of this page? Personal issues should be dealt in private and not brought in public, even more so not on a wiki, which is supposed to be neutral and informative.&lt;br /&gt;
&lt;br /&gt;
This new exercise in futility is just the latest in a long run of late from a couple of contributors to the wiki, could we please just stop this now????&lt;br /&gt;
&lt;br /&gt;
Op-eds and debates have their place on blogs, and other such personal channels, not on (official) wikis which are supposed to supplement documentation, and carry the clout of apparently being an 'official statement' from the project.&lt;br /&gt;
&lt;br /&gt;
[[User:I4dnf|I4dnf]] ([[User talk:I4dnf|talk]]) 11:14, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It does make a lot of sense to present, and summarize, the main arguments and issues that were raised by several contributors. As you may have noticed, compared to the original thread, this is already somewhat &amp;quot;redacted&amp;quot;, i.e. minus several emotional statements and tirades. Thus, the purpose is quite simply to get to the meat of the discussion, i.e. the main issues and the suggestions presented by several people, so that people can make up their own mind without having to waste 30 minutes going through pointless debates. This being -quite obviously- a collection of quotes, it is far from appearing &amp;quot;official&amp;quot;. &lt;br /&gt;
: If any points made here seem &amp;quot;authoritative&amp;quot; it's just because of the exact people who made them, i.e. Thorsten's rendering/GLSL/effects statements obviously carry more weight than mine for example. We've had other heated debates about FlightGear issues, no  matter if it's lack of usability, lack of a good GUI, lack of a 2D rendering API, lack of combat support etc - in varying forms, many of these were addressed over time, in response to debates like these. &lt;br /&gt;
: You don't have to agree here obviously - but frankly, I also don't agree with things you have done and said in the past, as you know. Like Thorsten so eloquently stated on the forum: We all have different ways of dealing with such situations. The wiki  has proven to be a fairly usable platform to present such issues in a less emotional fashion. It is for a reason that we've started locking emotional threads after posting a link to a wiki article presenting the main issues (e.g. [[FlightGear_and_old_Hardware]]): it helps us waste less time. As for your suggestion to deal with personal issues privately: I couldn't agree more with you (and would have loved to see you applying the same standards to your own disagreements with fellow contributors!), but this is '''not''' an attempt to continue the original debate or just make my own point here, it's a summary of all the main arguments and proposals. Those among us who're interested in understanding and fixing such issues, and prevent such debates, actually require some way to gather, evaluate &amp;amp; analyze '''all''' standpoints. This has worked well enough for other heated debates, so I don't see why it shouldn't work this time. --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 14:35, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: First of all let's get things straight: I have never redacted or quoted  someone out of context, I have never presented my personal opinions as the &amp;quot;project's official stance&amp;quot;. I have merely used my right given by the EU law, on my work, so please spear me the &amp;quot;you've done same/worse&amp;quot; discourse, as that's not going to stick.&lt;br /&gt;
:: Btw, no, bullying other people and shutting their mouth under the guise of &amp;quot;project stance&amp;quot; does not mean the debate was solved. It just means that your louder shouts and your abuse of clout has subdued their comments. Censoring the forums and selectively deleting disgruntled posts and/or locking threads and using the ban-hammer threat doesn't mean that either.&lt;br /&gt;
:: I'm merely saying that I think personal opinions should be clearly marked as such (no, looking at the history of edits on one page doesn't mean that it's marked as personal opinion), and that I think they have no place on the wiki in the first place. And that I think you're abusing these quotes to paint an image that suits, at most, your personal idea of this project and its development (like it happened in all those other cases that worked oh so well).&lt;br /&gt;
:: [[User:I4dnf|I4dnf]] ([[User talk:I4dnf|talk]]) 15:14, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: There's no &amp;quot;out-of-context&amp;quot; quoting taking place here, if surrounding context is omitted, the corresponding header makes the point pretty obvious. Besides, that's exactly the point of quoting people, while still linking back to the original posting/discussion: so that statements can be looked up and checked. &lt;br /&gt;
&lt;br /&gt;
::: I've  never said that you've done &amp;quot;something worse&amp;quot; - I just said that your applying good standards, but apparently not in the scope of your own work, contributions and discussions/disagreements. &lt;br /&gt;
::: And not sure what you are referring to WRT to &amp;quot;EU law&amp;quot;. The GPL, and the FSF, are pretty clear about &amp;quot;retracting&amp;quot; contributions-once you release work under the GPL, you are granting others all the freedoms that you are taking by &amp;quot;reserving the right&amp;quot; to retract your work at any later time. See the FSF/GPL FAQs. Their point is quite specifically that individuals acting that way are harming the project, which is exactly which more established projects like the kernel or gcc, require people to sign contracts to prevent such havoc from happening.&lt;br /&gt;
&lt;br /&gt;
::: I totally agree with your point on censorship, but people aren't being censored, it's just that debates that would otherwise need moderation (which IS taking up time) are reviewed and locked if necessary, while providing a less heated platform (i.e. the wiki) to present different views. &lt;br /&gt;
::: Personal opinions are what they're, and they can be easily identified as such by looking at the link, which is part of each quote. The edit history doesn't contain any such information obviously. &lt;br /&gt;
&lt;br /&gt;
::: There's no &amp;quot;abusive quoting&amp;quot; taking place, it's a summary of points raised by fellow users and contributors-not even very selective, I added quite a lot of stuff that I disagree/d with personally. &lt;br /&gt;
::: But then again, I also once disagreed with the idea to implement a weather system in scripting space, or to implement a 2D rendering API on top of the property tree, or to add scripted AI. And I once ripped out Nasal and replaced it with a different scripting engine - that was several years ago, these days, it is obvious that I was wrong in many of these instances-and I've tried to support several of such efforts/occasions, despite my original reluctance/disagreement. &lt;br /&gt;
&lt;br /&gt;
::: Which kinda goes to show, that the wiki, and summarized discussions there, does work exceptionally well - in fact, much better so than the majority of heated debates on the devel list or the forum. You may not agree with me, or the discussions and features I was involved in, but there clearly is a benefit here. The good thing about contributing to a project like this one is that people don't necessarily have to agree to still collaborate, or even just contribute to an unrelated area. &lt;br /&gt;
&lt;br /&gt;
::: At the end of the day, it really doesn't matter. However, people who are using their track record of participation and contributions as leverage to &amp;quot;veto&amp;quot; and make their points, and threaten to possibly pull certain contributions, is '''always''' going to be harmful and cause havoc. It is with great relief that I find this an uncommon behavior among people involved in more critical parts of the project, like the core code, or we would really be in a pathetic situation.&lt;br /&gt;
&lt;br /&gt;
::: Don't get me wrong: I disagreed with Thorsten on several counts, but that's been previously the case already, and while it may take a while for the dust to settle, I have no doubt that we'll collaborate again, and probably exchange lots of messages behind the scenes. &lt;br /&gt;
&lt;br /&gt;
::: Case in point, we've gone through this at least a dozen times before and just went on a few weeks later, so I have no reason to believe that this will be any different. I have the utmost of respect for Thorsten, not just for his work, but also for him as an individual, because he's really trying to improve things on a &amp;quot;meta&amp;quot; level, not just in terms of &amp;quot;features&amp;quot; but also project coordination and collaboration-often enough acting as an interface between core developers, contributors and end-users. Obviously, this can be very daunting and frustrating. But no matter how strongly the two of us may have agreed on technical terms, he's never refused to answer any questions that I've had, and neither have I. --[[User:Hooray|Hooray]] ([[User talk:Hooray|talk]]) 16:14, 9 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: First of all, I don't see the reason to duplicate forum posts here, when a simple link might be enough.&lt;br /&gt;
&lt;br /&gt;
:::: Second, whatever interpretation of GPL you choose, it doesn't supersede the copyright law. While GPL is just a license, the author of whatever work is involved still has the ultimate right to change the license or stop distributing his own work. I also might say that GPL is not the best license for works other than code, since there are various licenses better suited to artistic contributions. Don't know why Flighgear chose GPL for other works than code. As a Flightgear contributor, I see the subject of the IAR80 as a non-issue. I4dnf can do anything with his contribution, even if it's unorthodox by our standards.&lt;br /&gt;
&lt;br /&gt;
:::: [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 20:39, 9 July 2014 (UTC)&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Linux_software_audio_mixing_with_FlightGear&amp;diff=69938</id>
		<title>Talk:Linux software audio mixing with FlightGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Linux_software_audio_mixing_with_FlightGear&amp;diff=69938"/>
		<updated>2014-04-23T17:31:12Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Mention Pulseaudio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Title Pages should be concise/short = &lt;br /&gt;
A good example of a title page being too long or too descriptive, &amp;quot;Linux software audio mixing with FlightGear&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It maybe better to rename this page from &amp;quot;Linux software audio mixing with FlightGear&amp;quot; to something more concise.  Some options follow:&lt;br /&gt;
FlightGear Linux ALSA&lt;br /&gt;
FlightGear Linux ALSA Audio&lt;br /&gt;
Linux ALSA (As FlightGear can be easily assumed from the domain name and owner of these Wiki pages.)&lt;br /&gt;
&lt;br /&gt;
I just realized, some Linux users might still be using OSS instead of ALSA.  Or since OSS is in such a minority, a simple subsection under an Linux ALSA page title might be OK.  However here's some further suggestions to encompass everybody,&lt;br /&gt;
&lt;br /&gt;
FlightGear Linux Audio/Sound&lt;br /&gt;
Linux Audio/Sound&lt;br /&gt;
Linux Sound&lt;br /&gt;
Linux Audio&lt;br /&gt;
FlightGear Linux Audio&lt;br /&gt;
FlightGear Linux Sound&lt;br /&gt;
&lt;br /&gt;
(The word &amp;quot;audio&amp;quot; was first used in 1907 and usually pertains to the audible or human hearing range of the sound spectrum.  The word &amp;quot;sound&amp;quot; has been in use since the 13th Century, but details pretty much anything.)&lt;br /&gt;
&lt;br /&gt;
From my memory, the process of renaming a Wiki page is basically creating a new page with the appropriate title and copying the data from the old page to the new page.  And than further opting the old page for deletion. (ie. [[Wikipedia:Moving a page]]) --[[User:Rogerx|Rogerx]] ([[User talk:Rogerx|talk]]) 21:14, 22 April 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
= Suggest Moving/Copying All Linux Audio Related Material (from FGCom) to Here? =&lt;br /&gt;
I'd suggest moving or copying all Linux related material from the other (many other) FGCom Wiki pages to here.  There seems to be quite a few FGCom Wiki pages, with some unstructured data.  Maybe just moving all Linux related material from the FGCom wiki pages will help minimize their problems there, while making sure all Linux (ALSA) audio related stuff remains here? --[[User:Rogerx|Rogerx]] ([[User talk:Rogerx|talk]]) 21:14, 22 April 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Mention Pulseaudio ==&lt;br /&gt;
This article is pretty outdated. These days almost everything including Debian stable runs Pulseaudio which makes the point of the article moot.  [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 17:30, 23 April 2014 (UTC)&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Linux_software_audio_mixing_with_FlightGear&amp;diff=69937</id>
		<title>Talk:Linux software audio mixing with FlightGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Linux_software_audio_mixing_with_FlightGear&amp;diff=69937"/>
		<updated>2014-04-23T17:30:43Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Title Pages should be concise/short = &lt;br /&gt;
A good example of a title page being too long or too descriptive, &amp;quot;Linux software audio mixing with FlightGear&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It maybe better to rename this page from &amp;quot;Linux software audio mixing with FlightGear&amp;quot; to something more concise.  Some options follow:&lt;br /&gt;
FlightGear Linux ALSA&lt;br /&gt;
FlightGear Linux ALSA Audio&lt;br /&gt;
Linux ALSA (As FlightGear can be easily assumed from the domain name and owner of these Wiki pages.)&lt;br /&gt;
&lt;br /&gt;
I just realized, some Linux users might still be using OSS instead of ALSA.  Or since OSS is in such a minority, a simple subsection under an Linux ALSA page title might be OK.  However here's some further suggestions to encompass everybody,&lt;br /&gt;
&lt;br /&gt;
FlightGear Linux Audio/Sound&lt;br /&gt;
Linux Audio/Sound&lt;br /&gt;
Linux Sound&lt;br /&gt;
Linux Audio&lt;br /&gt;
FlightGear Linux Audio&lt;br /&gt;
FlightGear Linux Sound&lt;br /&gt;
&lt;br /&gt;
(The word &amp;quot;audio&amp;quot; was first used in 1907 and usually pertains to the audible or human hearing range of the sound spectrum.  The word &amp;quot;sound&amp;quot; has been in use since the 13th Century, but details pretty much anything.)&lt;br /&gt;
&lt;br /&gt;
From my memory, the process of renaming a Wiki page is basically creating a new page with the appropriate title and copying the data from the old page to the new page.  And than further opting the old page for deletion. (ie. [[Wikipedia:Moving a page]]) --[[User:Rogerx|Rogerx]] ([[User talk:Rogerx|talk]]) 21:14, 22 April 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
= Suggest Moving/Copying All Linux Audio Related Material (from FGCom) to Here? =&lt;br /&gt;
I'd suggest moving or copying all Linux related material from the other (many other) FGCom Wiki pages to here.  There seems to be quite a few FGCom Wiki pages, with some unstructured data.  Maybe just moving all Linux related material from the FGCom wiki pages will help minimize their problems there, while making sure all Linux (ALSA) audio related stuff remains here? --[[User:Rogerx|Rogerx]] ([[User talk:Rogerx|talk]]) 21:14, 22 April 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Mention Pulseaudio ==&lt;br /&gt;
This article is pretty updated. These days almost everything including Debian stable runs Pulseaudio which makes the point of the article moot.  [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 17:30, 23 April 2014 (UTC)&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68867</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68867"/>
		<updated>2014-03-19T04:48:28Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html] {{Done}}&lt;br /&gt;
* rebase against git HEAD (next) {{Done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{Pending}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{progressbar|20}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{progressbar|10}}&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{progressbar|40}}&lt;br /&gt;
** get rid of magic constants, use &amp;lt;strike&amp;gt;variables&amp;lt;/strike&amp;gt; enums [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Done}}&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{progressbar|10}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{progressbar|80}}&lt;br /&gt;
* support different propagation models by coming up with an interface: {{Done}}&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html] {{Done}}&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html] {{Pending}}&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68799</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68799"/>
		<updated>2014-03-16T09:09:40Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html] {{Done}}&lt;br /&gt;
* rebase against git HEAD (next) {{Done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{progressbar|50}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{progressbar|20}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{progressbar|10}}&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{progressbar|40}}&lt;br /&gt;
** get rid of magic constants, use &amp;lt;strike&amp;gt;variables&amp;lt;/strike&amp;gt; enums [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Done}}&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{progressbar|10}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{progressbar|50}}&lt;br /&gt;
* support different propagation models by coming up with an interface: {{Done}}&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html] {{Done}}&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html] {{Done}}&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68756</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68756"/>
		<updated>2014-03-14T04:34:13Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html] {{Done}}&lt;br /&gt;
* rebase against git HEAD (next) {{Done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{progressbar|10}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{progressbar|20}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{progressbar|10}}&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{progressbar|20}}&lt;br /&gt;
** get rid of magic constants, use &amp;lt;strike&amp;gt;variables&amp;lt;/strike&amp;gt; enums [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Done}}&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{progressbar|10}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{progressbar|40}}&lt;br /&gt;
* support different propagation models by coming up with an interface: {{Done}}&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html] {{Done}}&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html] {{Done}}&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68740</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68740"/>
		<updated>2014-03-13T05:53:42Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html] {{Done}}&lt;br /&gt;
* rebase against git HEAD (next) {{Done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{Not done}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{Not done}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Fixed: won't change}}&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of magic constants, use &amp;lt;strike&amp;gt;variables&amp;lt;/strike&amp;gt; enums [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Done}}&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{Not done}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{Not done}}&lt;br /&gt;
* support different propagation models by coming up with an interface: {{Done}}&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html] {{Done}}&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html] {{Done}}&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68403</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68403"/>
		<updated>2014-02-28T01:32:47Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* There is some support for proprietary data, such as Google Maps or sattelite images&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The newest ITWOM v3.0 model has been GPL'ed by John A. Magliacane, and is used inside the application&lt;br /&gt;
* QRadioPredict is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* QRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view time filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation. The plot and map can be zoomed in or out, and the plotting distance is easily configurable via the interface&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QRadioPredict has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict requires GDAL in order to work with terrain shapefiles. More information can be found on the project page at [http://qradiopredict.sourceforge.net/ QRadioPredict]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68402</id>
		<title>How the FlightGear project works</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68402"/>
		<updated>2014-02-28T01:26:40Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Mods and forks (built on top of FG) */ oups, spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As FlightGear is becoming increasingly popular each year, we've been seeing a number of controversial discussions regarding the inner workings of the FlightGear project recently. Meanwhile, it is a well-known fact among long-time contributors that the FlightGear development model may seem irritating at first and it is known to cause some confusions or even frustration among new contributors who may already have experience contributing in other flight sim communities or even other OSS software. &lt;br /&gt;
So here's a collection of responses intended to clarify why things are set up this way. People interested in getting involved in the FlightGear community and contributing in one way or another, are encouraged to read this and understand how FlightGear has been able to be successful despite the fact that it does not have any commercial backing or a really structured development model.&lt;br /&gt;
&lt;br /&gt;
A more succinct version of this article can be found at: http://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=15267 (which serves as a really good introduction, people interested in more details, may still want to look at the text below).&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
As FlightGear is getting increasingly popular, we get to see new users coming to our forums and the mailing list every week. Many of them quite obviously very much interested in contributing to FlightGear in one way or another and getting involved in our community.&lt;br /&gt;
&lt;br /&gt;
This is something that all of us appreciate, because this is important to keep the project alive and kicking, so we do truly appreciate and welcome new community members, because this is an important part of enabling FlightGear to grow even more popular. &lt;br /&gt;
&lt;br /&gt;
There's such a huge range of ways to get involved in FlightGear, so that we truly appreciate everybody's skills. &lt;br /&gt;
&lt;br /&gt;
Please don't think that you cannot contribute to the project, because you cannot program or because you cannot design 3D models. Creating a flight simulator is a huge undertaking and there are many tasks which may seem less obvious to outsiders, such as helping maintain the wiki, moderating the forum, reporting spam, triaging the bug tracker, reviewing bug reports, helping fellow users and so on.&lt;br /&gt;
&lt;br /&gt;
== Irritations ==&lt;br /&gt;
However, sometimes we get to see some irritations among new community members and more seasoned members, because people may have certain expectations and assumptions on contributing to FlightGear. This has frequently caused some heated discussions, sometimes even flame wars on both, the devel mailing list and the forums.&lt;br /&gt;
&lt;br /&gt;
Apparently, this occurs frequently when dealing with people who already have experience developing software or contributing to open source software, be it professionally or as a hobby.&lt;br /&gt;
&lt;br /&gt;
Over the last couple of years, such discussions have taken place increasingly and they are obviously eating up considerable resources, given that spare time is our most precious resource to contribute to the project.&lt;br /&gt;
&lt;br /&gt;
It seems, some people are trying to apply their own experiences and assumptions to FlightGear as a software development project, which is sometimes causing grief and anger because FlightGear seems so different from anything they may know already.&lt;br /&gt;
&lt;br /&gt;
The best approach when encountering such problems is to take a step back, evaluate the goals and the means available, and come back with solutions or valid proposals. Several developers have taken long breaks, then returned to contribute again many features.&lt;br /&gt;
&lt;br /&gt;
== Passion ==&lt;br /&gt;
Honestly, we are all part of this community because we appreciate some things about this open source flight sim named FlightGear. So we are always sorry whenever our tone becomes inappropriate or even harsh.&lt;br /&gt;
We sincerely believe that you can contribute in more meaningful ways than you may currently perceive, without just voicing criticism. Obviously, it really is important to get along with people, regardless of differences in opinions.&lt;br /&gt;
&lt;br /&gt;
== Welcome to the club ==&lt;br /&gt;
To tell the truth: Most of us have been in that situation at some point. To most of us, the way FlightGear works as a project has been somewhat irritating and confusing in the beginning. So, we may actually share your initial confusion, because most of us went through the same process at some point.&lt;br /&gt;
&lt;br /&gt;
Honestly, you could search the forum and mailing list archives and probably find heated responses posted by even the most seasoned contributors. Some of us may have a track record of thousands of postings now and may seem like fairly knowledgeable contributors , but this is just a result of having been part of the community for a number of years, despite the deficiencies that we may have perceived initially. Frequently, some of our very first posts were also just voicing criticism.&lt;br /&gt;
&lt;br /&gt;
It isn't even unlikely that new community members are bringing up long-term issues that have been annoying most of us for quite a while already. We are probably more aware of these issues and their implications than you are. But just saying that something is &amp;quot;broken&amp;quot; is simply not the way to affect the situation for the better. Some of us have tried and failed doing exactly that. To no avail.&lt;br /&gt;
&lt;br /&gt;
Like you can see now, we've changed our strategy: We are trying to act like we want others to act, we are trying to be the change we'd like to see.&lt;br /&gt;
&lt;br /&gt;
Really, your situation may not be any different than ours: We've all been there. You need to be patient and absorb what we're telling you. We have no doubt that you'll get along with most of us, especially if you can demonstrate that you are actually listening and absorbing the advice we are handing out and applying your new knowledge.&lt;br /&gt;
&lt;br /&gt;
So this is an attempt at explaining things in a non-heated fashion, so that we can point aspiring contributors to this article explaining some things which may not be directly obvious, but which we feel are important to understand why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2012), this is largely copied together from various flame wars that have taken place in the last 12 months, so the format still needs some work, and things may seem pretty inconsistent and roundabout in some places.&lt;br /&gt;
&lt;br /&gt;
== Proposing changes ==&lt;br /&gt;
This is not to say that things are set in stone, but the current development model is the result of a certain evolution, and it's exactly this what has enabled FlightGear to survive and grow for over a decade already, without relying on commercial backing, funding organizations or formal project management. &lt;br /&gt;
&lt;br /&gt;
So, we would like to ask you to keep these factors in mind when proposing changes and when voicing recommendations, and when discussing such issues with fellow community members, publicly or privately.&lt;br /&gt;
&lt;br /&gt;
It requires patience to work together and to get something useful out. Sometimes you just have to live with a problem, work around it, and talk to people for a long time. It takes time, but I've experienced that you can convince core developers that your particular project is important enough to warrant attention and support. Everyone's time is limited, and it's all volunteer work. For example: If you complain that shadows are absent, it will change nothing. What you need to do is convince people that shadows would make a huge difference - possibly even with a proof of concept code.&lt;br /&gt;
&lt;br /&gt;
== Ideas getting ignored or rejected ==&lt;br /&gt;
Let's be honest: Not every suggestion made in the forum or on the devel list is good. While no one deserves to be belittled, a fair share of suggestions deserve to be ignored (unless you feel you are entitled to 30 minutes time from, say, a 3d rendering specialist who explains to you in detail why your idea really doesn't work in non-technical terms). &lt;br /&gt;
&lt;br /&gt;
There are many questions asked where the answer can be found in the Wiki with a short search. There are suggestions being made which even on first glance are impossible in practice. It's not the developer's job to deal with these things - it's your job as a forum user to do so. And not every rejection needs to be taken as personal grievance carried around for the next years - sometimes one just has to allow for the possibility that one has been wrong.&lt;br /&gt;
&lt;br /&gt;
Often, it does require a certain amount of background knowledge to truly understand why a certain idea or feature cannot be implemented. New users, and even new developers are likely to lack this knowledge. You need to be somewhat familiar with the code bases involved in order to understand some things.&lt;br /&gt;
&lt;br /&gt;
Since I work on FlightGear, I have suggested a lot of things - about 10% of which have been reacted on. To give you a current example: I've noticed that models from Nasal load way slower than needed, and I've asked that someone looks into it. I have not expected that somebody immediately jumps on it and spends 10 hours of his time tracking what is going on and delivers a detailed report in non-technical terms later. It has taken a few months and posting several examples to convince people that what I see is real. Then somebody looked at it and traced it to the (non)-existence of the osg texture cache. Now, people are debating the pros and cons of activating the texture cache by default, because it might affect stability and memory usage in an unwanted way - and I don't know if it will eventually be there.&lt;br /&gt;
&lt;br /&gt;
I have no problem with that - neither with convincing people that my suggestion is worth looking into, nor with the fact that other issues I have not thought of need to be taken into account. But it seems a lot of people in the forum expect that because they suggest something, someone will take it very seriously and act quickly and are then disappointed when this isn't actually the case.&lt;br /&gt;
&lt;br /&gt;
Coming from the other side, having worked on a problem I often know that a particular thing suggested cannot be done easily. If I have the time, I can take 20 minutes to explain why. Sometimes I don't have the time, then I just write a small sentence indicating why it doesn't work. Probably then somebody feels ignored. Can't help it - if I'd try to take the time, my 3 year old daughter would feel ignored, and she needs my attention more.&lt;br /&gt;
&lt;br /&gt;
I just lack any sign from the user community that they're willing to accept that a suggestion or feedback can in fact be dismissed, and that a developer's time to explain why a suggestion cannot be followed is also not unlimited. I have no problem with the users providing 50% of an opinion where the project should go - as long as they don't expect that that opinion necessarily translates into a decision.&lt;br /&gt;
&lt;br /&gt;
Sometimes rejecting new ideas can be painful to contributors who had spent a considerable amount of time researching and implementing features. Some new ideas have been the seeds of a similar implementation by the more seasoned coders. In any case, it is always best to evaluate the pain/gain benefit, and to keep older solutions to problems rather than having a half-way semi-realistic solution. Ideas tend to get the proper recognition in time, if they are beneficial, or are quickly forgotten if they are not worthy. Keep in mind to do this for fun, and always attack the idea, not the person, to keep things calm.&lt;br /&gt;
&lt;br /&gt;
== Lack of feedback ==&lt;br /&gt;
Lack of feedback - same thing. Go out into the forum, download interesting addons, talk to the people who provide them, let them know what you think. If you want feedback for your own work, start by giving feedback to the work of others. That's how it works. And yes, lack of recognition is sometimes a problem. Basically, you have to do things because you want to, and you have to be enthusiastic enough to pull others along so that they can see and appreciate your vision of how things could be. Again, requires a lot of patience. I wish that many things here would be different. I wish people would collaborate on projects more often, instead of everyone developing his own pet project and half of them dying for lack of interest. But I've come to realize that it's not going to happen because I wish it to happen - things are only happening my way if I slowly work towards it, talk to people an unholy amount of time and try to convince them that I am serious and have a case. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And to people who have stated (rightly or wrongly) that they don't feel the core developers are active enough in the forums:&lt;br /&gt;
&lt;br /&gt;
When asking on the devel list why people keep the mailing list separate from the forum, the response I got was along the lines of 'We like to exchange information, and in the Forum we get to hear only noise - petty complaints, lazy questions and so on - so we stay where the information relevant for development flows'.&lt;br /&gt;
&lt;br /&gt;
So, it goes two ways (I have been saying this before, haven't I?) - the probability that people will listen to what you have to say increases if you can convince people that they take you seriously.&lt;br /&gt;
&lt;br /&gt;
When I started to write that I want to rewrite an integrated weather system, pretty much no one took me seriously because it's a large chunk of work and you need to know what you're doing, and, face it, there's a lot of noise being made about what people will do who drop it later after a week. After I had written a working demonstration, people started to believe that I know what I'm talking about. Sometimes that's what it takes.&lt;br /&gt;
&lt;br /&gt;
From the other perspective, I would do the same. If somebody tells me he's going to implement volume rendering for clouds, I'd simply say 'Go ahead, I don't think it can be done.' Once he demonstrates to me that it can be done, I'd be willing to work with him. That makes a lot of sense, because the amount of ideas that can be realized and have a person behind them who is willing to see it through is a tiny fraction of the amount of ideas being presented - so it pays to focus on those who have a shot at success.&lt;br /&gt;
&lt;br /&gt;
So, I'd like to see some appreciation for the fact that there is no a priori right to be taken seriously, no matter what you say, but that this is something you need to work on. I also think that if the forum would offer a lot of high-quality development related discussions then you'd see much more active core developers here.&lt;br /&gt;
&lt;br /&gt;
Sometimes, there is a rift between new people and older members, simply because the latter expect all things to go through the proper channels and procedures. Unfortunately, since these are hardly policy, some prior research on the best communication channels and the best people to talk to in person can be valuable and time saving.&lt;br /&gt;
&lt;br /&gt;
== Users vs. contributors ==&lt;br /&gt;
We have here two groups of persons (with blurry boundaries): The first group takes something for free, which is a flight sim which you download from servers for which someone probably pays real money. The second group gives something, which is their time to create the simulation.&lt;br /&gt;
&lt;br /&gt;
You'd expect in the real world that if I give you something for free, that this earns me your gratitude. But this is the internet - so instead of gratitude, you somehow assume that in addition to giving you something, I am also expected to care about what you want, and it disturbs you that I don't really care for people who take for free and ask for more, but that I care for those who take and are prepared to give in return.&lt;br /&gt;
&lt;br /&gt;
On the other hand, a 'user' in your concept of course is supposed to be entitled to not only acquire FlightGear, but also get support in the forum and should also have a voice ( in what is done for the project (by others), and for this he's expected to do what in return? Nothing.&lt;br /&gt;
&lt;br /&gt;
If it disturbs you that I don't share this sentiment, then so be it, but let me be very clear: I have every sympathy for people who come here and offer to return some (whatever small) contribution back for getting FlightGear. I get angry when I see their contributions rejected for opaque reasons, when I see disparaging comments made that this is 'merely modelling' or 'just Nasal', when I see someone being discouraged from honestly trying to contribute. I have also sympathy for people who take FlightGear, enjoy using it but don't want to contribute and still ask politely for some help in the Forum.&lt;br /&gt;
&lt;br /&gt;
I just have no sympathy for people who take, are not prepared to do any work, but feel entitled to say how others should do their job and issue demands for features, aircraft, documentation, whatever. You may call that elitism, I call that my sense of fairness.&lt;br /&gt;
&lt;br /&gt;
== Lack of Support and Backwards Compatibility ==&lt;br /&gt;
FlightGear is a volunteer effort and no one is paying several thousand dollars a year for software and related support each year. Since legacy support is expensive (IE. time/effort) one of the ways a project like FlightGear deals with this is to limit legacy support. If this were not the case then time/effort would be expended on legacy support that could be used for new features and bug fixes. Like most things there are trade offs involved. Which do you want - more advanced FlightGear and aircraft or better support for older versions? This is a common issue for open source software and most prefer to look forward rather than looking back.&lt;br /&gt;
&lt;br /&gt;
For JSBSim there been has incremental changes in almost every version of FlightGear. These changes did things like add features or change the way a specific feature acted. For example around FG 2.4 there where changes to the engine cooling code (to allow modelling of cooling systems with things like cowl flaps) and also to the nose/tail wheel steering code (to allow toggling between locked and swivelling steering wheels). Many aircraft are unaffected by these changes because they don't make use of the enhancements but some aircraft do use these enhancements. For example the JSBSim P-51D uses both of these features and it probably will not work correctly (IE. it will over heat/run cold or not have correct ground handling) if used with FG versions before 2.4. There is also the possibility that it will throw all kinds of error messages when used with an older version of FG but none of this has been tested at least by me. So it may be OK with a few missing features on 1.9.1 or it may fail totally. We simply do not know. If someone complains about the JSBSim P-51D not running correctly on FG 1.9.1 my reply is too bad you need to upgrade to 2.4 or later and get back to me if things aren't working after the upgrade. There may be other more recent features that other aircraft use/leverage that don't affect the P-51D so I think this is a significant issue.&lt;br /&gt;
&lt;br /&gt;
In addition, FlightGear itself has been a moving target with a constant stream of new features and enhancements some of which require changes to at least some aircraft.&lt;br /&gt;
&lt;br /&gt;
== Number of aircraft vs. quality of aircraft ==&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
One thing to consider when comparing real-world handling qualities versus simulated handling is the control devices. I use a Logitech Gamepad which is not ideal by any means, it serves my purposes and gives me acceptable handling capability. The biggest problem with it is the small throw of the sticks which makes them very touchy. Even if you have a full size control column, you lose a lot of fidelity due to the lack of control feedback as well as lack of &amp;quot;seat of your pants&amp;quot; feedback. Both the control throw and the feedback issues result in a great loss of fidelity which makes it impossible to control an aircraft in simulation anywhere near as well as the real thing. &lt;br /&gt;
&lt;br /&gt;
Taking the P-51 issue as an example; even if the FDM did closely emulate the real thing, the reaction time to correct for any divergent yaw on takeoff will be much slower than it would be in real life with more sensory cues. Once you do react, you can't react with the same accuracy as real life due to the lack of control feedback, so your inputs will tend to over correct the situation which in turn you will be slower to react to.&lt;br /&gt;
&lt;br /&gt;
This can obviously be corrected by making the FDMs less touchy than the real-world aircraft, but this then compromises reality. So it takes a bit of a balance.&lt;br /&gt;
First, let me say that there are HUGE fluctuations in the quality of FG flight dynamics models, and that I don't like all of them. This is why I specifically wrote which planes I use and asked which plane you've been flying. Some FDMs are pretty bad, but others (the Seneca-II for instance) are made by people who fly the real thing, yet others (the P-51D, the F-16) are done using a huge pile of available test data and have been tweaked literally for hundreds of hours to agree with the real performance and capabilities. It's these FDMs which I like and which I'm defending here.&lt;br /&gt;
&lt;br /&gt;
So, you ask why some posters are so enamoured with the FG FDMs. For once, because I know physics. When I do certain things, I know how the aerodynamics works out, and I expect to find that in the simulation. &lt;br /&gt;
&lt;br /&gt;
For two, I've been flying gliders for a while. I distinctly remember the feeling of making tiny not really conscious movements with the stick all the time to fly the thing. I want to have that experience reproduced by a flight sim, it's part of the feeling of immersion - and the top-end JSBSim models do that for me. Also, I want to _do_ something while flying, not just get my plane on rails and watch the scenery.&lt;br /&gt;
&lt;br /&gt;
Third, because I find it educational. I for instance happen to know that the F-104 Starfighter was pretty accident prone. Just 10 minutes flying around with the thing told me why - when the plane becomes unstable, what manoeuvres you can and can't do (I think the Starfighter is also one of these FDMs with plenty of real life experience used by the creator...). I find it interesting to explore how the SR-71 reaches Mach-3 and why it needs to do the funny 'dipsy' manoeuvre. I find it instructive to understand why one has to fly the Concorde by the book and how fuel consumption figures change if I don't. I want to understand how thrust vectoring can be used and how stable it is. I want to learn what's different about a helicopter. For all this, I need the real physics of flight simulated as faithfully as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the creator of several aircraft made for FlightGear including a heavily researched Velocity XL and an Edgley Optica, I can say the above observation is nonsense. Fly one of my planes and the controls won't do diddly under 30 knots unless a pilot's handbook or a pilot's report indicates they should. Even the worst flight models in the FlightGear world don't have fully effective controls while sitting still. As for inherent stability, my own efforts are easily trimmed at cruise speeds for relatively benign, hands-off flight to match the flight manual or pilot reports.&lt;br /&gt;
&lt;br /&gt;
Why are some so enamoured of FG flight models? I'll state what Thorsten wrote in another way. I'm not a licensed pilot, though I do have stick-time in several light planes. But I'll never fly in an Optica, and I'm very unlikely to ever fly in a Velocity or a Grumman Goose, and no sane airline is going to let me into the flight deck of an MD-80. By building these models, I can gain an understanding, an insight, and an experience with these aircraft that would otherwise be closed to me. I can know them in some ways that even a pilot might not know them. The closer the simulation matches the real aircraft, the closer my experience comes to that aircraft. I can't experience these planes unless they are correct in every detail that matters, and pursuing that correctness is a long journey, perhaps one without an end.&lt;br /&gt;
&lt;br /&gt;
Maybe I misunderstand the notion of options to make a plane harder or easier to fly. For me, the point is to simulate the aircraft. If the aircraft had functions or gadgets that facilitated making it harder or easier to fly, then fine, that's part of the simulation goal. But it's not the same as a game, where I can select EASY, NORMAL, HARD, or HURT ME PLENTY. There are many planes where someone like me has no business trying even the simulated version. And no real C172 or MD-80 has difficulty modes or configuration files.&lt;br /&gt;
&lt;br /&gt;
Are there &amp;quot;crappy&amp;quot; flight models in the FlightGear world? Sure. Plenty of them. Maybe most of them. But there are some darn nice ones, some made by pilots with hands-on experience, some with the feedback of pilots, and some by non-pilots using meticulous research. Many are simply nice modelling efforts, waiting for someone to come along and create a good flight model, or add systems simulation, or cockpit instruments, or some other contribution.&lt;br /&gt;
&lt;br /&gt;
In the MSFS world, the typical model is a commercial product, released as a complete and well-rounded package. In the FG world, few models are finished, complete efforts. Developers work on what they know and what interests them, and most are open to contribution from others. Few works are above improvement. The neat thing about the FlightGear environment isn't that it's free. It's that if you don't like some aspect, you're welcome to help refine it. You can learn to improve it yourself, or you can help by suggesting well-conceived, objective changes to the authors. Most will listen. And you just might learn something along the way that will surprise or enlighten you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By saying that users can easily tweak the FDM in FlightGear, I am not implying that the the flight models or the FG architecture are inherently defective. There are many FG aircraft with great FDMs, other are not so good. Those that aren't so good are usually because they are not completed as indicated by their production status. As with any software product in beta release, the users are free to provide feedback directly to the developer. As this is an open source project, that feedback is often in the from of contributing code/FDM enhancements directly to the author for incorporation into the model. With commercial flight sims, you are always seeing the polished product because they would not get away with selling an unpolished product. With FG we are not burdened by the need to make a profit or satisfy our customers. We ARE our customers so we only need to make ourselves happy 8) So with FG you get to see a preview in the form of a pre-production or alpha release. This gives the users an opportunity to provide feedback directly to the developers, and often this feedback can be incorporated into an updated version of the aircraft in a few days or less. This is not a remote possibility for a commercial sim. I think this is why those who use FG like it so much. We are not content to use something out of the box, we are far too picky!&lt;br /&gt;
&lt;br /&gt;
== Fictional Aircraft ==&lt;br /&gt;
FlightGear is developed by a community of volunteers from all over the world, we contribute in whatever way we see fit, if you disagree with the way FlightGear development is going, your best chance to affect it, is by starting contributing yourself. FlightGear could only progress so far without any commercial backing for over a decade, because of FlightGear contributors and their very passion for turning their own ideas into FlightGear features.&lt;br /&gt;
&lt;br /&gt;
FlightGear isn't only developed with a single role or purpose in mind, FlightGear is to be understood as a framework for developing new aviation related features, including fictional features. We have hundreds of &amp;quot;aircraft&amp;quot; and &amp;quot;vehicles&amp;quot; available in FlightGear, only a fraction of those are fictional, and most of the fictional ones are not even well-developed, you will surely be able to find other aircraft that you are interested in, see: http://www.flightgear.org/download/airc ... ilterable/&lt;br /&gt;
&lt;br /&gt;
So until you roll up your own sleeves, let's just appreciate the variety of aircraft and other features to be found in FlightGear, including the X-wing star fighter from Star Wars, Star Trek space shuttles and lots of other passionately developed 3D models, like the BlueBird for example&lt;br /&gt;
&lt;br /&gt;
FlightGear doesn't necessarily have a real &amp;quot;fictional side&amp;quot; - it's just that we all needed to get started somehow. Contributing a completely new aircraft is obviously difficult. Contributing to existing aircraft is useful, but it doesn't teach you all of the skills required to create an aircraft from scratch. So people who want to do a full aircraft, need to start with something simple and &amp;quot;fun&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So what new contributors often do, is creating &amp;quot;fun&amp;quot; vehicles to learn how FlightGear works.&lt;br /&gt;
&lt;br /&gt;
Aircraft like the ufo, ogeL, bluebird etc were usually created by people in their initial phase of becoming familiar with FG - for example, the ogeL was made by the same guy who ended up modelling the Seneca, one of our most-developed (and maintained!) GA aircraft in FlightGear: http://wiki.flightgear.org/Seneca&lt;br /&gt;
&lt;br /&gt;
s you can tell from looking at the wiki, the ogeL aircraft developer has not only become the developer and maintainer of the Seneca aircraft in FlightGear, but he also has become a FlightGear core developer writing C++ code and maintaining the autopilot system for example, and he also happens to be a CPL-IFR/ME rated pilot in real life, who owns the Seneca he modelled for FlightGear.&lt;br /&gt;
&lt;br /&gt;
Obviously, contributing to all these areas in FG takes time, a steep learning curve is an unfortunate but important part of it - rarely, do we see people who immediately start out with complex and well-developed aircraft, it's a process - and we all needed to get started at some point. Just because we contribute &amp;quot;playful&amp;quot; things to FG, doesn't necessarily mean that we are not interested in &amp;quot;realistic aviation&amp;quot; as you can see.&lt;br /&gt;
&lt;br /&gt;
You will notice that many long-term contributors actually have an aviation-related professional background, be it flying (commercial, private, ATPL), software development, maths, physics, GIS or whatever. Among the long-term contributors are people with PhDs, Masters, commercial pilot rating, PPL or retired military pilots, and even one test pilot...&lt;br /&gt;
Still, 3D modelling is a completely new skills, and needs to be learned from scratch - which applies especially to people who &amp;quot;only&amp;quot; have a real background in aviation, but not in computers and/or games.&lt;br /&gt;
&lt;br /&gt;
Creating the ogeL was obviously simple and fun, creating aircraft like the Seneca requires tons of skills, experience and expertise that you don't end up having &amp;quot;automatically&amp;quot;. And it requires tons of dedication and discipline.&lt;br /&gt;
&lt;br /&gt;
I hope that puts things a little into perspective.&lt;br /&gt;
&lt;br /&gt;
== You need development guidelines ==&lt;br /&gt;
You might have made general statements like 'There should be clear development guidelines', 'the project should not depend on a single person being around' or 'the developers should pay more attention to the users'. In theory, all these are beautiful - and who would object that these are all good things?&lt;br /&gt;
&lt;br /&gt;
The problem is that the reason that these things do not exist already have to do with how things are in practice. &lt;br /&gt;
&lt;br /&gt;
The consequence of developers paying more attention to what users want, rather than what they are interested in, and not being free to ignore suggestions is that a developer potentially is asked to work on something he personally dislikes, just because enough users want it. &lt;br /&gt;
&lt;br /&gt;
Who gets to decide what a relevant suggestion for the benefit of the project is and what a petty suggestion for the benefit of a single user is?&lt;br /&gt;
&lt;br /&gt;
Who gets to determine the guidelines and how - and what happens with people who don't want to follow? What happens if a developer doesn't want to code a feature even if 500 users signed a petition? What happens to a developer who belittles a contribution, and who enforces that and how? Once you start thinking these questions through, the moral high ground of the theoretical principles becomes a mud field of messiness and compromises.&lt;br /&gt;
&lt;br /&gt;
I've learned in the past year or so that FlightGear development is a messy place. It simply isn't structured in the clean and neat way I have in mind. Unfortunately, I've also come to realize that I am part of the mess - the way I work simply doesn't fit in with the equally clean and neat way others have in mind.&lt;br /&gt;
&lt;br /&gt;
== Telling volunteers what to do ==&lt;br /&gt;
Posted by MAKG:&lt;br /&gt;
&lt;br /&gt;
; Rule #1&lt;br /&gt;
: You can't tell volunteers to do anything. You can ask, but you have to motivate it if you want good and timely work, or any work at all.&lt;br /&gt;
&lt;br /&gt;
; Rule #2&lt;br /&gt;
: Volunteers may or may not be inexperienced -- it has to be evaluated and management is different for the two cases. Allow a lot of time for inexperienced developers.&lt;br /&gt;
&lt;br /&gt;
; Rule #3&lt;br /&gt;
: Let the volunteers learn something. You can tell them the right way to do something, and they may or may not listen. They are volunteers; let them do what they want even if it means redoing the work at a later time (example -- I had an undergrad student code an early telescope trajectory algorithm -- he wanted to numerically integrate rates because it was a whole lot simpler to derive; I explained that numerical stability would be much better with analytic positions. He coded rates, it was unstable, and he redid it as positions later. This was an extremely valuable lesson). Keep in mind that sometimes the volunteers are right...be prepared to learn something from them (the same student insisted on making a simulated sky, over my objections that it was unnecessary for the task at hand and time consuming -- and it turned out to be the single most valuable feature we have).&lt;br /&gt;
&lt;br /&gt;
; Rule #3A&lt;br /&gt;
: Volunteers may want to exceed their abilities. Let them unless it's far beyond their abilities and you can't tolerate a delay (if you're in that zone, reconsider whether a volunteer effort is really appropriate). They may need a lot of help, or their work may need to be redone, or they may not finish the work. This is part of the cost of a volunteer effort.&lt;br /&gt;
&lt;br /&gt;
; Rule #4&lt;br /&gt;
: BE GENTLE. These are volunteers. They won't do work you want/need if it's painful. Coax as needed, but nicely. Steer, don't push.&lt;br /&gt;
&lt;br /&gt;
; Rule #5&lt;br /&gt;
: Though management is necessarily loose with volunteers, it cannot be completely absent. There has to be a coherent vision coordinating the effort, or it will be unfocused and will not serve the needs at hand.&lt;br /&gt;
&lt;br /&gt;
Whether this is open source or not is irrelevant. It's a volunteer effort; there are many of those that don't have to do with software. Think Habitat for Humanity, for instance.&lt;br /&gt;
&lt;br /&gt;
=== Some comments on elitism ===&lt;br /&gt;
Every once in a while, people complain that they feel elitism is a major problem in the FlightGear project.&lt;br /&gt;
&lt;br /&gt;
The notion you may have in mind when you talk about 'elitism' is that everyone should be equal - applied to FlightGear, that everyone's opinion of how things should be heard and should matter about equally. In real life, that's how democracy works - everyone gets a say how to run a state. But there are many situations which do not work like this. Consider a shareholder's meeting - here influence is proportional to the investment. If I meet with 100 other shareholders, but I own 60% of the stock of a company, I alone get to decide what will happen. Or consider a scientific conference - here your influence is proportional to your expertise. You may have your favourite theory why Darwin was wrong, or why climate change is a fluke, but without some scientific merits, you won't be even admitted to the room, and it takes quite a bit more of reputation to get a talk.&lt;br /&gt;
&lt;br /&gt;
All these cases have nothing to do with elitism. In the first case (shareholder), the argument is fairness - if I take 10% of the risk of an enterprise and you take 1%, it is hardly fair that we should have the same voting rights. In the second case (science conference), the argument is efficiency - the amount of potential information is so huge that a careful filtering needs to be done in order to ensure that people spend their time processing relevant information - the scientific filter eliminates time-wasters up front (well, not all of them, as I can state from experience). You couldn't run either a shareholder's meeting or a science conference based on 'everyone is equal' - because while everyone is indeed equal in value as a human being, not everyone is equal in ability, expertise, or is equally involved in risk, work, ...- that's a fact, and to pretend otherwise doesn't help.&lt;br /&gt;
&lt;br /&gt;
You may call that elitism if you like, but my definition of elitism would be that a transfer takes place, i.e. that someone who owns 60% of the shares of a company starts to believe that he should not only get to say how the company is run, but also should get more influence in other areas outside his field of expertise, in other words, he starts to feel that his value as a human being is enhanced.&lt;br /&gt;
&lt;br /&gt;
Experience shows that it makes a lot of sense not to uphold the pretence that everyone is equal with respect to some property when this is in fact not the case. I've been observing internet language communities over the last 10 years where you have basically two classes of users - those who know the language in question, and those who ask questions as they are trying to learn. Almost without exception, communities which treated everyone equal did not work - the experienced users were annoyed at being interrupted in technical discussions, were told that everyone has the same right to enter a discussion, decided that they'd rather discuss in a place without interruptions, thus the communities were left with the users who bring only questions with no experts left to answer them, being unable to get answers they also left and the communities died. The communities which respected expertise worked - it's better to start as low-influence user in a forum and get your questions answered than to start as equal-influence user in a forum and not get your question answered.&lt;br /&gt;
&lt;br /&gt;
Perceived elitism is not a problem only for the Flightgear project, and the best way to avoid misjudging people is to make contact in a polite but ferm manner, expose yourself in a very matter-of-fact way, and keep it technical as much as possible. Always remember that with great power comes great responsibility, and if you get one day to be in a elite position, you might regret the old happy careless days.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is a meritocracy ==&lt;br /&gt;
FlightGear, as best as we have managed to understand the somewhat opaque workings in core development, is a meritocracy - your influence is proportional to the amount of work you do for the project. It's not closed, i.e. you can, if you invest a lot of work into the project, work yourself into a position where you have a lot of influence even starting today from zero.&lt;br /&gt;
&lt;br /&gt;
In general, that makes a lot of sense, basically because you can't vote what work volunteers should do later - or rather, you can, but it's not going to be done if the people volunteering for work don't like to do it, they'll just leave. &lt;br /&gt;
&lt;br /&gt;
In theory, I can spend 5 weeks of my spare time coding something I don't like, but why should I do that? Do you expect me to sit down and do something I dislike just because you (or other users) asked me to do it? Am I supposed to get satisfaction out of doing something for others, even if I don't like it? I don't know if there are people like that, if so, I've yet to meet them. My idea of the deal is: If somebody wants a feature I don't want to code, he can get my help to do it, he can get advice and a well-defined interface, he can get documentation - but that's about it.&lt;br /&gt;
&lt;br /&gt;
Question: Are you personally ready to work for FlightGear on something you dislike if enough users ask you for it? If you answer with yes, then the best way to proceed is that you poll users what they think you should do (within the limit of your abilities), and then do whatever is requested. &lt;br /&gt;
&lt;br /&gt;
There is a continuous transition - people who 'just ask questions' have less influence than people who write frequent feedback and maintain the wiki, then come possibly 3d modellers, Nasal coders, Terrain specialists and finally core developers. So, rather than seeing elitism, I see the chance that every user can in fact start with a small contribution and grow into the project - and that's what I'd like to see improved.&lt;br /&gt;
&lt;br /&gt;
They are different areas of expertise, to be a good 3d modeller and graphics expert is quite possibly as demanding as to be a good C++ programmer, Nasal coding isn't per see inferior, ... so why are they not equal?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason is, simply the dependency structure: FlightGear can run, live and be developed without detailed 3d models, but it can not run without C++ code. If tomorrow all C++ developers quit, that's quite possibly the end of FlightGear, if tomorrow all 3d modellers quit, that's the end of eye candy in FlightGear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's not particularly fair that this translates into the existing project structure, and in fact if you go through my posts here and on the devel list, you'll see that I continue to make the same point. As I said, can't all be fixed in a day... I don't have a particularly large influence either, all I can do is talk to people and ask for patience. You can read up what I wrote in the case of the Bo-105... Good work tends to be recognized eventually - be it modelling or coding. But there's no guarantee, sometimes you have to accept being frustrated, get up and try again. Or you walk because things are not perfect as they are, which is a pity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another thing I don't like is that I feel that the power which comes with having a lot of merits for the projects gets sometimes abused by people who behave in a way that would never be accepted from newcomers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And yet - it's a fine line between idealism and realism here - so suppose for a moment I had the power to do as I want with the project - what would I do? I feel that all users and contributors should be treated with some basic level of politeness. Assume someone violates that rule, but happens to be a core contributor. Idealism tells me that I need to enforce the rule, because everyone is equal in value as human being and deserves to be treated with respect - so quite likely the developer feels pissed off and leaves, creating a huge gap in the project (and, no kidding, there are people who are really important...) - in the end, no one benefits if the project collapses. So realism tells me to let things pass - it's better to mistreat one user than to kill the project and to make all users unhappy in the process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I don't think there's a simple answer to such problems - philosophy has been struggling with them for thousands of years, there hasn't so far emerged a clear preference between an ethics of means and an ethics of ends.&lt;br /&gt;
&lt;br /&gt;
So, perhaps a few folks can step back and see the bigger picture - and maybe share a vision: How would it be if contributing to FlightGear were as easy as contributing to Wikipedia - just what would, e.g. our scenery look like?&lt;br /&gt;
&lt;br /&gt;
And just how can we get there?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There will probably always be irreconcilable differences between those that _create_ a program, and those that _use_ a program. The extremely successful programs/environments are the ones where those that create can understand those that use, and those that use can understand those that create. Everyone here, in the long run, is really here for their own benefit, and until we all understand that, not much will change. Open source has it's downfalls. It doesn't have to please the majority, it doesn't need sales, it only has to please the person that created it. This doesn't mean that people are greedy or selfish. They have no problem sharing, but they don't need to _do_anything_for_you_, if they aren't interested in it.&lt;br /&gt;
&lt;br /&gt;
== You guys need some serious changes ==&lt;br /&gt;
You know, if I wanted to change the structure of a project for better, but would not have any real power (control over servers, commit rights, admin rights in the forum, ...), I'd do the following:&lt;br /&gt;
&lt;br /&gt;
First, I'd try to make sure I understand the situation as it is - not as it appears from my perspective, but also how it appears to others, of what nature the obstacles to change are and so on. Then I'd try to get to talk to some of the people who have the power to change things, and convince them that changing something would not just be better for me, but also be better for them - in fact be better for anyone around. In order to do so, I'd go as far as I can to meet them - talk their language, start describing things from their perspective, value their efforts - and then talk about that one can also see things from a different perspective. I'd do that because I want something - I want them to listen to me, so I want to make that as easy as possible. I'd also prepare a compelling and persuasive case - I'd try up front to sort genuine structural problems from things which are just one-time mistakes which can happen because people are not perfect, I'd sort important things from unimportant things and focus on the important things. Above all, I'd think about what I personally did wrong and what part of the problem I can fix - and how I should do it. And then I'd see if I can't convince anyone that there is merit in my perspective. In the process, I'd also try to find like-minded people who might help me achieve my goals.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is inconsistent and overly complicated ==&lt;br /&gt;
: the fact that it's overly complicated, lacks a single design or even feature set, defies any semblance of cohesion, daunts and confuses would-be contributors with equal severity, and thus produces a wide range of results quality from &amp;quot;embarrassing&amp;quot; to &amp;quot;ready-for-commercial-release&amp;quot; [http://forum.flightgear.org/viewtopic.php?f=14&amp;amp;t=20413#p186983]&lt;br /&gt;
&lt;br /&gt;
I don't see there's anything wrong with FG providing options - many of the features/options we have came into existence at different times, with different needs and requirements in mind. It is often only by accident that they start overlapping, sort of like various FDMs, scripting solutions, interfacing options or weather simulations.&lt;br /&gt;
&lt;br /&gt;
Admittedly, it's far from cohesive, but there's really nothing that we can do about it: It would require a coordinated effort, not just people telling others what to do, but others willing to listen.&lt;br /&gt;
The T4T/combat support situation isn't any different: we have flug's bombable addon as the most sophisticated option available in FG, and then we have various more or less &amp;quot;competitive&amp;quot; approaches, including T4T - yet most folks are not actively seeking collaboration, and doing very little to unify different concepts and approaches. Instead, the focus is often on differences rather than shared needs and common goals.&lt;br /&gt;
&lt;br /&gt;
Which is part of the reason why we have so many &amp;quot;unfinished&amp;quot; aircraft in comparison to other simulators. But like I said, there's really nothing that we, as a project, can do about it - short of adopting a commercial development model and a corresponding hierarchy.&lt;br /&gt;
&lt;br /&gt;
Absent that, we'll have to continue embracing the &amp;quot;Darwinian's development philosophy&amp;quot;, where everybody is free to contribute in whatever form they see fit, and it will be up to time to decide which features are going to stay, and which are going to be ripped out eventually.&lt;br /&gt;
&lt;br /&gt;
All of us have real life obligations, and very few of us are willing to accept additional duties/deadlines, no matter if it's aircraft development, core development, texturing, scenery work, wiki administration, forum administration or other &amp;quot;duties&amp;quot; - still, all this needs to be done by someone. &lt;br /&gt;
&lt;br /&gt;
Thus, it's those who roll up their own sleeves and spend their time contributing who get to influence the way FG development is heading, no matter if others agree or not - the only &amp;quot;hard currency&amp;quot; that counts in this project is time, i.e. the amount of time you have to contribute to the project&lt;br /&gt;
&lt;br /&gt;
Which is also the reason why we are seeing some really skilled and experienced contributors (with very little time on their hands...) being increasingly fed up with the way FG development is going recently, simply because there are quite a number of guys who may not be as experienced or skilled (i.e. not holding multiple CS degrees), but who may be able to spend more time contributing to the project in a different form, which -at least in part- also explains the sheer rate of growth of Nasal scripting in FlightGear, especially in comparison to relatively little new C++ code being committed to the core repository (the canvas system being the obvious exception here, but ironically the Canvas system additionally fosters scripting adoption even further, because base package developers can suddenly contribute in areas that were previously reserved for C++ developers only, such as the GUI, avionics and other fancy stuff).&lt;br /&gt;
&lt;br /&gt;
Honestly, we do have various accomplished core developers who do not particularly like the way Nasal is increasingly used, or the way the Canvas system is becoming a viable alternative over some hardcoded solutions - likewise, the weather system being 95% scripted is another annoyance to some - but at the end of the day, it's really just software evolution taking place: We have a decreasing number of experienced C++ developers, more and more becoming increasingly inactive - which is why the base package has been seeing so much development in comparison, and under these circumstances it is only natural for some core developers to recognize these issues and focus on providing building blocks and infrastructure to empower base package developers.&lt;br /&gt;
&lt;br /&gt;
It's not that your assessment is totally off, but we cannot really deal with it, unless we are telling people what to do - and as you may have witnessed before, that doesn't work out too well usually (remember the various T4T discussions). Thus, we need to accept what's brought to the table, no matter how inconsistent it is, and &amp;quot;absorb&amp;quot; it until something better comes along - even though that may mean that we'll end up with various different approaches in the meantime.&lt;br /&gt;
&lt;br /&gt;
Overall, the current situation isn't as bad as it used to be once&lt;br /&gt;
&lt;br /&gt;
== Is this program just for scientists and engineers? ==&lt;br /&gt;
No, but at least historically, the FlightGear project tends to attract certain types of people, many of them having some sort of academic background and some involvement or interest in aviation, i.e. in engineering, maths, physics, IT/computing or just real life pilots (hobby, professional, test pilots, retired).&lt;br /&gt;
&lt;br /&gt;
This applies especially to long-term contributors. Obviously, the people who contribute for a long time, get to shape the project more so than people who just happen to show up and post some ideas, features requests or bug reports.&lt;br /&gt;
In part, this is also due to the reputation they get to enjoy among fellow contributors, so their feedback has automatically also more weight, too.&lt;br /&gt;
&lt;br /&gt;
That might explain why many long-term contributors seem to have a fairly similar mindset, and why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
Some of these decisions are hard to understand without having a similar background, be it education, professional experience, families, real life obligations and such.&lt;br /&gt;
&lt;br /&gt;
== Community interactions ==&lt;br /&gt;
What can be done in a forum? First off, speak the same as if you were standing in front of the person you are talking to. If you _really_ do get up in their face when you speak, take the gold chains off for a minute and lose the Jersey accent. Respect goes a long way. Respect also goes _both_ ways. If you get an email from someone, respond to it, even if it's saying that &amp;quot;no, I can't help&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== The forum ===&lt;br /&gt;
Regarding helping others on the forum, thinking back on my early days with FG I'd have to say that what's obvious to a long-time FlightGear person isn't necessarily obvious to others. Sometimes people do search for answers first, but they may not be asking the right questions or have a deep enough knowledge of a system or community to proceed.&lt;br /&gt;
&lt;br /&gt;
New people might not think to look in the wiki (yes, there are links all over the place), or try and find an answer there first. Or maybe they did try and failed but didn't mention it. The wiki is a fine repository for some deep, often esoteric information, but the information is spotty and it's not the easiest place to hunt for a specific answer. And I can well remember when the information in the FG docs folder might as well have been written in Martian, given what I knew at the time. Heck, some of it is still Martian to me.&lt;br /&gt;
&lt;br /&gt;
It's usually obvious when people are asking questions in the forum thoughtfully, and when they are being casual, lazy, or discourteous. But sometimes it isn't so clear. There may be language barriers, or they may not know exactly how to ask, or they may simply be shy of a new environment. Like Someguy, I cringe when I see our good people tell somebody to go on an Easter-egg hunt for their answers. If it's tiresome, which is understandable, or one doesn't feel like helping, then it's wiser to simply not respond.&lt;br /&gt;
&lt;br /&gt;
What's at stake isn't getting person X to information Y. In 90%+ cases, it won't matter much-- person X will likely move on to some other hobby. But every now and then, that new person who asked that same tired-old question stays around and eventually becomes a Gijs, or a Heiko, or a Someguy, or a Melchior, or an Anders, or an Emmanuel, etc. The more open, friendly and patient we are, the more likely it is that we will retain these incredibly valuable sorts of people and keep moving forward.&lt;br /&gt;
&lt;br /&gt;
=== Coordination ===&lt;br /&gt;
It'd be really nice to have a better feeling for what is in the works and to know about what is going to change beforehand, rather than pulling the new version to learn that suddenly nothing works and spend the next week trying to figure out just what the change has been. Been there, done it, not pleasant.&lt;br /&gt;
&lt;br /&gt;
Some interface to exchange that kind of information would be really helpful, because some developments depend on how others are structured. In general, more talk between core C++ developers and other developers wouldn't be a bad thing.&lt;br /&gt;
&lt;br /&gt;
=== User facts of life ===&lt;br /&gt;
* Those that can't &amp;quot;create&amp;quot; an entire aircraft from a blank screen will have to wait for someone to build it. Don't post a blind &amp;quot;please build this&amp;quot; advertisement. My guess is that has never worked, and is borderline rude, asking for something without ever offering something. Accept your limitations, enjoy what we have.&lt;br /&gt;
* Don't believe that you are the _only_ user, and therefore represent everyone when you stand on your forum soapbox. _Everyone_ may not share your emotion.&lt;br /&gt;
* You have no power and control, and that's not a bad thing. You reap the benefits of many people that have come before you, and even those that may come after you.&lt;br /&gt;
&lt;br /&gt;
=== Developer facts of life ===&lt;br /&gt;
* You have power in what you do, and you have total control. This does affect your relationship to the person that is a &amp;quot;Non-developer&amp;quot;, whether you believe it or not. Choose to realize this, and be respectful.&lt;br /&gt;
* As a &amp;quot;developer&amp;quot;, you have been given power and control over something that really doesn't belong to only you. Without a board of directors to oversee your actions, realize that _do_ have a responsibility to provide your part of the &amp;quot;development&amp;quot;. You have to consciously choose to do this, for power and control are strong drugs.&lt;br /&gt;
* For the most part, there was someone before you, and their will be someone after you. Your actions will help ensure there is a place for someone after you. Remember the past. Don't be the reason that those before you chose to leave.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
There's simply no use in complaining that FlightGear isn't the community you'd like it to be - but there is use in working to make it the community you like it to be. It's just requires more effort &lt;br /&gt;
&lt;br /&gt;
May FlightGear always provide the beauty of flight to those that are bound by gravity.&lt;br /&gt;
&lt;br /&gt;
== To be discussed ==&lt;br /&gt;
* don't like this conceptual division between users and developers. A user is just a developer who hasn't popped the hood on their car yet.&lt;br /&gt;
&lt;br /&gt;
* most of us try to read the forum and the lists regularly, and we also try to respond to thoughtful topics&lt;br /&gt;
* I care if I can communicate with you on a professional level and if anything comes out of it in the end, or if I get the feeling I'm just wasting my time. That's all.&lt;br /&gt;
* Fact of the matter is - you're a potential contributor until proven otherwise, and as far as I am concerned, that gets you basic politeness, some measure of attention and some measure of help from my side, just like I would do for anyone else asking in the forum. If you want more (information, help, of my time, of Hooray's time ...), you should keep in mind that at this point you want something from the community, and so *you* need to adapt to the community, understand how it works and play by its rules - not the other way around. To say it very bluntly - FlightGear will survive without you if needed (as it will survive without me if needed).&lt;br /&gt;
* The time I am willing to spend trying to talk to you in the hope of any productive outcome is limited, it is about to be exhausted because I am feeling increasingly annoyed and see no real outcome except more talk. That may not have been your intention, but since it's brought to your attention that people start feeling annoyed, it might be a good idea to change the way you communicate. The chances that the devel community will adapt to your style of work are very slim indeed.&lt;br /&gt;
* Your lack of understanding here is your inability to acknowledge that people are aware of the alternatives and have consciously chosen to organize the project the way it is. Speaking for myself, I simply don't want it done your way and would go away the day things become organized your way, and several other core developers have expressed similar sentiments on the devel list.&lt;br /&gt;
* You assume that people basically have no clue and all you need to do is to point out how to make it better, but several people have considered the alternatives already and decided otherwise. This is what you need to understand.&lt;br /&gt;
&lt;br /&gt;
* Influence in the FlightGear community scales roughly with level of your contributions.&lt;br /&gt;
* Obviously, long-time contributors have a more sizeable track record of contributions which in turn gives their voice more weight&lt;br /&gt;
* Things are done the way the majority of contributors thinks they are best, not necessarily by some general consensus.&lt;br /&gt;
* unnecessary community interactions are eating up time&lt;br /&gt;
* people able to build FlightGear from source, who know C++, who have some spare time to contribute to FG are in very short supply&lt;br /&gt;
* developers getting involved in lengthy discussions cannot write code at the same time&lt;br /&gt;
&lt;br /&gt;
* Asking people to work on some particular problem that's bugging you, is generally alright - but you need to be willing to make your case and do that in a fairly compelling fashion. We have some really long-standing issues in FG, some of which most of us (including core devs) agree are IMPORTANT. This is a rare situation, but there really are things that pretty much everybody agrees are REALLY IMPORTANT to work on. So there's some very real competition and it won't be easy to talk people into doing something for you. &lt;br /&gt;
* Another important thing is staying focused: it isn't helpful to raise dozens of issues in a short amount of time if you cannot also solve them, regardless of how &amp;quot;real&amp;quot; and valid these issues might be.&lt;br /&gt;
* signal/noise ratio&lt;br /&gt;
&lt;br /&gt;
* Frequently, people keep emphasizing that this attitude is related to their  inability of fixing things themselves. Now, we are not going to suggest you learn how to build FG from source or how to program in C++. But rather, we suggest you focus on a handful of issues that truly annoy you, and where you think you could actually help and contribute solving them. That would surely help improving your signal/noise ratio, basically giving you opinions more weight here. There should be a fair share of opportunities to get involved in meaningful ways. We have a bunch of wiki resources to get people started contributing in various ways.&lt;br /&gt;
&lt;br /&gt;
* People asking for increased project management and more coordination may want to ask themselves how they would respond if they were exactly told what to work on, rather than just doing what they are interested in. Seriously, nobody is asking you to contribute within a particular domain at all, which is also a good thing and attracted many of the long-term contributors to the project in the first place.&lt;br /&gt;
&lt;br /&gt;
* When comparing FlightGear to other OSS project, it is important not to compare apples and oranges from a manpower perspective. We don't have the manpower here to establish a proper hierarchy like many of the more prominent projects (think Mozilla/Firefox). There's is TONS of management work happening behind the scenes, there's the Mozilla foundation and there are donations and so on - so Mozilla development is not only about coordinating a bunch of programmers who happen to develop a piece of software in their limited spare time, they have passed that point long ago.&lt;br /&gt;
&lt;br /&gt;
* If you are trying influence things: That's fine and a valid motivation. The thing is however, your ability to bring influence to the project is directly proportional to your impact and track record in the project. Actually, this isn't untypical for most OSS projects.We have people here who have been part of this project &amp;quot;just&amp;quot; voicing ideas, opinions and feature requests - some of whom have been involved for YEARS. While their feedback may be appreciated, their ability to direct things is still fairly limited - especially when compared to people who actually brought changes to FlightGear and who have a track record of doing so (sometimes even within a fairly short amount of time). You can find numerous examples actually, of people who have not been a member of this community for very long, but whose input and feedback is not just appreciated and respected but who are having a certain impact on the direction the project's heading. This is never because of &amp;quot;talking&amp;quot; or discussing things, it is because of DOING things.&lt;br /&gt;
&lt;br /&gt;
* FlightGear has never been in a better shape than it is in right now. In fact, admittedly FlightGear -as a software project- has actually been in a much worse shape for many years (for example: no forums, no wiki, no bug tracker, no git repository, no Gitorious merge requests, no build server, no formal release procedures etc)- still it somehow managed to stay around for over 10 years, despite all its deficiencies...&lt;br /&gt;
&lt;br /&gt;
=== Mods and forks (built on top of FG) ===&lt;br /&gt;
&lt;br /&gt;
* You're here asking for help from the FlightGear community. Help is hard to find in the first place (that's a fact, not a threat - there are calls for volunteers for many different projects that go unanswered).&lt;br /&gt;
&lt;br /&gt;
* You're planning to fork in a substantial way. The difference for me is - as long as what you're doing is FlightGear, I will care that my own development work (integrated weather system) runs fine on your system because I develop for FlightGear. If T4T is off to the degree that I'd have to download and compile different code, then I won't care that my weather system runs (it may or may not, dependent on what you do to the environment) - it has become your problem. Not because I am mean, but because I don't have the time and inclination to maintain compatibility to two different development branches. Whenever you develop using a different repository, you are 'them' and we are 'us'. We can be a friendly 'us' and 'them' as between FlightGear and JSBSim, we can exchange code, people can be part of both projects and maintain compatibility and work together - but the basic fact is that there is 'us' and 'them', and (probably like many others) I feel responsible for my part in 'us' but not for my part in 'them'.&lt;br /&gt;
&lt;br /&gt;
http://forum.flightgear.org/viewtopic.php?f=18&amp;amp;t=13298&amp;amp;p=134793&amp;amp;hilit=supply+developers#p134756&lt;br /&gt;
* Do you have a clear idea what your project involves?&lt;br /&gt;
* Do you have a clear idea what is already there?&lt;br /&gt;
* Will it help Flightgear?&lt;br /&gt;
* Will my voice be heard?&lt;br /&gt;
&lt;br /&gt;
* This community is far more likely to get involved if you involve it - and that'd mean opening your previous decisions for debate - than if you ask people to get involved with a project of your design which is no longer up to debate (speaking of resistance to change...). Again, that's your call, I'm not threatening in any way, I'm simply trying to explain how things (according to my best understanding) are and what the likely consequences of your project design are. I don't mean to imply that I or others would actively block you if you're not doing it 'the FlightGear way' and hold information back. I hope that is sufficiently clear.&lt;br /&gt;
&lt;br /&gt;
* We get to see new forum members posting interesting &amp;quot;project ideas&amp;quot; here every month, sometimes even several times per week. And we know from experience that &amp;quot;ripping FlightGear down to its core and rebuilding it&amp;quot; isn't going to happen that easily, it's not necessarily because of objection from the community - quite the contrary, sometimes people actually post ideas that everybody agrees would be great additions to FlightGear, ideas that would quite obviously involve tearing down some major subsystem and replacing it with something better.&lt;br /&gt;
&lt;br /&gt;
* Really, FlightGear is where it is now after 10+ years of ongoing development, many contributors (especially core developers) are long term contributors who have contributed to FlightGear for several years.&lt;br /&gt;
Still, FlightGear is a complex piece of software and there is probably not a single core developer who is familiar with ALL of FlightGear (features, code etc).&lt;br /&gt;
&lt;br /&gt;
* all long-term FlightGear users know for a fact that there is usually a short supply of C++ developers, knowing not only how to program in C++, but also familiar with 3D graphics, OpenGL/OSG programming and many other aspects that are important when creating/developing a simulator.&lt;br /&gt;
&lt;br /&gt;
* So we are really standing on the shoulders of giants here, because we are now -after 10+ years- in the position to create significant new features within the constraints of the FlightGear base package, without even touching the C++ source code at all - simply because FlightGear has become so flexible and extensible. &lt;br /&gt;
&lt;br /&gt;
* So I guess you see where I am coming from: new people now asking to &amp;quot;tear down &amp;amp; rebuild&amp;quot; the whole thing, or people asking to introduce DRM-like measures into FlightGear (content protection) are of course not going to receive a very warm welcome&lt;br /&gt;
&lt;br /&gt;
* I consider what you want to do perfectly possible, but I advise you to rethink your strategy: your decision to build upon FlightGear to create a combat simulator illustrates an admirable degree of foresight and experience that many other people with similarly ambitious ideas lack, but announcing to &amp;quot;rip out parts&amp;quot; and rebuild the whole thing is very unlikely to happen any time soon.&lt;br /&gt;
&lt;br /&gt;
* And like I said before: this is not necessarily because we don't want to see this happen: you could probably talk to any core-developer and each of them could tell you that there are a number of parts that SHOULD be ripped out and replaced eventually (i.e. such as some legacy code), but more often than not, things are simply not as easy as they may appear at first glance. When you take a look at the mailing list archives or at the wiki, you'll certainly find plenty of things in the fgfs source code that everybody agrees should be replaced eventually.&lt;br /&gt;
&lt;br /&gt;
* And if people who have experience working with the code for a number of years refrain from making some important changes, you may want to re-consider your strategy.&lt;br /&gt;
&lt;br /&gt;
* After all, this is all &amp;quot;for fun&amp;quot; - it's an open source project, so it should be &amp;quot;fun&amp;quot; and enjoyable.&lt;br /&gt;
&lt;br /&gt;
* you'll have a better chance of getting your code upstream (if that really is your goal) by coordinating your plans with the fg core developers and asking for recommended paths to proceed. Getting your code contributed back is obviously a good idea because it will be much less of a maintenance burden for you guys if your changes become part of the mainline.&lt;br /&gt;
&lt;br /&gt;
* Ultimately, this being open source, you don't need the approval of anybody - as long as you obey the requirements of the GPL, but rest assured: it will be much easier to deal with the FlightGear community and to get help if you play it &amp;quot;nice&amp;quot; and this very help will be very much needed in the beginning.&lt;br /&gt;
&lt;br /&gt;
* Suggesting &amp;quot;drastic&amp;quot; changes is all neat and dandy, but after familiarizing yourself with FlightGear you'll probably see quickly that it doesn't really need drastic changes at all: We have witnessed this in the &amp;quot;Local Weather&amp;quot; project, you could say it now *optionally* replaces the old system, but to work properly it only needed a way to switch off the old code - which just involves setting a bunch of properties (variables) from a Nasal script. There was no need to completely remove the legacy code, it was just made optional by setting a switch at runtime. Similarly, the bombable script leverages hard-coded C++ code for instantiating AI models dynamically - but the objects are controlled from scripting space.&lt;br /&gt;
&lt;br /&gt;
* Today, with much infrastructure available for free or easy obtainable, forking a project has become easier than ever. You might end up in a position to fork Flightgear to support your own pet projects, perhaps your own little business based on said pet projects. The thing to keep in mind is that it is quite hard to keep up with the latest developments. Be prepared to spend lots of hours just to add all the new features being developed in the mainline. However, it can also be a very satisfying experience, especially if you base your own fork on a slightly older code version, and try as hard as you can to keep it stable. A successful fork is hard to achieve and maintain over time, but you may be in a situation where this is required. Do not hesitate to try it. Always bring your contributions to the attention of upstream. They might get merged and save you some trouble in the future.&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68401</id>
		<title>How the FlightGear project works</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68401"/>
		<updated>2014-02-28T01:23:45Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Mods and forks (built on top of FG) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As FlightGear is becoming increasingly popular each year, we've been seeing a number of controversial discussions regarding the inner workings of the FlightGear project recently. Meanwhile, it is a well-known fact among long-time contributors that the FlightGear development model may seem irritating at first and it is known to cause some confusions or even frustration among new contributors who may already have experience contributing in other flight sim communities or even other OSS software. &lt;br /&gt;
So here's a collection of responses intended to clarify why things are set up this way. People interested in getting involved in the FlightGear community and contributing in one way or another, are encouraged to read this and understand how FlightGear has been able to be successful despite the fact that it does not have any commercial backing or a really structured development model.&lt;br /&gt;
&lt;br /&gt;
A more succinct version of this article can be found at: http://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=15267 (which serves as a really good introduction, people interested in more details, may still want to look at the text below).&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
As FlightGear is getting increasingly popular, we get to see new users coming to our forums and the mailing list every week. Many of them quite obviously very much interested in contributing to FlightGear in one way or another and getting involved in our community.&lt;br /&gt;
&lt;br /&gt;
This is something that all of us appreciate, because this is important to keep the project alive and kicking, so we do truly appreciate and welcome new community members, because this is an important part of enabling FlightGear to grow even more popular. &lt;br /&gt;
&lt;br /&gt;
There's such a huge range of ways to get involved in FlightGear, so that we truly appreciate everybody's skills. &lt;br /&gt;
&lt;br /&gt;
Please don't think that you cannot contribute to the project, because you cannot program or because you cannot design 3D models. Creating a flight simulator is a huge undertaking and there are many tasks which may seem less obvious to outsiders, such as helping maintain the wiki, moderating the forum, reporting spam, triaging the bug tracker, reviewing bug reports, helping fellow users and so on.&lt;br /&gt;
&lt;br /&gt;
== Irritations ==&lt;br /&gt;
However, sometimes we get to see some irritations among new community members and more seasoned members, because people may have certain expectations and assumptions on contributing to FlightGear. This has frequently caused some heated discussions, sometimes even flame wars on both, the devel mailing list and the forums.&lt;br /&gt;
&lt;br /&gt;
Apparently, this occurs frequently when dealing with people who already have experience developing software or contributing to open source software, be it professionally or as a hobby.&lt;br /&gt;
&lt;br /&gt;
Over the last couple of years, such discussions have taken place increasingly and they are obviously eating up considerable resources, given that spare time is our most precious resource to contribute to the project.&lt;br /&gt;
&lt;br /&gt;
It seems, some people are trying to apply their own experiences and assumptions to FlightGear as a software development project, which is sometimes causing grief and anger because FlightGear seems so different from anything they may know already.&lt;br /&gt;
&lt;br /&gt;
The best approach when encountering such problems is to take a step back, evaluate the goals and the means available, and come back with solutions or valid proposals. Several developers have taken long breaks, then returned to contribute again many features.&lt;br /&gt;
&lt;br /&gt;
== Passion ==&lt;br /&gt;
Honestly, we are all part of this community because we appreciate some things about this open source flight sim named FlightGear. So we are always sorry whenever our tone becomes inappropriate or even harsh.&lt;br /&gt;
We sincerely believe that you can contribute in more meaningful ways than you may currently perceive, without just voicing criticism. Obviously, it really is important to get along with people, regardless of differences in opinions.&lt;br /&gt;
&lt;br /&gt;
== Welcome to the club ==&lt;br /&gt;
To tell the truth: Most of us have been in that situation at some point. To most of us, the way FlightGear works as a project has been somewhat irritating and confusing in the beginning. So, we may actually share your initial confusion, because most of us went through the same process at some point.&lt;br /&gt;
&lt;br /&gt;
Honestly, you could search the forum and mailing list archives and probably find heated responses posted by even the most seasoned contributors. Some of us may have a track record of thousands of postings now and may seem like fairly knowledgeable contributors , but this is just a result of having been part of the community for a number of years, despite the deficiencies that we may have perceived initially. Frequently, some of our very first posts were also just voicing criticism.&lt;br /&gt;
&lt;br /&gt;
It isn't even unlikely that new community members are bringing up long-term issues that have been annoying most of us for quite a while already. We are probably more aware of these issues and their implications than you are. But just saying that something is &amp;quot;broken&amp;quot; is simply not the way to affect the situation for the better. Some of us have tried and failed doing exactly that. To no avail.&lt;br /&gt;
&lt;br /&gt;
Like you can see now, we've changed our strategy: We are trying to act like we want others to act, we are trying to be the change we'd like to see.&lt;br /&gt;
&lt;br /&gt;
Really, your situation may not be any different than ours: We've all been there. You need to be patient and absorb what we're telling you. We have no doubt that you'll get along with most of us, especially if you can demonstrate that you are actually listening and absorbing the advice we are handing out and applying your new knowledge.&lt;br /&gt;
&lt;br /&gt;
So this is an attempt at explaining things in a non-heated fashion, so that we can point aspiring contributors to this article explaining some things which may not be directly obvious, but which we feel are important to understand why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2012), this is largely copied together from various flame wars that have taken place in the last 12 months, so the format still needs some work, and things may seem pretty inconsistent and roundabout in some places.&lt;br /&gt;
&lt;br /&gt;
== Proposing changes ==&lt;br /&gt;
This is not to say that things are set in stone, but the current development model is the result of a certain evolution, and it's exactly this what has enabled FlightGear to survive and grow for over a decade already, without relying on commercial backing, funding organizations or formal project management. &lt;br /&gt;
&lt;br /&gt;
So, we would like to ask you to keep these factors in mind when proposing changes and when voicing recommendations, and when discussing such issues with fellow community members, publicly or privately.&lt;br /&gt;
&lt;br /&gt;
It requires patience to work together and to get something useful out. Sometimes you just have to live with a problem, work around it, and talk to people for a long time. It takes time, but I've experienced that you can convince core developers that your particular project is important enough to warrant attention and support. Everyone's time is limited, and it's all volunteer work. For example: If you complain that shadows are absent, it will change nothing. What you need to do is convince people that shadows would make a huge difference - possibly even with a proof of concept code.&lt;br /&gt;
&lt;br /&gt;
== Ideas getting ignored or rejected ==&lt;br /&gt;
Let's be honest: Not every suggestion made in the forum or on the devel list is good. While no one deserves to be belittled, a fair share of suggestions deserve to be ignored (unless you feel you are entitled to 30 minutes time from, say, a 3d rendering specialist who explains to you in detail why your idea really doesn't work in non-technical terms). &lt;br /&gt;
&lt;br /&gt;
There are many questions asked where the answer can be found in the Wiki with a short search. There are suggestions being made which even on first glance are impossible in practice. It's not the developer's job to deal with these things - it's your job as a forum user to do so. And not every rejection needs to be taken as personal grievance carried around for the next years - sometimes one just has to allow for the possibility that one has been wrong.&lt;br /&gt;
&lt;br /&gt;
Often, it does require a certain amount of background knowledge to truly understand why a certain idea or feature cannot be implemented. New users, and even new developers are likely to lack this knowledge. You need to be somewhat familiar with the code bases involved in order to understand some things.&lt;br /&gt;
&lt;br /&gt;
Since I work on FlightGear, I have suggested a lot of things - about 10% of which have been reacted on. To give you a current example: I've noticed that models from Nasal load way slower than needed, and I've asked that someone looks into it. I have not expected that somebody immediately jumps on it and spends 10 hours of his time tracking what is going on and delivers a detailed report in non-technical terms later. It has taken a few months and posting several examples to convince people that what I see is real. Then somebody looked at it and traced it to the (non)-existence of the osg texture cache. Now, people are debating the pros and cons of activating the texture cache by default, because it might affect stability and memory usage in an unwanted way - and I don't know if it will eventually be there.&lt;br /&gt;
&lt;br /&gt;
I have no problem with that - neither with convincing people that my suggestion is worth looking into, nor with the fact that other issues I have not thought of need to be taken into account. But it seems a lot of people in the forum expect that because they suggest something, someone will take it very seriously and act quickly and are then disappointed when this isn't actually the case.&lt;br /&gt;
&lt;br /&gt;
Coming from the other side, having worked on a problem I often know that a particular thing suggested cannot be done easily. If I have the time, I can take 20 minutes to explain why. Sometimes I don't have the time, then I just write a small sentence indicating why it doesn't work. Probably then somebody feels ignored. Can't help it - if I'd try to take the time, my 3 year old daughter would feel ignored, and she needs my attention more.&lt;br /&gt;
&lt;br /&gt;
I just lack any sign from the user community that they're willing to accept that a suggestion or feedback can in fact be dismissed, and that a developer's time to explain why a suggestion cannot be followed is also not unlimited. I have no problem with the users providing 50% of an opinion where the project should go - as long as they don't expect that that opinion necessarily translates into a decision.&lt;br /&gt;
&lt;br /&gt;
Sometimes rejecting new ideas can be painful to contributors who had spent a considerable amount of time researching and implementing features. Some new ideas have been the seeds of a similar implementation by the more seasoned coders. In any case, it is always best to evaluate the pain/gain benefit, and to keep older solutions to problems rather than having a half-way semi-realistic solution. Ideas tend to get the proper recognition in time, if they are beneficial, or are quickly forgotten if they are not worthy. Keep in mind to do this for fun, and always attack the idea, not the person, to keep things calm.&lt;br /&gt;
&lt;br /&gt;
== Lack of feedback ==&lt;br /&gt;
Lack of feedback - same thing. Go out into the forum, download interesting addons, talk to the people who provide them, let them know what you think. If you want feedback for your own work, start by giving feedback to the work of others. That's how it works. And yes, lack of recognition is sometimes a problem. Basically, you have to do things because you want to, and you have to be enthusiastic enough to pull others along so that they can see and appreciate your vision of how things could be. Again, requires a lot of patience. I wish that many things here would be different. I wish people would collaborate on projects more often, instead of everyone developing his own pet project and half of them dying for lack of interest. But I've come to realize that it's not going to happen because I wish it to happen - things are only happening my way if I slowly work towards it, talk to people an unholy amount of time and try to convince them that I am serious and have a case. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And to people who have stated (rightly or wrongly) that they don't feel the core developers are active enough in the forums:&lt;br /&gt;
&lt;br /&gt;
When asking on the devel list why people keep the mailing list separate from the forum, the response I got was along the lines of 'We like to exchange information, and in the Forum we get to hear only noise - petty complaints, lazy questions and so on - so we stay where the information relevant for development flows'.&lt;br /&gt;
&lt;br /&gt;
So, it goes two ways (I have been saying this before, haven't I?) - the probability that people will listen to what you have to say increases if you can convince people that they take you seriously.&lt;br /&gt;
&lt;br /&gt;
When I started to write that I want to rewrite an integrated weather system, pretty much no one took me seriously because it's a large chunk of work and you need to know what you're doing, and, face it, there's a lot of noise being made about what people will do who drop it later after a week. After I had written a working demonstration, people started to believe that I know what I'm talking about. Sometimes that's what it takes.&lt;br /&gt;
&lt;br /&gt;
From the other perspective, I would do the same. If somebody tells me he's going to implement volume rendering for clouds, I'd simply say 'Go ahead, I don't think it can be done.' Once he demonstrates to me that it can be done, I'd be willing to work with him. That makes a lot of sense, because the amount of ideas that can be realized and have a person behind them who is willing to see it through is a tiny fraction of the amount of ideas being presented - so it pays to focus on those who have a shot at success.&lt;br /&gt;
&lt;br /&gt;
So, I'd like to see some appreciation for the fact that there is no a priori right to be taken seriously, no matter what you say, but that this is something you need to work on. I also think that if the forum would offer a lot of high-quality development related discussions then you'd see much more active core developers here.&lt;br /&gt;
&lt;br /&gt;
Sometimes, there is a rift between new people and older members, simply because the latter expect all things to go through the proper channels and procedures. Unfortunately, since these are hardly policy, some prior research on the best communication channels and the best people to talk to in person can be valuable and time saving.&lt;br /&gt;
&lt;br /&gt;
== Users vs. contributors ==&lt;br /&gt;
We have here two groups of persons (with blurry boundaries): The first group takes something for free, which is a flight sim which you download from servers for which someone probably pays real money. The second group gives something, which is their time to create the simulation.&lt;br /&gt;
&lt;br /&gt;
You'd expect in the real world that if I give you something for free, that this earns me your gratitude. But this is the internet - so instead of gratitude, you somehow assume that in addition to giving you something, I am also expected to care about what you want, and it disturbs you that I don't really care for people who take for free and ask for more, but that I care for those who take and are prepared to give in return.&lt;br /&gt;
&lt;br /&gt;
On the other hand, a 'user' in your concept of course is supposed to be entitled to not only acquire FlightGear, but also get support in the forum and should also have a voice ( in what is done for the project (by others), and for this he's expected to do what in return? Nothing.&lt;br /&gt;
&lt;br /&gt;
If it disturbs you that I don't share this sentiment, then so be it, but let me be very clear: I have every sympathy for people who come here and offer to return some (whatever small) contribution back for getting FlightGear. I get angry when I see their contributions rejected for opaque reasons, when I see disparaging comments made that this is 'merely modelling' or 'just Nasal', when I see someone being discouraged from honestly trying to contribute. I have also sympathy for people who take FlightGear, enjoy using it but don't want to contribute and still ask politely for some help in the Forum.&lt;br /&gt;
&lt;br /&gt;
I just have no sympathy for people who take, are not prepared to do any work, but feel entitled to say how others should do their job and issue demands for features, aircraft, documentation, whatever. You may call that elitism, I call that my sense of fairness.&lt;br /&gt;
&lt;br /&gt;
== Lack of Support and Backwards Compatibility ==&lt;br /&gt;
FlightGear is a volunteer effort and no one is paying several thousand dollars a year for software and related support each year. Since legacy support is expensive (IE. time/effort) one of the ways a project like FlightGear deals with this is to limit legacy support. If this were not the case then time/effort would be expended on legacy support that could be used for new features and bug fixes. Like most things there are trade offs involved. Which do you want - more advanced FlightGear and aircraft or better support for older versions? This is a common issue for open source software and most prefer to look forward rather than looking back.&lt;br /&gt;
&lt;br /&gt;
For JSBSim there been has incremental changes in almost every version of FlightGear. These changes did things like add features or change the way a specific feature acted. For example around FG 2.4 there where changes to the engine cooling code (to allow modelling of cooling systems with things like cowl flaps) and also to the nose/tail wheel steering code (to allow toggling between locked and swivelling steering wheels). Many aircraft are unaffected by these changes because they don't make use of the enhancements but some aircraft do use these enhancements. For example the JSBSim P-51D uses both of these features and it probably will not work correctly (IE. it will over heat/run cold or not have correct ground handling) if used with FG versions before 2.4. There is also the possibility that it will throw all kinds of error messages when used with an older version of FG but none of this has been tested at least by me. So it may be OK with a few missing features on 1.9.1 or it may fail totally. We simply do not know. If someone complains about the JSBSim P-51D not running correctly on FG 1.9.1 my reply is too bad you need to upgrade to 2.4 or later and get back to me if things aren't working after the upgrade. There may be other more recent features that other aircraft use/leverage that don't affect the P-51D so I think this is a significant issue.&lt;br /&gt;
&lt;br /&gt;
In addition, FlightGear itself has been a moving target with a constant stream of new features and enhancements some of which require changes to at least some aircraft.&lt;br /&gt;
&lt;br /&gt;
== Number of aircraft vs. quality of aircraft ==&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
One thing to consider when comparing real-world handling qualities versus simulated handling is the control devices. I use a Logitech Gamepad which is not ideal by any means, it serves my purposes and gives me acceptable handling capability. The biggest problem with it is the small throw of the sticks which makes them very touchy. Even if you have a full size control column, you lose a lot of fidelity due to the lack of control feedback as well as lack of &amp;quot;seat of your pants&amp;quot; feedback. Both the control throw and the feedback issues result in a great loss of fidelity which makes it impossible to control an aircraft in simulation anywhere near as well as the real thing. &lt;br /&gt;
&lt;br /&gt;
Taking the P-51 issue as an example; even if the FDM did closely emulate the real thing, the reaction time to correct for any divergent yaw on takeoff will be much slower than it would be in real life with more sensory cues. Once you do react, you can't react with the same accuracy as real life due to the lack of control feedback, so your inputs will tend to over correct the situation which in turn you will be slower to react to.&lt;br /&gt;
&lt;br /&gt;
This can obviously be corrected by making the FDMs less touchy than the real-world aircraft, but this then compromises reality. So it takes a bit of a balance.&lt;br /&gt;
First, let me say that there are HUGE fluctuations in the quality of FG flight dynamics models, and that I don't like all of them. This is why I specifically wrote which planes I use and asked which plane you've been flying. Some FDMs are pretty bad, but others (the Seneca-II for instance) are made by people who fly the real thing, yet others (the P-51D, the F-16) are done using a huge pile of available test data and have been tweaked literally for hundreds of hours to agree with the real performance and capabilities. It's these FDMs which I like and which I'm defending here.&lt;br /&gt;
&lt;br /&gt;
So, you ask why some posters are so enamoured with the FG FDMs. For once, because I know physics. When I do certain things, I know how the aerodynamics works out, and I expect to find that in the simulation. &lt;br /&gt;
&lt;br /&gt;
For two, I've been flying gliders for a while. I distinctly remember the feeling of making tiny not really conscious movements with the stick all the time to fly the thing. I want to have that experience reproduced by a flight sim, it's part of the feeling of immersion - and the top-end JSBSim models do that for me. Also, I want to _do_ something while flying, not just get my plane on rails and watch the scenery.&lt;br /&gt;
&lt;br /&gt;
Third, because I find it educational. I for instance happen to know that the F-104 Starfighter was pretty accident prone. Just 10 minutes flying around with the thing told me why - when the plane becomes unstable, what manoeuvres you can and can't do (I think the Starfighter is also one of these FDMs with plenty of real life experience used by the creator...). I find it interesting to explore how the SR-71 reaches Mach-3 and why it needs to do the funny 'dipsy' manoeuvre. I find it instructive to understand why one has to fly the Concorde by the book and how fuel consumption figures change if I don't. I want to understand how thrust vectoring can be used and how stable it is. I want to learn what's different about a helicopter. For all this, I need the real physics of flight simulated as faithfully as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the creator of several aircraft made for FlightGear including a heavily researched Velocity XL and an Edgley Optica, I can say the above observation is nonsense. Fly one of my planes and the controls won't do diddly under 30 knots unless a pilot's handbook or a pilot's report indicates they should. Even the worst flight models in the FlightGear world don't have fully effective controls while sitting still. As for inherent stability, my own efforts are easily trimmed at cruise speeds for relatively benign, hands-off flight to match the flight manual or pilot reports.&lt;br /&gt;
&lt;br /&gt;
Why are some so enamoured of FG flight models? I'll state what Thorsten wrote in another way. I'm not a licensed pilot, though I do have stick-time in several light planes. But I'll never fly in an Optica, and I'm very unlikely to ever fly in a Velocity or a Grumman Goose, and no sane airline is going to let me into the flight deck of an MD-80. By building these models, I can gain an understanding, an insight, and an experience with these aircraft that would otherwise be closed to me. I can know them in some ways that even a pilot might not know them. The closer the simulation matches the real aircraft, the closer my experience comes to that aircraft. I can't experience these planes unless they are correct in every detail that matters, and pursuing that correctness is a long journey, perhaps one without an end.&lt;br /&gt;
&lt;br /&gt;
Maybe I misunderstand the notion of options to make a plane harder or easier to fly. For me, the point is to simulate the aircraft. If the aircraft had functions or gadgets that facilitated making it harder or easier to fly, then fine, that's part of the simulation goal. But it's not the same as a game, where I can select EASY, NORMAL, HARD, or HURT ME PLENTY. There are many planes where someone like me has no business trying even the simulated version. And no real C172 or MD-80 has difficulty modes or configuration files.&lt;br /&gt;
&lt;br /&gt;
Are there &amp;quot;crappy&amp;quot; flight models in the FlightGear world? Sure. Plenty of them. Maybe most of them. But there are some darn nice ones, some made by pilots with hands-on experience, some with the feedback of pilots, and some by non-pilots using meticulous research. Many are simply nice modelling efforts, waiting for someone to come along and create a good flight model, or add systems simulation, or cockpit instruments, or some other contribution.&lt;br /&gt;
&lt;br /&gt;
In the MSFS world, the typical model is a commercial product, released as a complete and well-rounded package. In the FG world, few models are finished, complete efforts. Developers work on what they know and what interests them, and most are open to contribution from others. Few works are above improvement. The neat thing about the FlightGear environment isn't that it's free. It's that if you don't like some aspect, you're welcome to help refine it. You can learn to improve it yourself, or you can help by suggesting well-conceived, objective changes to the authors. Most will listen. And you just might learn something along the way that will surprise or enlighten you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By saying that users can easily tweak the FDM in FlightGear, I am not implying that the the flight models or the FG architecture are inherently defective. There are many FG aircraft with great FDMs, other are not so good. Those that aren't so good are usually because they are not completed as indicated by their production status. As with any software product in beta release, the users are free to provide feedback directly to the developer. As this is an open source project, that feedback is often in the from of contributing code/FDM enhancements directly to the author for incorporation into the model. With commercial flight sims, you are always seeing the polished product because they would not get away with selling an unpolished product. With FG we are not burdened by the need to make a profit or satisfy our customers. We ARE our customers so we only need to make ourselves happy 8) So with FG you get to see a preview in the form of a pre-production or alpha release. This gives the users an opportunity to provide feedback directly to the developers, and often this feedback can be incorporated into an updated version of the aircraft in a few days or less. This is not a remote possibility for a commercial sim. I think this is why those who use FG like it so much. We are not content to use something out of the box, we are far too picky!&lt;br /&gt;
&lt;br /&gt;
== Fictional Aircraft ==&lt;br /&gt;
FlightGear is developed by a community of volunteers from all over the world, we contribute in whatever way we see fit, if you disagree with the way FlightGear development is going, your best chance to affect it, is by starting contributing yourself. FlightGear could only progress so far without any commercial backing for over a decade, because of FlightGear contributors and their very passion for turning their own ideas into FlightGear features.&lt;br /&gt;
&lt;br /&gt;
FlightGear isn't only developed with a single role or purpose in mind, FlightGear is to be understood as a framework for developing new aviation related features, including fictional features. We have hundreds of &amp;quot;aircraft&amp;quot; and &amp;quot;vehicles&amp;quot; available in FlightGear, only a fraction of those are fictional, and most of the fictional ones are not even well-developed, you will surely be able to find other aircraft that you are interested in, see: http://www.flightgear.org/download/airc ... ilterable/&lt;br /&gt;
&lt;br /&gt;
So until you roll up your own sleeves, let's just appreciate the variety of aircraft and other features to be found in FlightGear, including the X-wing star fighter from Star Wars, Star Trek space shuttles and lots of other passionately developed 3D models, like the BlueBird for example&lt;br /&gt;
&lt;br /&gt;
FlightGear doesn't necessarily have a real &amp;quot;fictional side&amp;quot; - it's just that we all needed to get started somehow. Contributing a completely new aircraft is obviously difficult. Contributing to existing aircraft is useful, but it doesn't teach you all of the skills required to create an aircraft from scratch. So people who want to do a full aircraft, need to start with something simple and &amp;quot;fun&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So what new contributors often do, is creating &amp;quot;fun&amp;quot; vehicles to learn how FlightGear works.&lt;br /&gt;
&lt;br /&gt;
Aircraft like the ufo, ogeL, bluebird etc were usually created by people in their initial phase of becoming familiar with FG - for example, the ogeL was made by the same guy who ended up modelling the Seneca, one of our most-developed (and maintained!) GA aircraft in FlightGear: http://wiki.flightgear.org/Seneca&lt;br /&gt;
&lt;br /&gt;
s you can tell from looking at the wiki, the ogeL aircraft developer has not only become the developer and maintainer of the Seneca aircraft in FlightGear, but he also has become a FlightGear core developer writing C++ code and maintaining the autopilot system for example, and he also happens to be a CPL-IFR/ME rated pilot in real life, who owns the Seneca he modelled for FlightGear.&lt;br /&gt;
&lt;br /&gt;
Obviously, contributing to all these areas in FG takes time, a steep learning curve is an unfortunate but important part of it - rarely, do we see people who immediately start out with complex and well-developed aircraft, it's a process - and we all needed to get started at some point. Just because we contribute &amp;quot;playful&amp;quot; things to FG, doesn't necessarily mean that we are not interested in &amp;quot;realistic aviation&amp;quot; as you can see.&lt;br /&gt;
&lt;br /&gt;
You will notice that many long-term contributors actually have an aviation-related professional background, be it flying (commercial, private, ATPL), software development, maths, physics, GIS or whatever. Among the long-term contributors are people with PhDs, Masters, commercial pilot rating, PPL or retired military pilots, and even one test pilot...&lt;br /&gt;
Still, 3D modelling is a completely new skills, and needs to be learned from scratch - which applies especially to people who &amp;quot;only&amp;quot; have a real background in aviation, but not in computers and/or games.&lt;br /&gt;
&lt;br /&gt;
Creating the ogeL was obviously simple and fun, creating aircraft like the Seneca requires tons of skills, experience and expertise that you don't end up having &amp;quot;automatically&amp;quot;. And it requires tons of dedication and discipline.&lt;br /&gt;
&lt;br /&gt;
I hope that puts things a little into perspective.&lt;br /&gt;
&lt;br /&gt;
== You need development guidelines ==&lt;br /&gt;
You might have made general statements like 'There should be clear development guidelines', 'the project should not depend on a single person being around' or 'the developers should pay more attention to the users'. In theory, all these are beautiful - and who would object that these are all good things?&lt;br /&gt;
&lt;br /&gt;
The problem is that the reason that these things do not exist already have to do with how things are in practice. &lt;br /&gt;
&lt;br /&gt;
The consequence of developers paying more attention to what users want, rather than what they are interested in, and not being free to ignore suggestions is that a developer potentially is asked to work on something he personally dislikes, just because enough users want it. &lt;br /&gt;
&lt;br /&gt;
Who gets to decide what a relevant suggestion for the benefit of the project is and what a petty suggestion for the benefit of a single user is?&lt;br /&gt;
&lt;br /&gt;
Who gets to determine the guidelines and how - and what happens with people who don't want to follow? What happens if a developer doesn't want to code a feature even if 500 users signed a petition? What happens to a developer who belittles a contribution, and who enforces that and how? Once you start thinking these questions through, the moral high ground of the theoretical principles becomes a mud field of messiness and compromises.&lt;br /&gt;
&lt;br /&gt;
I've learned in the past year or so that FlightGear development is a messy place. It simply isn't structured in the clean and neat way I have in mind. Unfortunately, I've also come to realize that I am part of the mess - the way I work simply doesn't fit in with the equally clean and neat way others have in mind.&lt;br /&gt;
&lt;br /&gt;
== Telling volunteers what to do ==&lt;br /&gt;
Posted by MAKG:&lt;br /&gt;
&lt;br /&gt;
; Rule #1&lt;br /&gt;
: You can't tell volunteers to do anything. You can ask, but you have to motivate it if you want good and timely work, or any work at all.&lt;br /&gt;
&lt;br /&gt;
; Rule #2&lt;br /&gt;
: Volunteers may or may not be inexperienced -- it has to be evaluated and management is different for the two cases. Allow a lot of time for inexperienced developers.&lt;br /&gt;
&lt;br /&gt;
; Rule #3&lt;br /&gt;
: Let the volunteers learn something. You can tell them the right way to do something, and they may or may not listen. They are volunteers; let them do what they want even if it means redoing the work at a later time (example -- I had an undergrad student code an early telescope trajectory algorithm -- he wanted to numerically integrate rates because it was a whole lot simpler to derive; I explained that numerical stability would be much better with analytic positions. He coded rates, it was unstable, and he redid it as positions later. This was an extremely valuable lesson). Keep in mind that sometimes the volunteers are right...be prepared to learn something from them (the same student insisted on making a simulated sky, over my objections that it was unnecessary for the task at hand and time consuming -- and it turned out to be the single most valuable feature we have).&lt;br /&gt;
&lt;br /&gt;
; Rule #3A&lt;br /&gt;
: Volunteers may want to exceed their abilities. Let them unless it's far beyond their abilities and you can't tolerate a delay (if you're in that zone, reconsider whether a volunteer effort is really appropriate). They may need a lot of help, or their work may need to be redone, or they may not finish the work. This is part of the cost of a volunteer effort.&lt;br /&gt;
&lt;br /&gt;
; Rule #4&lt;br /&gt;
: BE GENTLE. These are volunteers. They won't do work you want/need if it's painful. Coax as needed, but nicely. Steer, don't push.&lt;br /&gt;
&lt;br /&gt;
; Rule #5&lt;br /&gt;
: Though management is necessarily loose with volunteers, it cannot be completely absent. There has to be a coherent vision coordinating the effort, or it will be unfocused and will not serve the needs at hand.&lt;br /&gt;
&lt;br /&gt;
Whether this is open source or not is irrelevant. It's a volunteer effort; there are many of those that don't have to do with software. Think Habitat for Humanity, for instance.&lt;br /&gt;
&lt;br /&gt;
=== Some comments on elitism ===&lt;br /&gt;
Every once in a while, people complain that they feel elitism is a major problem in the FlightGear project.&lt;br /&gt;
&lt;br /&gt;
The notion you may have in mind when you talk about 'elitism' is that everyone should be equal - applied to FlightGear, that everyone's opinion of how things should be heard and should matter about equally. In real life, that's how democracy works - everyone gets a say how to run a state. But there are many situations which do not work like this. Consider a shareholder's meeting - here influence is proportional to the investment. If I meet with 100 other shareholders, but I own 60% of the stock of a company, I alone get to decide what will happen. Or consider a scientific conference - here your influence is proportional to your expertise. You may have your favourite theory why Darwin was wrong, or why climate change is a fluke, but without some scientific merits, you won't be even admitted to the room, and it takes quite a bit more of reputation to get a talk.&lt;br /&gt;
&lt;br /&gt;
All these cases have nothing to do with elitism. In the first case (shareholder), the argument is fairness - if I take 10% of the risk of an enterprise and you take 1%, it is hardly fair that we should have the same voting rights. In the second case (science conference), the argument is efficiency - the amount of potential information is so huge that a careful filtering needs to be done in order to ensure that people spend their time processing relevant information - the scientific filter eliminates time-wasters up front (well, not all of them, as I can state from experience). You couldn't run either a shareholder's meeting or a science conference based on 'everyone is equal' - because while everyone is indeed equal in value as a human being, not everyone is equal in ability, expertise, or is equally involved in risk, work, ...- that's a fact, and to pretend otherwise doesn't help.&lt;br /&gt;
&lt;br /&gt;
You may call that elitism if you like, but my definition of elitism would be that a transfer takes place, i.e. that someone who owns 60% of the shares of a company starts to believe that he should not only get to say how the company is run, but also should get more influence in other areas outside his field of expertise, in other words, he starts to feel that his value as a human being is enhanced.&lt;br /&gt;
&lt;br /&gt;
Experience shows that it makes a lot of sense not to uphold the pretence that everyone is equal with respect to some property when this is in fact not the case. I've been observing internet language communities over the last 10 years where you have basically two classes of users - those who know the language in question, and those who ask questions as they are trying to learn. Almost without exception, communities which treated everyone equal did not work - the experienced users were annoyed at being interrupted in technical discussions, were told that everyone has the same right to enter a discussion, decided that they'd rather discuss in a place without interruptions, thus the communities were left with the users who bring only questions with no experts left to answer them, being unable to get answers they also left and the communities died. The communities which respected expertise worked - it's better to start as low-influence user in a forum and get your questions answered than to start as equal-influence user in a forum and not get your question answered.&lt;br /&gt;
&lt;br /&gt;
Perceived elitism is not a problem only for the Flightgear project, and the best way to avoid misjudging people is to make contact in a polite but ferm manner, expose yourself in a very matter-of-fact way, and keep it technical as much as possible. Always remember that with great power comes great responsibility, and if you get one day to be in a elite position, you might regret the old happy careless days.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is a meritocracy ==&lt;br /&gt;
FlightGear, as best as we have managed to understand the somewhat opaque workings in core development, is a meritocracy - your influence is proportional to the amount of work you do for the project. It's not closed, i.e. you can, if you invest a lot of work into the project, work yourself into a position where you have a lot of influence even starting today from zero.&lt;br /&gt;
&lt;br /&gt;
In general, that makes a lot of sense, basically because you can't vote what work volunteers should do later - or rather, you can, but it's not going to be done if the people volunteering for work don't like to do it, they'll just leave. &lt;br /&gt;
&lt;br /&gt;
In theory, I can spend 5 weeks of my spare time coding something I don't like, but why should I do that? Do you expect me to sit down and do something I dislike just because you (or other users) asked me to do it? Am I supposed to get satisfaction out of doing something for others, even if I don't like it? I don't know if there are people like that, if so, I've yet to meet them. My idea of the deal is: If somebody wants a feature I don't want to code, he can get my help to do it, he can get advice and a well-defined interface, he can get documentation - but that's about it.&lt;br /&gt;
&lt;br /&gt;
Question: Are you personally ready to work for FlightGear on something you dislike if enough users ask you for it? If you answer with yes, then the best way to proceed is that you poll users what they think you should do (within the limit of your abilities), and then do whatever is requested. &lt;br /&gt;
&lt;br /&gt;
There is a continuous transition - people who 'just ask questions' have less influence than people who write frequent feedback and maintain the wiki, then come possibly 3d modellers, Nasal coders, Terrain specialists and finally core developers. So, rather than seeing elitism, I see the chance that every user can in fact start with a small contribution and grow into the project - and that's what I'd like to see improved.&lt;br /&gt;
&lt;br /&gt;
They are different areas of expertise, to be a good 3d modeller and graphics expert is quite possibly as demanding as to be a good C++ programmer, Nasal coding isn't per see inferior, ... so why are they not equal?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason is, simply the dependency structure: FlightGear can run, live and be developed without detailed 3d models, but it can not run without C++ code. If tomorrow all C++ developers quit, that's quite possibly the end of FlightGear, if tomorrow all 3d modellers quit, that's the end of eye candy in FlightGear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's not particularly fair that this translates into the existing project structure, and in fact if you go through my posts here and on the devel list, you'll see that I continue to make the same point. As I said, can't all be fixed in a day... I don't have a particularly large influence either, all I can do is talk to people and ask for patience. You can read up what I wrote in the case of the Bo-105... Good work tends to be recognized eventually - be it modelling or coding. But there's no guarantee, sometimes you have to accept being frustrated, get up and try again. Or you walk because things are not perfect as they are, which is a pity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another thing I don't like is that I feel that the power which comes with having a lot of merits for the projects gets sometimes abused by people who behave in a way that would never be accepted from newcomers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And yet - it's a fine line between idealism and realism here - so suppose for a moment I had the power to do as I want with the project - what would I do? I feel that all users and contributors should be treated with some basic level of politeness. Assume someone violates that rule, but happens to be a core contributor. Idealism tells me that I need to enforce the rule, because everyone is equal in value as human being and deserves to be treated with respect - so quite likely the developer feels pissed off and leaves, creating a huge gap in the project (and, no kidding, there are people who are really important...) - in the end, no one benefits if the project collapses. So realism tells me to let things pass - it's better to mistreat one user than to kill the project and to make all users unhappy in the process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I don't think there's a simple answer to such problems - philosophy has been struggling with them for thousands of years, there hasn't so far emerged a clear preference between an ethics of means and an ethics of ends.&lt;br /&gt;
&lt;br /&gt;
So, perhaps a few folks can step back and see the bigger picture - and maybe share a vision: How would it be if contributing to FlightGear were as easy as contributing to Wikipedia - just what would, e.g. our scenery look like?&lt;br /&gt;
&lt;br /&gt;
And just how can we get there?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There will probably always be irreconcilable differences between those that _create_ a program, and those that _use_ a program. The extremely successful programs/environments are the ones where those that create can understand those that use, and those that use can understand those that create. Everyone here, in the long run, is really here for their own benefit, and until we all understand that, not much will change. Open source has it's downfalls. It doesn't have to please the majority, it doesn't need sales, it only has to please the person that created it. This doesn't mean that people are greedy or selfish. They have no problem sharing, but they don't need to _do_anything_for_you_, if they aren't interested in it.&lt;br /&gt;
&lt;br /&gt;
== You guys need some serious changes ==&lt;br /&gt;
You know, if I wanted to change the structure of a project for better, but would not have any real power (control over servers, commit rights, admin rights in the forum, ...), I'd do the following:&lt;br /&gt;
&lt;br /&gt;
First, I'd try to make sure I understand the situation as it is - not as it appears from my perspective, but also how it appears to others, of what nature the obstacles to change are and so on. Then I'd try to get to talk to some of the people who have the power to change things, and convince them that changing something would not just be better for me, but also be better for them - in fact be better for anyone around. In order to do so, I'd go as far as I can to meet them - talk their language, start describing things from their perspective, value their efforts - and then talk about that one can also see things from a different perspective. I'd do that because I want something - I want them to listen to me, so I want to make that as easy as possible. I'd also prepare a compelling and persuasive case - I'd try up front to sort genuine structural problems from things which are just one-time mistakes which can happen because people are not perfect, I'd sort important things from unimportant things and focus on the important things. Above all, I'd think about what I personally did wrong and what part of the problem I can fix - and how I should do it. And then I'd see if I can't convince anyone that there is merit in my perspective. In the process, I'd also try to find like-minded people who might help me achieve my goals.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is inconsistent and overly complicated ==&lt;br /&gt;
: the fact that it's overly complicated, lacks a single design or even feature set, defies any semblance of cohesion, daunts and confuses would-be contributors with equal severity, and thus produces a wide range of results quality from &amp;quot;embarrassing&amp;quot; to &amp;quot;ready-for-commercial-release&amp;quot; [http://forum.flightgear.org/viewtopic.php?f=14&amp;amp;t=20413#p186983]&lt;br /&gt;
&lt;br /&gt;
I don't see there's anything wrong with FG providing options - many of the features/options we have came into existence at different times, with different needs and requirements in mind. It is often only by accident that they start overlapping, sort of like various FDMs, scripting solutions, interfacing options or weather simulations.&lt;br /&gt;
&lt;br /&gt;
Admittedly, it's far from cohesive, but there's really nothing that we can do about it: It would require a coordinated effort, not just people telling others what to do, but others willing to listen.&lt;br /&gt;
The T4T/combat support situation isn't any different: we have flug's bombable addon as the most sophisticated option available in FG, and then we have various more or less &amp;quot;competitive&amp;quot; approaches, including T4T - yet most folks are not actively seeking collaboration, and doing very little to unify different concepts and approaches. Instead, the focus is often on differences rather than shared needs and common goals.&lt;br /&gt;
&lt;br /&gt;
Which is part of the reason why we have so many &amp;quot;unfinished&amp;quot; aircraft in comparison to other simulators. But like I said, there's really nothing that we, as a project, can do about it - short of adopting a commercial development model and a corresponding hierarchy.&lt;br /&gt;
&lt;br /&gt;
Absent that, we'll have to continue embracing the &amp;quot;Darwinian's development philosophy&amp;quot;, where everybody is free to contribute in whatever form they see fit, and it will be up to time to decide which features are going to stay, and which are going to be ripped out eventually.&lt;br /&gt;
&lt;br /&gt;
All of us have real life obligations, and very few of us are willing to accept additional duties/deadlines, no matter if it's aircraft development, core development, texturing, scenery work, wiki administration, forum administration or other &amp;quot;duties&amp;quot; - still, all this needs to be done by someone. &lt;br /&gt;
&lt;br /&gt;
Thus, it's those who roll up their own sleeves and spend their time contributing who get to influence the way FG development is heading, no matter if others agree or not - the only &amp;quot;hard currency&amp;quot; that counts in this project is time, i.e. the amount of time you have to contribute to the project&lt;br /&gt;
&lt;br /&gt;
Which is also the reason why we are seeing some really skilled and experienced contributors (with very little time on their hands...) being increasingly fed up with the way FG development is going recently, simply because there are quite a number of guys who may not be as experienced or skilled (i.e. not holding multiple CS degrees), but who may be able to spend more time contributing to the project in a different form, which -at least in part- also explains the sheer rate of growth of Nasal scripting in FlightGear, especially in comparison to relatively little new C++ code being committed to the core repository (the canvas system being the obvious exception here, but ironically the Canvas system additionally fosters scripting adoption even further, because base package developers can suddenly contribute in areas that were previously reserved for C++ developers only, such as the GUI, avionics and other fancy stuff).&lt;br /&gt;
&lt;br /&gt;
Honestly, we do have various accomplished core developers who do not particularly like the way Nasal is increasingly used, or the way the Canvas system is becoming a viable alternative over some hardcoded solutions - likewise, the weather system being 95% scripted is another annoyance to some - but at the end of the day, it's really just software evolution taking place: We have a decreasing number of experienced C++ developers, more and more becoming increasingly inactive - which is why the base package has been seeing so much development in comparison, and under these circumstances it is only natural for some core developers to recognize these issues and focus on providing building blocks and infrastructure to empower base package developers.&lt;br /&gt;
&lt;br /&gt;
It's not that your assessment is totally off, but we cannot really deal with it, unless we are telling people what to do - and as you may have witnessed before, that doesn't work out too well usually (remember the various T4T discussions). Thus, we need to accept what's brought to the table, no matter how inconsistent it is, and &amp;quot;absorb&amp;quot; it until something better comes along - even though that may mean that we'll end up with various different approaches in the meantime.&lt;br /&gt;
&lt;br /&gt;
Overall, the current situation isn't as bad as it used to be once&lt;br /&gt;
&lt;br /&gt;
== Is this program just for scientists and engineers? ==&lt;br /&gt;
No, but at least historically, the FlightGear project tends to attract certain types of people, many of them having some sort of academic background and some involvement or interest in aviation, i.e. in engineering, maths, physics, IT/computing or just real life pilots (hobby, professional, test pilots, retired).&lt;br /&gt;
&lt;br /&gt;
This applies especially to long-term contributors. Obviously, the people who contribute for a long time, get to shape the project more so than people who just happen to show up and post some ideas, features requests or bug reports.&lt;br /&gt;
In part, this is also due to the reputation they get to enjoy among fellow contributors, so their feedback has automatically also more weight, too.&lt;br /&gt;
&lt;br /&gt;
That might explain why many long-term contributors seem to have a fairly similar mindset, and why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
Some of these decisions are hard to understand without having a similar background, be it education, professional experience, families, real life obligations and such.&lt;br /&gt;
&lt;br /&gt;
== Community interactions ==&lt;br /&gt;
What can be done in a forum? First off, speak the same as if you were standing in front of the person you are talking to. If you _really_ do get up in their face when you speak, take the gold chains off for a minute and lose the Jersey accent. Respect goes a long way. Respect also goes _both_ ways. If you get an email from someone, respond to it, even if it's saying that &amp;quot;no, I can't help&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== The forum ===&lt;br /&gt;
Regarding helping others on the forum, thinking back on my early days with FG I'd have to say that what's obvious to a long-time FlightGear person isn't necessarily obvious to others. Sometimes people do search for answers first, but they may not be asking the right questions or have a deep enough knowledge of a system or community to proceed.&lt;br /&gt;
&lt;br /&gt;
New people might not think to look in the wiki (yes, there are links all over the place), or try and find an answer there first. Or maybe they did try and failed but didn't mention it. The wiki is a fine repository for some deep, often esoteric information, but the information is spotty and it's not the easiest place to hunt for a specific answer. And I can well remember when the information in the FG docs folder might as well have been written in Martian, given what I knew at the time. Heck, some of it is still Martian to me.&lt;br /&gt;
&lt;br /&gt;
It's usually obvious when people are asking questions in the forum thoughtfully, and when they are being casual, lazy, or discourteous. But sometimes it isn't so clear. There may be language barriers, or they may not know exactly how to ask, or they may simply be shy of a new environment. Like Someguy, I cringe when I see our good people tell somebody to go on an Easter-egg hunt for their answers. If it's tiresome, which is understandable, or one doesn't feel like helping, then it's wiser to simply not respond.&lt;br /&gt;
&lt;br /&gt;
What's at stake isn't getting person X to information Y. In 90%+ cases, it won't matter much-- person X will likely move on to some other hobby. But every now and then, that new person who asked that same tired-old question stays around and eventually becomes a Gijs, or a Heiko, or a Someguy, or a Melchior, or an Anders, or an Emmanuel, etc. The more open, friendly and patient we are, the more likely it is that we will retain these incredibly valuable sorts of people and keep moving forward.&lt;br /&gt;
&lt;br /&gt;
=== Coordination ===&lt;br /&gt;
It'd be really nice to have a better feeling for what is in the works and to know about what is going to change beforehand, rather than pulling the new version to learn that suddenly nothing works and spend the next week trying to figure out just what the change has been. Been there, done it, not pleasant.&lt;br /&gt;
&lt;br /&gt;
Some interface to exchange that kind of information would be really helpful, because some developments depend on how others are structured. In general, more talk between core C++ developers and other developers wouldn't be a bad thing.&lt;br /&gt;
&lt;br /&gt;
=== User facts of life ===&lt;br /&gt;
* Those that can't &amp;quot;create&amp;quot; an entire aircraft from a blank screen will have to wait for someone to build it. Don't post a blind &amp;quot;please build this&amp;quot; advertisement. My guess is that has never worked, and is borderline rude, asking for something without ever offering something. Accept your limitations, enjoy what we have.&lt;br /&gt;
* Don't believe that you are the _only_ user, and therefore represent everyone when you stand on your forum soapbox. _Everyone_ may not share your emotion.&lt;br /&gt;
* You have no power and control, and that's not a bad thing. You reap the benefits of many people that have come before you, and even those that may come after you.&lt;br /&gt;
&lt;br /&gt;
=== Developer facts of life ===&lt;br /&gt;
* You have power in what you do, and you have total control. This does affect your relationship to the person that is a &amp;quot;Non-developer&amp;quot;, whether you believe it or not. Choose to realize this, and be respectful.&lt;br /&gt;
* As a &amp;quot;developer&amp;quot;, you have been given power and control over something that really doesn't belong to only you. Without a board of directors to oversee your actions, realize that _do_ have a responsibility to provide your part of the &amp;quot;development&amp;quot;. You have to consciously choose to do this, for power and control are strong drugs.&lt;br /&gt;
* For the most part, there was someone before you, and their will be someone after you. Your actions will help ensure there is a place for someone after you. Remember the past. Don't be the reason that those before you chose to leave.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
There's simply no use in complaining that FlightGear isn't the community you'd like it to be - but there is use in working to make it the community you like it to be. It's just requires more effort &lt;br /&gt;
&lt;br /&gt;
May FlightGear always provide the beauty of flight to those that are bound by gravity.&lt;br /&gt;
&lt;br /&gt;
== To be discussed ==&lt;br /&gt;
* don't like this conceptual division between users and developers. A user is just a developer who hasn't popped the hood on their car yet.&lt;br /&gt;
&lt;br /&gt;
* most of us try to read the forum and the lists regularly, and we also try to respond to thoughtful topics&lt;br /&gt;
* I care if I can communicate with you on a professional level and if anything comes out of it in the end, or if I get the feeling I'm just wasting my time. That's all.&lt;br /&gt;
* Fact of the matter is - you're a potential contributor until proven otherwise, and as far as I am concerned, that gets you basic politeness, some measure of attention and some measure of help from my side, just like I would do for anyone else asking in the forum. If you want more (information, help, of my time, of Hooray's time ...), you should keep in mind that at this point you want something from the community, and so *you* need to adapt to the community, understand how it works and play by its rules - not the other way around. To say it very bluntly - FlightGear will survive without you if needed (as it will survive without me if needed).&lt;br /&gt;
* The time I am willing to spend trying to talk to you in the hope of any productive outcome is limited, it is about to be exhausted because I am feeling increasingly annoyed and see no real outcome except more talk. That may not have been your intention, but since it's brought to your attention that people start feeling annoyed, it might be a good idea to change the way you communicate. The chances that the devel community will adapt to your style of work are very slim indeed.&lt;br /&gt;
* Your lack of understanding here is your inability to acknowledge that people are aware of the alternatives and have consciously chosen to organize the project the way it is. Speaking for myself, I simply don't want it done your way and would go away the day things become organized your way, and several other core developers have expressed similar sentiments on the devel list.&lt;br /&gt;
* You assume that people basically have no clue and all you need to do is to point out how to make it better, but several people have considered the alternatives already and decided otherwise. This is what you need to understand.&lt;br /&gt;
&lt;br /&gt;
* Influence in the FlightGear community scales roughly with level of your contributions.&lt;br /&gt;
* Obviously, long-time contributors have a more sizeable track record of contributions which in turn gives their voice more weight&lt;br /&gt;
* Things are done the way the majority of contributors thinks they are best, not necessarily by some general consensus.&lt;br /&gt;
* unnecessary community interactions are eating up time&lt;br /&gt;
* people able to build FlightGear from source, who know C++, who have some spare time to contribute to FG are in very short supply&lt;br /&gt;
* developers getting involved in lengthy discussions cannot write code at the same time&lt;br /&gt;
&lt;br /&gt;
* Asking people to work on some particular problem that's bugging you, is generally alright - but you need to be willing to make your case and do that in a fairly compelling fashion. We have some really long-standing issues in FG, some of which most of us (including core devs) agree are IMPORTANT. This is a rare situation, but there really are things that pretty much everybody agrees are REALLY IMPORTANT to work on. So there's some very real competition and it won't be easy to talk people into doing something for you. &lt;br /&gt;
* Another important thing is staying focused: it isn't helpful to raise dozens of issues in a short amount of time if you cannot also solve them, regardless of how &amp;quot;real&amp;quot; and valid these issues might be.&lt;br /&gt;
* signal/noise ratio&lt;br /&gt;
&lt;br /&gt;
* Frequently, people keep emphasizing that this attitude is related to their  inability of fixing things themselves. Now, we are not going to suggest you learn how to build FG from source or how to program in C++. But rather, we suggest you focus on a handful of issues that truly annoy you, and where you think you could actually help and contribute solving them. That would surely help improving your signal/noise ratio, basically giving you opinions more weight here. There should be a fair share of opportunities to get involved in meaningful ways. We have a bunch of wiki resources to get people started contributing in various ways.&lt;br /&gt;
&lt;br /&gt;
* People asking for increased project management and more coordination may want to ask themselves how they would respond if they were exactly told what to work on, rather than just doing what they are interested in. Seriously, nobody is asking you to contribute within a particular domain at all, which is also a good thing and attracted many of the long-term contributors to the project in the first place.&lt;br /&gt;
&lt;br /&gt;
* When comparing FlightGear to other OSS project, it is important not to compare apples and oranges from a manpower perspective. We don't have the manpower here to establish a proper hierarchy like many of the more prominent projects (think Mozilla/Firefox). There's is TONS of management work happening behind the scenes, there's the Mozilla foundation and there are donations and so on - so Mozilla development is not only about coordinating a bunch of programmers who happen to develop a piece of software in their limited spare time, they have passed that point long ago.&lt;br /&gt;
&lt;br /&gt;
* If you are trying influence things: That's fine and a valid motivation. The thing is however, your ability to bring influence to the project is directly proportional to your impact and track record in the project. Actually, this isn't untypical for most OSS projects.We have people here who have been part of this project &amp;quot;just&amp;quot; voicing ideas, opinions and feature requests - some of whom have been involved for YEARS. While their feedback may be appreciated, their ability to direct things is still fairly limited - especially when compared to people who actually brought changes to FlightGear and who have a track record of doing so (sometimes even within a fairly short amount of time). You can find numerous examples actually, of people who have not been a member of this community for very long, but whose input and feedback is not just appreciated and respected but who are having a certain impact on the direction the project's heading. This is never because of &amp;quot;talking&amp;quot; or discussing things, it is because of DOING things.&lt;br /&gt;
&lt;br /&gt;
* FlightGear has never been in a better shape than it is in right now. In fact, admittedly FlightGear -as a software project- has actually been in a much worse shape for many years (for example: no forums, no wiki, no bug tracker, no git repository, no Gitorious merge requests, no build server, no formal release procedures etc)- still it somehow managed to stay around for over 10 years, despite all its deficiencies...&lt;br /&gt;
&lt;br /&gt;
=== Mods and forks (built on top of FG) ===&lt;br /&gt;
&lt;br /&gt;
* You're here asking for help from the FlightGear community. Help is hard to find in the first place (that's a fact, not a threat - there are calls for volunteers for many different projects that go unanswered).&lt;br /&gt;
&lt;br /&gt;
* You're planning to fork in a substantial way. The difference for me is - as long as what you're doing is FlightGear, I will care that my own development work (integrated weather system) runs fine on your system because I develop for FlightGear. If T4T is off to the degree that I'd have to download and compile different code, then I won't care that my weather system runs (it may or may not, dependent on what you do to the environment) - it has become your problem. Not because I am mean, but because I don't have the time and inclination to maintain compatibility to two different development branches. Whenever you develop using a different repository, you are 'them' and we are 'us'. We can be a friendly 'us' and 'them' as between FlightGear and JSBSim, we can exchange code, people can be part of both projects and maintain compatibility and work together - but the basic fact is that there is 'us' and 'them', and (probably like many others) I feel responsible for my part in 'us' but not for my part in 'them'.&lt;br /&gt;
&lt;br /&gt;
http://forum.flightgear.org/viewtopic.php?f=18&amp;amp;t=13298&amp;amp;p=134793&amp;amp;hilit=supply+developers#p134756&lt;br /&gt;
* Do you have a clear idea what your project involves?&lt;br /&gt;
* Do you have a clear idea what is already there?&lt;br /&gt;
* Will it help Flightgear?&lt;br /&gt;
* Will my voice be heard?&lt;br /&gt;
&lt;br /&gt;
* This community is far more likely to get involved if you involve it - and that'd mean opening your previous decisions for debate - than if you ask people to get involved with a project of your design which is no longer up to debate (speaking of resistance to change...). Again, that's your call, I'm not threatening in any way, I'm simply trying to explain how things (according to my best understanding) are and what the likely consequences of your project design are. I don't mean to imply that I or others would actively block you if you're not doing it 'the FlightGear way' and hold information back. I hope that is sufficiently clear.&lt;br /&gt;
&lt;br /&gt;
* We get to see new forum members posting interesting &amp;quot;project ideas&amp;quot; here every month, sometimes even several times per week. And we know from experience that &amp;quot;ripping FlightGear down to its core and rebuilding it&amp;quot; isn't going to happen that easily, it's not necessarily because of objection from the community - quite the contrary, sometimes people actually post ideas that everybody agrees would be great additions to FlightGear, ideas that would quite obviously involve tearing down some major subsystem and replacing it with something better.&lt;br /&gt;
&lt;br /&gt;
* Really, FlightGear is where it is now after 10+ years of ongoing development, many contributors (especially core developers) are long term contributors who have contributed to FlightGear for several years.&lt;br /&gt;
Still, FlightGear is a complex piece of software and there is probably not a single core developer who is familiar with ALL of FlightGear (features, code etc).&lt;br /&gt;
&lt;br /&gt;
* all long-term FlightGear users know for a fact that there is usually a short supply of C++ developers, knowing not only how to program in C++, but also familiar with 3D graphics, OpenGL/OSG programming and many other aspects that are important when creating/developing a simulator.&lt;br /&gt;
&lt;br /&gt;
* So we are really standing on the shoulders of giants here, because we are now -after 10+ years- in the position to create significant new features within the constraints of the FlightGear base package, without even touching the C++ source code at all - simply because FlightGear has become so flexible and extensible. &lt;br /&gt;
&lt;br /&gt;
* So I guess you see where I am coming from: new people now asking to &amp;quot;tear down &amp;amp; rebuild&amp;quot; the whole thing, or people asking to introduce DRM-like measures into FlightGear (content protection) are of course not going to receive a very warm welcome&lt;br /&gt;
&lt;br /&gt;
* I consider what you want to do perfectly possible, but I advise you to rethink your strategy: your decision to build upon FlightGear to create a combat simulator illustrates an admirable degree of foresight and experience that many other people with similarly ambitious ideas lack, but announcing to &amp;quot;rip out parts&amp;quot; and rebuild the whole thing is very unlikely to happen any time soon.&lt;br /&gt;
&lt;br /&gt;
* And like I said before: this is not necessarily because we don't want to see this happen: you could probably talk to any core-developer and each of them could tell you that there are a number of parts that SHOULD be ripped out and replaced eventually (i.e. such as some legacy code), but more often than not, things are simply not as easy as they may appear at first glance. When you take a look at the mailing list archives or at the wiki, you'll certainly find plenty of things in the fgfs source code that everybody agrees should be replaced eventually.&lt;br /&gt;
&lt;br /&gt;
* And if people who have experience working with the code for a number of years refrain from making some important changes, you may want to re-consider your strategy.&lt;br /&gt;
&lt;br /&gt;
* After all, this is all &amp;quot;for fun&amp;quot; - it's an open source project, so it should be &amp;quot;fun&amp;quot; and enjoyable.&lt;br /&gt;
&lt;br /&gt;
* you'll have a better chance of getting your code upstream (if that really is your goal) by coordinating your plans with the fg core developers and asking for recommended paths to proceed. Getting your code contributed back is obviously a good idea because it will be much less of a maintenance burden for you guys if your changes become part of the mainline.&lt;br /&gt;
&lt;br /&gt;
* Ultimately, this being open source, you don't need the approval of anybody - as long as you obey the requirements of the GPL, but rest assured: it will be much easier to deal with the FlightGear community and to get help if you play it &amp;quot;nice&amp;quot; and this very help will be very much needed in the beginning.&lt;br /&gt;
&lt;br /&gt;
* Suggesting &amp;quot;drastic&amp;quot; changes is all neat and dandy, but after familiarizing yourself with FlightGear you'll probably see quickly that it doesn't really need drastic changes at all: We have witnessed this in the &amp;quot;Local Weather&amp;quot; project, you could say it now *optionally* replaces the old system, but to work properly it only needed a way to switch off the old code - which just involves setting a bunch of properties (variables) from a Nasal script. There was no need to completely remove the legacy code, it was just made optional by setting a switch at runtime. Similarly, the bombable script leverages hard-coded C++ code for instantiating AI models dynamically - but the objects are controlled from scripting space.&lt;br /&gt;
&lt;br /&gt;
* Today, with many infrastructure available for free or easy obtainable, forking a project has become easier than ever. You might end up in a position to fork Flightgear to support your own pet projects, perhaps your own little business based on said pet projects. The thing to keep in mind is that it is quite hard to keep up with the latest developments. Be prepared to spend lots of ours just to add all the new features being developed in the mainline. However, it can also be a very satisfying experience, especially if you base your own fork on a slightly older code version, and try as hard as you can to keep it stable. A successful fork is hard to achieve and maintain over time, but you may be in a situation where this is required. Do not hesitate to try it. Always bring your contributions to the attention of upstream. They might get merged and save you some trouble in the future.&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68400</id>
		<title>How the FlightGear project works</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68400"/>
		<updated>2014-02-28T01:16:43Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Some comments on elitism */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As FlightGear is becoming increasingly popular each year, we've been seeing a number of controversial discussions regarding the inner workings of the FlightGear project recently. Meanwhile, it is a well-known fact among long-time contributors that the FlightGear development model may seem irritating at first and it is known to cause some confusions or even frustration among new contributors who may already have experience contributing in other flight sim communities or even other OSS software. &lt;br /&gt;
So here's a collection of responses intended to clarify why things are set up this way. People interested in getting involved in the FlightGear community and contributing in one way or another, are encouraged to read this and understand how FlightGear has been able to be successful despite the fact that it does not have any commercial backing or a really structured development model.&lt;br /&gt;
&lt;br /&gt;
A more succinct version of this article can be found at: http://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=15267 (which serves as a really good introduction, people interested in more details, may still want to look at the text below).&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
As FlightGear is getting increasingly popular, we get to see new users coming to our forums and the mailing list every week. Many of them quite obviously very much interested in contributing to FlightGear in one way or another and getting involved in our community.&lt;br /&gt;
&lt;br /&gt;
This is something that all of us appreciate, because this is important to keep the project alive and kicking, so we do truly appreciate and welcome new community members, because this is an important part of enabling FlightGear to grow even more popular. &lt;br /&gt;
&lt;br /&gt;
There's such a huge range of ways to get involved in FlightGear, so that we truly appreciate everybody's skills. &lt;br /&gt;
&lt;br /&gt;
Please don't think that you cannot contribute to the project, because you cannot program or because you cannot design 3D models. Creating a flight simulator is a huge undertaking and there are many tasks which may seem less obvious to outsiders, such as helping maintain the wiki, moderating the forum, reporting spam, triaging the bug tracker, reviewing bug reports, helping fellow users and so on.&lt;br /&gt;
&lt;br /&gt;
== Irritations ==&lt;br /&gt;
However, sometimes we get to see some irritations among new community members and more seasoned members, because people may have certain expectations and assumptions on contributing to FlightGear. This has frequently caused some heated discussions, sometimes even flame wars on both, the devel mailing list and the forums.&lt;br /&gt;
&lt;br /&gt;
Apparently, this occurs frequently when dealing with people who already have experience developing software or contributing to open source software, be it professionally or as a hobby.&lt;br /&gt;
&lt;br /&gt;
Over the last couple of years, such discussions have taken place increasingly and they are obviously eating up considerable resources, given that spare time is our most precious resource to contribute to the project.&lt;br /&gt;
&lt;br /&gt;
It seems, some people are trying to apply their own experiences and assumptions to FlightGear as a software development project, which is sometimes causing grief and anger because FlightGear seems so different from anything they may know already.&lt;br /&gt;
&lt;br /&gt;
The best approach when encountering such problems is to take a step back, evaluate the goals and the means available, and come back with solutions or valid proposals. Several developers have taken long breaks, then returned to contribute again many features.&lt;br /&gt;
&lt;br /&gt;
== Passion ==&lt;br /&gt;
Honestly, we are all part of this community because we appreciate some things about this open source flight sim named FlightGear. So we are always sorry whenever our tone becomes inappropriate or even harsh.&lt;br /&gt;
We sincerely believe that you can contribute in more meaningful ways than you may currently perceive, without just voicing criticism. Obviously, it really is important to get along with people, regardless of differences in opinions.&lt;br /&gt;
&lt;br /&gt;
== Welcome to the club ==&lt;br /&gt;
To tell the truth: Most of us have been in that situation at some point. To most of us, the way FlightGear works as a project has been somewhat irritating and confusing in the beginning. So, we may actually share your initial confusion, because most of us went through the same process at some point.&lt;br /&gt;
&lt;br /&gt;
Honestly, you could search the forum and mailing list archives and probably find heated responses posted by even the most seasoned contributors. Some of us may have a track record of thousands of postings now and may seem like fairly knowledgeable contributors , but this is just a result of having been part of the community for a number of years, despite the deficiencies that we may have perceived initially. Frequently, some of our very first posts were also just voicing criticism.&lt;br /&gt;
&lt;br /&gt;
It isn't even unlikely that new community members are bringing up long-term issues that have been annoying most of us for quite a while already. We are probably more aware of these issues and their implications than you are. But just saying that something is &amp;quot;broken&amp;quot; is simply not the way to affect the situation for the better. Some of us have tried and failed doing exactly that. To no avail.&lt;br /&gt;
&lt;br /&gt;
Like you can see now, we've changed our strategy: We are trying to act like we want others to act, we are trying to be the change we'd like to see.&lt;br /&gt;
&lt;br /&gt;
Really, your situation may not be any different than ours: We've all been there. You need to be patient and absorb what we're telling you. We have no doubt that you'll get along with most of us, especially if you can demonstrate that you are actually listening and absorbing the advice we are handing out and applying your new knowledge.&lt;br /&gt;
&lt;br /&gt;
So this is an attempt at explaining things in a non-heated fashion, so that we can point aspiring contributors to this article explaining some things which may not be directly obvious, but which we feel are important to understand why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2012), this is largely copied together from various flame wars that have taken place in the last 12 months, so the format still needs some work, and things may seem pretty inconsistent and roundabout in some places.&lt;br /&gt;
&lt;br /&gt;
== Proposing changes ==&lt;br /&gt;
This is not to say that things are set in stone, but the current development model is the result of a certain evolution, and it's exactly this what has enabled FlightGear to survive and grow for over a decade already, without relying on commercial backing, funding organizations or formal project management. &lt;br /&gt;
&lt;br /&gt;
So, we would like to ask you to keep these factors in mind when proposing changes and when voicing recommendations, and when discussing such issues with fellow community members, publicly or privately.&lt;br /&gt;
&lt;br /&gt;
It requires patience to work together and to get something useful out. Sometimes you just have to live with a problem, work around it, and talk to people for a long time. It takes time, but I've experienced that you can convince core developers that your particular project is important enough to warrant attention and support. Everyone's time is limited, and it's all volunteer work. For example: If you complain that shadows are absent, it will change nothing. What you need to do is convince people that shadows would make a huge difference - possibly even with a proof of concept code.&lt;br /&gt;
&lt;br /&gt;
== Ideas getting ignored or rejected ==&lt;br /&gt;
Let's be honest: Not every suggestion made in the forum or on the devel list is good. While no one deserves to be belittled, a fair share of suggestions deserve to be ignored (unless you feel you are entitled to 30 minutes time from, say, a 3d rendering specialist who explains to you in detail why your idea really doesn't work in non-technical terms). &lt;br /&gt;
&lt;br /&gt;
There are many questions asked where the answer can be found in the Wiki with a short search. There are suggestions being made which even on first glance are impossible in practice. It's not the developer's job to deal with these things - it's your job as a forum user to do so. And not every rejection needs to be taken as personal grievance carried around for the next years - sometimes one just has to allow for the possibility that one has been wrong.&lt;br /&gt;
&lt;br /&gt;
Often, it does require a certain amount of background knowledge to truly understand why a certain idea or feature cannot be implemented. New users, and even new developers are likely to lack this knowledge. You need to be somewhat familiar with the code bases involved in order to understand some things.&lt;br /&gt;
&lt;br /&gt;
Since I work on FlightGear, I have suggested a lot of things - about 10% of which have been reacted on. To give you a current example: I've noticed that models from Nasal load way slower than needed, and I've asked that someone looks into it. I have not expected that somebody immediately jumps on it and spends 10 hours of his time tracking what is going on and delivers a detailed report in non-technical terms later. It has taken a few months and posting several examples to convince people that what I see is real. Then somebody looked at it and traced it to the (non)-existence of the osg texture cache. Now, people are debating the pros and cons of activating the texture cache by default, because it might affect stability and memory usage in an unwanted way - and I don't know if it will eventually be there.&lt;br /&gt;
&lt;br /&gt;
I have no problem with that - neither with convincing people that my suggestion is worth looking into, nor with the fact that other issues I have not thought of need to be taken into account. But it seems a lot of people in the forum expect that because they suggest something, someone will take it very seriously and act quickly and are then disappointed when this isn't actually the case.&lt;br /&gt;
&lt;br /&gt;
Coming from the other side, having worked on a problem I often know that a particular thing suggested cannot be done easily. If I have the time, I can take 20 minutes to explain why. Sometimes I don't have the time, then I just write a small sentence indicating why it doesn't work. Probably then somebody feels ignored. Can't help it - if I'd try to take the time, my 3 year old daughter would feel ignored, and she needs my attention more.&lt;br /&gt;
&lt;br /&gt;
I just lack any sign from the user community that they're willing to accept that a suggestion or feedback can in fact be dismissed, and that a developer's time to explain why a suggestion cannot be followed is also not unlimited. I have no problem with the users providing 50% of an opinion where the project should go - as long as they don't expect that that opinion necessarily translates into a decision.&lt;br /&gt;
&lt;br /&gt;
Sometimes rejecting new ideas can be painful to contributors who had spent a considerable amount of time researching and implementing features. Some new ideas have been the seeds of a similar implementation by the more seasoned coders. In any case, it is always best to evaluate the pain/gain benefit, and to keep older solutions to problems rather than having a half-way semi-realistic solution. Ideas tend to get the proper recognition in time, if they are beneficial, or are quickly forgotten if they are not worthy. Keep in mind to do this for fun, and always attack the idea, not the person, to keep things calm.&lt;br /&gt;
&lt;br /&gt;
== Lack of feedback ==&lt;br /&gt;
Lack of feedback - same thing. Go out into the forum, download interesting addons, talk to the people who provide them, let them know what you think. If you want feedback for your own work, start by giving feedback to the work of others. That's how it works. And yes, lack of recognition is sometimes a problem. Basically, you have to do things because you want to, and you have to be enthusiastic enough to pull others along so that they can see and appreciate your vision of how things could be. Again, requires a lot of patience. I wish that many things here would be different. I wish people would collaborate on projects more often, instead of everyone developing his own pet project and half of them dying for lack of interest. But I've come to realize that it's not going to happen because I wish it to happen - things are only happening my way if I slowly work towards it, talk to people an unholy amount of time and try to convince them that I am serious and have a case. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And to people who have stated (rightly or wrongly) that they don't feel the core developers are active enough in the forums:&lt;br /&gt;
&lt;br /&gt;
When asking on the devel list why people keep the mailing list separate from the forum, the response I got was along the lines of 'We like to exchange information, and in the Forum we get to hear only noise - petty complaints, lazy questions and so on - so we stay where the information relevant for development flows'.&lt;br /&gt;
&lt;br /&gt;
So, it goes two ways (I have been saying this before, haven't I?) - the probability that people will listen to what you have to say increases if you can convince people that they take you seriously.&lt;br /&gt;
&lt;br /&gt;
When I started to write that I want to rewrite an integrated weather system, pretty much no one took me seriously because it's a large chunk of work and you need to know what you're doing, and, face it, there's a lot of noise being made about what people will do who drop it later after a week. After I had written a working demonstration, people started to believe that I know what I'm talking about. Sometimes that's what it takes.&lt;br /&gt;
&lt;br /&gt;
From the other perspective, I would do the same. If somebody tells me he's going to implement volume rendering for clouds, I'd simply say 'Go ahead, I don't think it can be done.' Once he demonstrates to me that it can be done, I'd be willing to work with him. That makes a lot of sense, because the amount of ideas that can be realized and have a person behind them who is willing to see it through is a tiny fraction of the amount of ideas being presented - so it pays to focus on those who have a shot at success.&lt;br /&gt;
&lt;br /&gt;
So, I'd like to see some appreciation for the fact that there is no a priori right to be taken seriously, no matter what you say, but that this is something you need to work on. I also think that if the forum would offer a lot of high-quality development related discussions then you'd see much more active core developers here.&lt;br /&gt;
&lt;br /&gt;
Sometimes, there is a rift between new people and older members, simply because the latter expect all things to go through the proper channels and procedures. Unfortunately, since these are hardly policy, some prior research on the best communication channels and the best people to talk to in person can be valuable and time saving.&lt;br /&gt;
&lt;br /&gt;
== Users vs. contributors ==&lt;br /&gt;
We have here two groups of persons (with blurry boundaries): The first group takes something for free, which is a flight sim which you download from servers for which someone probably pays real money. The second group gives something, which is their time to create the simulation.&lt;br /&gt;
&lt;br /&gt;
You'd expect in the real world that if I give you something for free, that this earns me your gratitude. But this is the internet - so instead of gratitude, you somehow assume that in addition to giving you something, I am also expected to care about what you want, and it disturbs you that I don't really care for people who take for free and ask for more, but that I care for those who take and are prepared to give in return.&lt;br /&gt;
&lt;br /&gt;
On the other hand, a 'user' in your concept of course is supposed to be entitled to not only acquire FlightGear, but also get support in the forum and should also have a voice ( in what is done for the project (by others), and for this he's expected to do what in return? Nothing.&lt;br /&gt;
&lt;br /&gt;
If it disturbs you that I don't share this sentiment, then so be it, but let me be very clear: I have every sympathy for people who come here and offer to return some (whatever small) contribution back for getting FlightGear. I get angry when I see their contributions rejected for opaque reasons, when I see disparaging comments made that this is 'merely modelling' or 'just Nasal', when I see someone being discouraged from honestly trying to contribute. I have also sympathy for people who take FlightGear, enjoy using it but don't want to contribute and still ask politely for some help in the Forum.&lt;br /&gt;
&lt;br /&gt;
I just have no sympathy for people who take, are not prepared to do any work, but feel entitled to say how others should do their job and issue demands for features, aircraft, documentation, whatever. You may call that elitism, I call that my sense of fairness.&lt;br /&gt;
&lt;br /&gt;
== Lack of Support and Backwards Compatibility ==&lt;br /&gt;
FlightGear is a volunteer effort and no one is paying several thousand dollars a year for software and related support each year. Since legacy support is expensive (IE. time/effort) one of the ways a project like FlightGear deals with this is to limit legacy support. If this were not the case then time/effort would be expended on legacy support that could be used for new features and bug fixes. Like most things there are trade offs involved. Which do you want - more advanced FlightGear and aircraft or better support for older versions? This is a common issue for open source software and most prefer to look forward rather than looking back.&lt;br /&gt;
&lt;br /&gt;
For JSBSim there been has incremental changes in almost every version of FlightGear. These changes did things like add features or change the way a specific feature acted. For example around FG 2.4 there where changes to the engine cooling code (to allow modelling of cooling systems with things like cowl flaps) and also to the nose/tail wheel steering code (to allow toggling between locked and swivelling steering wheels). Many aircraft are unaffected by these changes because they don't make use of the enhancements but some aircraft do use these enhancements. For example the JSBSim P-51D uses both of these features and it probably will not work correctly (IE. it will over heat/run cold or not have correct ground handling) if used with FG versions before 2.4. There is also the possibility that it will throw all kinds of error messages when used with an older version of FG but none of this has been tested at least by me. So it may be OK with a few missing features on 1.9.1 or it may fail totally. We simply do not know. If someone complains about the JSBSim P-51D not running correctly on FG 1.9.1 my reply is too bad you need to upgrade to 2.4 or later and get back to me if things aren't working after the upgrade. There may be other more recent features that other aircraft use/leverage that don't affect the P-51D so I think this is a significant issue.&lt;br /&gt;
&lt;br /&gt;
In addition, FlightGear itself has been a moving target with a constant stream of new features and enhancements some of which require changes to at least some aircraft.&lt;br /&gt;
&lt;br /&gt;
== Number of aircraft vs. quality of aircraft ==&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
One thing to consider when comparing real-world handling qualities versus simulated handling is the control devices. I use a Logitech Gamepad which is not ideal by any means, it serves my purposes and gives me acceptable handling capability. The biggest problem with it is the small throw of the sticks which makes them very touchy. Even if you have a full size control column, you lose a lot of fidelity due to the lack of control feedback as well as lack of &amp;quot;seat of your pants&amp;quot; feedback. Both the control throw and the feedback issues result in a great loss of fidelity which makes it impossible to control an aircraft in simulation anywhere near as well as the real thing. &lt;br /&gt;
&lt;br /&gt;
Taking the P-51 issue as an example; even if the FDM did closely emulate the real thing, the reaction time to correct for any divergent yaw on takeoff will be much slower than it would be in real life with more sensory cues. Once you do react, you can't react with the same accuracy as real life due to the lack of control feedback, so your inputs will tend to over correct the situation which in turn you will be slower to react to.&lt;br /&gt;
&lt;br /&gt;
This can obviously be corrected by making the FDMs less touchy than the real-world aircraft, but this then compromises reality. So it takes a bit of a balance.&lt;br /&gt;
First, let me say that there are HUGE fluctuations in the quality of FG flight dynamics models, and that I don't like all of them. This is why I specifically wrote which planes I use and asked which plane you've been flying. Some FDMs are pretty bad, but others (the Seneca-II for instance) are made by people who fly the real thing, yet others (the P-51D, the F-16) are done using a huge pile of available test data and have been tweaked literally for hundreds of hours to agree with the real performance and capabilities. It's these FDMs which I like and which I'm defending here.&lt;br /&gt;
&lt;br /&gt;
So, you ask why some posters are so enamoured with the FG FDMs. For once, because I know physics. When I do certain things, I know how the aerodynamics works out, and I expect to find that in the simulation. &lt;br /&gt;
&lt;br /&gt;
For two, I've been flying gliders for a while. I distinctly remember the feeling of making tiny not really conscious movements with the stick all the time to fly the thing. I want to have that experience reproduced by a flight sim, it's part of the feeling of immersion - and the top-end JSBSim models do that for me. Also, I want to _do_ something while flying, not just get my plane on rails and watch the scenery.&lt;br /&gt;
&lt;br /&gt;
Third, because I find it educational. I for instance happen to know that the F-104 Starfighter was pretty accident prone. Just 10 minutes flying around with the thing told me why - when the plane becomes unstable, what manoeuvres you can and can't do (I think the Starfighter is also one of these FDMs with plenty of real life experience used by the creator...). I find it interesting to explore how the SR-71 reaches Mach-3 and why it needs to do the funny 'dipsy' manoeuvre. I find it instructive to understand why one has to fly the Concorde by the book and how fuel consumption figures change if I don't. I want to understand how thrust vectoring can be used and how stable it is. I want to learn what's different about a helicopter. For all this, I need the real physics of flight simulated as faithfully as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the creator of several aircraft made for FlightGear including a heavily researched Velocity XL and an Edgley Optica, I can say the above observation is nonsense. Fly one of my planes and the controls won't do diddly under 30 knots unless a pilot's handbook or a pilot's report indicates they should. Even the worst flight models in the FlightGear world don't have fully effective controls while sitting still. As for inherent stability, my own efforts are easily trimmed at cruise speeds for relatively benign, hands-off flight to match the flight manual or pilot reports.&lt;br /&gt;
&lt;br /&gt;
Why are some so enamoured of FG flight models? I'll state what Thorsten wrote in another way. I'm not a licensed pilot, though I do have stick-time in several light planes. But I'll never fly in an Optica, and I'm very unlikely to ever fly in a Velocity or a Grumman Goose, and no sane airline is going to let me into the flight deck of an MD-80. By building these models, I can gain an understanding, an insight, and an experience with these aircraft that would otherwise be closed to me. I can know them in some ways that even a pilot might not know them. The closer the simulation matches the real aircraft, the closer my experience comes to that aircraft. I can't experience these planes unless they are correct in every detail that matters, and pursuing that correctness is a long journey, perhaps one without an end.&lt;br /&gt;
&lt;br /&gt;
Maybe I misunderstand the notion of options to make a plane harder or easier to fly. For me, the point is to simulate the aircraft. If the aircraft had functions or gadgets that facilitated making it harder or easier to fly, then fine, that's part of the simulation goal. But it's not the same as a game, where I can select EASY, NORMAL, HARD, or HURT ME PLENTY. There are many planes where someone like me has no business trying even the simulated version. And no real C172 or MD-80 has difficulty modes or configuration files.&lt;br /&gt;
&lt;br /&gt;
Are there &amp;quot;crappy&amp;quot; flight models in the FlightGear world? Sure. Plenty of them. Maybe most of them. But there are some darn nice ones, some made by pilots with hands-on experience, some with the feedback of pilots, and some by non-pilots using meticulous research. Many are simply nice modelling efforts, waiting for someone to come along and create a good flight model, or add systems simulation, or cockpit instruments, or some other contribution.&lt;br /&gt;
&lt;br /&gt;
In the MSFS world, the typical model is a commercial product, released as a complete and well-rounded package. In the FG world, few models are finished, complete efforts. Developers work on what they know and what interests them, and most are open to contribution from others. Few works are above improvement. The neat thing about the FlightGear environment isn't that it's free. It's that if you don't like some aspect, you're welcome to help refine it. You can learn to improve it yourself, or you can help by suggesting well-conceived, objective changes to the authors. Most will listen. And you just might learn something along the way that will surprise or enlighten you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By saying that users can easily tweak the FDM in FlightGear, I am not implying that the the flight models or the FG architecture are inherently defective. There are many FG aircraft with great FDMs, other are not so good. Those that aren't so good are usually because they are not completed as indicated by their production status. As with any software product in beta release, the users are free to provide feedback directly to the developer. As this is an open source project, that feedback is often in the from of contributing code/FDM enhancements directly to the author for incorporation into the model. With commercial flight sims, you are always seeing the polished product because they would not get away with selling an unpolished product. With FG we are not burdened by the need to make a profit or satisfy our customers. We ARE our customers so we only need to make ourselves happy 8) So with FG you get to see a preview in the form of a pre-production or alpha release. This gives the users an opportunity to provide feedback directly to the developers, and often this feedback can be incorporated into an updated version of the aircraft in a few days or less. This is not a remote possibility for a commercial sim. I think this is why those who use FG like it so much. We are not content to use something out of the box, we are far too picky!&lt;br /&gt;
&lt;br /&gt;
== Fictional Aircraft ==&lt;br /&gt;
FlightGear is developed by a community of volunteers from all over the world, we contribute in whatever way we see fit, if you disagree with the way FlightGear development is going, your best chance to affect it, is by starting contributing yourself. FlightGear could only progress so far without any commercial backing for over a decade, because of FlightGear contributors and their very passion for turning their own ideas into FlightGear features.&lt;br /&gt;
&lt;br /&gt;
FlightGear isn't only developed with a single role or purpose in mind, FlightGear is to be understood as a framework for developing new aviation related features, including fictional features. We have hundreds of &amp;quot;aircraft&amp;quot; and &amp;quot;vehicles&amp;quot; available in FlightGear, only a fraction of those are fictional, and most of the fictional ones are not even well-developed, you will surely be able to find other aircraft that you are interested in, see: http://www.flightgear.org/download/airc ... ilterable/&lt;br /&gt;
&lt;br /&gt;
So until you roll up your own sleeves, let's just appreciate the variety of aircraft and other features to be found in FlightGear, including the X-wing star fighter from Star Wars, Star Trek space shuttles and lots of other passionately developed 3D models, like the BlueBird for example&lt;br /&gt;
&lt;br /&gt;
FlightGear doesn't necessarily have a real &amp;quot;fictional side&amp;quot; - it's just that we all needed to get started somehow. Contributing a completely new aircraft is obviously difficult. Contributing to existing aircraft is useful, but it doesn't teach you all of the skills required to create an aircraft from scratch. So people who want to do a full aircraft, need to start with something simple and &amp;quot;fun&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So what new contributors often do, is creating &amp;quot;fun&amp;quot; vehicles to learn how FlightGear works.&lt;br /&gt;
&lt;br /&gt;
Aircraft like the ufo, ogeL, bluebird etc were usually created by people in their initial phase of becoming familiar with FG - for example, the ogeL was made by the same guy who ended up modelling the Seneca, one of our most-developed (and maintained!) GA aircraft in FlightGear: http://wiki.flightgear.org/Seneca&lt;br /&gt;
&lt;br /&gt;
s you can tell from looking at the wiki, the ogeL aircraft developer has not only become the developer and maintainer of the Seneca aircraft in FlightGear, but he also has become a FlightGear core developer writing C++ code and maintaining the autopilot system for example, and he also happens to be a CPL-IFR/ME rated pilot in real life, who owns the Seneca he modelled for FlightGear.&lt;br /&gt;
&lt;br /&gt;
Obviously, contributing to all these areas in FG takes time, a steep learning curve is an unfortunate but important part of it - rarely, do we see people who immediately start out with complex and well-developed aircraft, it's a process - and we all needed to get started at some point. Just because we contribute &amp;quot;playful&amp;quot; things to FG, doesn't necessarily mean that we are not interested in &amp;quot;realistic aviation&amp;quot; as you can see.&lt;br /&gt;
&lt;br /&gt;
You will notice that many long-term contributors actually have an aviation-related professional background, be it flying (commercial, private, ATPL), software development, maths, physics, GIS or whatever. Among the long-term contributors are people with PhDs, Masters, commercial pilot rating, PPL or retired military pilots, and even one test pilot...&lt;br /&gt;
Still, 3D modelling is a completely new skills, and needs to be learned from scratch - which applies especially to people who &amp;quot;only&amp;quot; have a real background in aviation, but not in computers and/or games.&lt;br /&gt;
&lt;br /&gt;
Creating the ogeL was obviously simple and fun, creating aircraft like the Seneca requires tons of skills, experience and expertise that you don't end up having &amp;quot;automatically&amp;quot;. And it requires tons of dedication and discipline.&lt;br /&gt;
&lt;br /&gt;
I hope that puts things a little into perspective.&lt;br /&gt;
&lt;br /&gt;
== You need development guidelines ==&lt;br /&gt;
You might have made general statements like 'There should be clear development guidelines', 'the project should not depend on a single person being around' or 'the developers should pay more attention to the users'. In theory, all these are beautiful - and who would object that these are all good things?&lt;br /&gt;
&lt;br /&gt;
The problem is that the reason that these things do not exist already have to do with how things are in practice. &lt;br /&gt;
&lt;br /&gt;
The consequence of developers paying more attention to what users want, rather than what they are interested in, and not being free to ignore suggestions is that a developer potentially is asked to work on something he personally dislikes, just because enough users want it. &lt;br /&gt;
&lt;br /&gt;
Who gets to decide what a relevant suggestion for the benefit of the project is and what a petty suggestion for the benefit of a single user is?&lt;br /&gt;
&lt;br /&gt;
Who gets to determine the guidelines and how - and what happens with people who don't want to follow? What happens if a developer doesn't want to code a feature even if 500 users signed a petition? What happens to a developer who belittles a contribution, and who enforces that and how? Once you start thinking these questions through, the moral high ground of the theoretical principles becomes a mud field of messiness and compromises.&lt;br /&gt;
&lt;br /&gt;
I've learned in the past year or so that FlightGear development is a messy place. It simply isn't structured in the clean and neat way I have in mind. Unfortunately, I've also come to realize that I am part of the mess - the way I work simply doesn't fit in with the equally clean and neat way others have in mind.&lt;br /&gt;
&lt;br /&gt;
== Telling volunteers what to do ==&lt;br /&gt;
Posted by MAKG:&lt;br /&gt;
&lt;br /&gt;
; Rule #1&lt;br /&gt;
: You can't tell volunteers to do anything. You can ask, but you have to motivate it if you want good and timely work, or any work at all.&lt;br /&gt;
&lt;br /&gt;
; Rule #2&lt;br /&gt;
: Volunteers may or may not be inexperienced -- it has to be evaluated and management is different for the two cases. Allow a lot of time for inexperienced developers.&lt;br /&gt;
&lt;br /&gt;
; Rule #3&lt;br /&gt;
: Let the volunteers learn something. You can tell them the right way to do something, and they may or may not listen. They are volunteers; let them do what they want even if it means redoing the work at a later time (example -- I had an undergrad student code an early telescope trajectory algorithm -- he wanted to numerically integrate rates because it was a whole lot simpler to derive; I explained that numerical stability would be much better with analytic positions. He coded rates, it was unstable, and he redid it as positions later. This was an extremely valuable lesson). Keep in mind that sometimes the volunteers are right...be prepared to learn something from them (the same student insisted on making a simulated sky, over my objections that it was unnecessary for the task at hand and time consuming -- and it turned out to be the single most valuable feature we have).&lt;br /&gt;
&lt;br /&gt;
; Rule #3A&lt;br /&gt;
: Volunteers may want to exceed their abilities. Let them unless it's far beyond their abilities and you can't tolerate a delay (if you're in that zone, reconsider whether a volunteer effort is really appropriate). They may need a lot of help, or their work may need to be redone, or they may not finish the work. This is part of the cost of a volunteer effort.&lt;br /&gt;
&lt;br /&gt;
; Rule #4&lt;br /&gt;
: BE GENTLE. These are volunteers. They won't do work you want/need if it's painful. Coax as needed, but nicely. Steer, don't push.&lt;br /&gt;
&lt;br /&gt;
; Rule #5&lt;br /&gt;
: Though management is necessarily loose with volunteers, it cannot be completely absent. There has to be a coherent vision coordinating the effort, or it will be unfocused and will not serve the needs at hand.&lt;br /&gt;
&lt;br /&gt;
Whether this is open source or not is irrelevant. It's a volunteer effort; there are many of those that don't have to do with software. Think Habitat for Humanity, for instance.&lt;br /&gt;
&lt;br /&gt;
=== Some comments on elitism ===&lt;br /&gt;
Every once in a while, people complain that they feel elitism is a major problem in the FlightGear project.&lt;br /&gt;
&lt;br /&gt;
The notion you may have in mind when you talk about 'elitism' is that everyone should be equal - applied to FlightGear, that everyone's opinion of how things should be heard and should matter about equally. In real life, that's how democracy works - everyone gets a say how to run a state. But there are many situations which do not work like this. Consider a shareholder's meeting - here influence is proportional to the investment. If I meet with 100 other shareholders, but I own 60% of the stock of a company, I alone get to decide what will happen. Or consider a scientific conference - here your influence is proportional to your expertise. You may have your favourite theory why Darwin was wrong, or why climate change is a fluke, but without some scientific merits, you won't be even admitted to the room, and it takes quite a bit more of reputation to get a talk.&lt;br /&gt;
&lt;br /&gt;
All these cases have nothing to do with elitism. In the first case (shareholder), the argument is fairness - if I take 10% of the risk of an enterprise and you take 1%, it is hardly fair that we should have the same voting rights. In the second case (science conference), the argument is efficiency - the amount of potential information is so huge that a careful filtering needs to be done in order to ensure that people spend their time processing relevant information - the scientific filter eliminates time-wasters up front (well, not all of them, as I can state from experience). You couldn't run either a shareholder's meeting or a science conference based on 'everyone is equal' - because while everyone is indeed equal in value as a human being, not everyone is equal in ability, expertise, or is equally involved in risk, work, ...- that's a fact, and to pretend otherwise doesn't help.&lt;br /&gt;
&lt;br /&gt;
You may call that elitism if you like, but my definition of elitism would be that a transfer takes place, i.e. that someone who owns 60% of the shares of a company starts to believe that he should not only get to say how the company is run, but also should get more influence in other areas outside his field of expertise, in other words, he starts to feel that his value as a human being is enhanced.&lt;br /&gt;
&lt;br /&gt;
Experience shows that it makes a lot of sense not to uphold the pretence that everyone is equal with respect to some property when this is in fact not the case. I've been observing internet language communities over the last 10 years where you have basically two classes of users - those who know the language in question, and those who ask questions as they are trying to learn. Almost without exception, communities which treated everyone equal did not work - the experienced users were annoyed at being interrupted in technical discussions, were told that everyone has the same right to enter a discussion, decided that they'd rather discuss in a place without interruptions, thus the communities were left with the users who bring only questions with no experts left to answer them, being unable to get answers they also left and the communities died. The communities which respected expertise worked - it's better to start as low-influence user in a forum and get your questions answered than to start as equal-influence user in a forum and not get your question answered.&lt;br /&gt;
&lt;br /&gt;
Perceived elitism is not a problem only for the Flightgear project, and the best way to avoid misjudging people is to make contact in a polite but ferm manner, expose yourself in a very matter-of-fact way, and keep it technical as much as possible. Always remember that with great power comes great responsibility, and if you get one day to be in a elite position, you might regret the old happy careless days.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is a meritocracy ==&lt;br /&gt;
FlightGear, as best as we have managed to understand the somewhat opaque workings in core development, is a meritocracy - your influence is proportional to the amount of work you do for the project. It's not closed, i.e. you can, if you invest a lot of work into the project, work yourself into a position where you have a lot of influence even starting today from zero.&lt;br /&gt;
&lt;br /&gt;
In general, that makes a lot of sense, basically because you can't vote what work volunteers should do later - or rather, you can, but it's not going to be done if the people volunteering for work don't like to do it, they'll just leave. &lt;br /&gt;
&lt;br /&gt;
In theory, I can spend 5 weeks of my spare time coding something I don't like, but why should I do that? Do you expect me to sit down and do something I dislike just because you (or other users) asked me to do it? Am I supposed to get satisfaction out of doing something for others, even if I don't like it? I don't know if there are people like that, if so, I've yet to meet them. My idea of the deal is: If somebody wants a feature I don't want to code, he can get my help to do it, he can get advice and a well-defined interface, he can get documentation - but that's about it.&lt;br /&gt;
&lt;br /&gt;
Question: Are you personally ready to work for FlightGear on something you dislike if enough users ask you for it? If you answer with yes, then the best way to proceed is that you poll users what they think you should do (within the limit of your abilities), and then do whatever is requested. &lt;br /&gt;
&lt;br /&gt;
There is a continuous transition - people who 'just ask questions' have less influence than people who write frequent feedback and maintain the wiki, then come possibly 3d modellers, Nasal coders, Terrain specialists and finally core developers. So, rather than seeing elitism, I see the chance that every user can in fact start with a small contribution and grow into the project - and that's what I'd like to see improved.&lt;br /&gt;
&lt;br /&gt;
They are different areas of expertise, to be a good 3d modeller and graphics expert is quite possibly as demanding as to be a good C++ programmer, Nasal coding isn't per see inferior, ... so why are they not equal?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason is, simply the dependency structure: FlightGear can run, live and be developed without detailed 3d models, but it can not run without C++ code. If tomorrow all C++ developers quit, that's quite possibly the end of FlightGear, if tomorrow all 3d modellers quit, that's the end of eye candy in FlightGear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's not particularly fair that this translates into the existing project structure, and in fact if you go through my posts here and on the devel list, you'll see that I continue to make the same point. As I said, can't all be fixed in a day... I don't have a particularly large influence either, all I can do is talk to people and ask for patience. You can read up what I wrote in the case of the Bo-105... Good work tends to be recognized eventually - be it modelling or coding. But there's no guarantee, sometimes you have to accept being frustrated, get up and try again. Or you walk because things are not perfect as they are, which is a pity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another thing I don't like is that I feel that the power which comes with having a lot of merits for the projects gets sometimes abused by people who behave in a way that would never be accepted from newcomers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And yet - it's a fine line between idealism and realism here - so suppose for a moment I had the power to do as I want with the project - what would I do? I feel that all users and contributors should be treated with some basic level of politeness. Assume someone violates that rule, but happens to be a core contributor. Idealism tells me that I need to enforce the rule, because everyone is equal in value as human being and deserves to be treated with respect - so quite likely the developer feels pissed off and leaves, creating a huge gap in the project (and, no kidding, there are people who are really important...) - in the end, no one benefits if the project collapses. So realism tells me to let things pass - it's better to mistreat one user than to kill the project and to make all users unhappy in the process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I don't think there's a simple answer to such problems - philosophy has been struggling with them for thousands of years, there hasn't so far emerged a clear preference between an ethics of means and an ethics of ends.&lt;br /&gt;
&lt;br /&gt;
So, perhaps a few folks can step back and see the bigger picture - and maybe share a vision: How would it be if contributing to FlightGear were as easy as contributing to Wikipedia - just what would, e.g. our scenery look like?&lt;br /&gt;
&lt;br /&gt;
And just how can we get there?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There will probably always be irreconcilable differences between those that _create_ a program, and those that _use_ a program. The extremely successful programs/environments are the ones where those that create can understand those that use, and those that use can understand those that create. Everyone here, in the long run, is really here for their own benefit, and until we all understand that, not much will change. Open source has it's downfalls. It doesn't have to please the majority, it doesn't need sales, it only has to please the person that created it. This doesn't mean that people are greedy or selfish. They have no problem sharing, but they don't need to _do_anything_for_you_, if they aren't interested in it.&lt;br /&gt;
&lt;br /&gt;
== You guys need some serious changes ==&lt;br /&gt;
You know, if I wanted to change the structure of a project for better, but would not have any real power (control over servers, commit rights, admin rights in the forum, ...), I'd do the following:&lt;br /&gt;
&lt;br /&gt;
First, I'd try to make sure I understand the situation as it is - not as it appears from my perspective, but also how it appears to others, of what nature the obstacles to change are and so on. Then I'd try to get to talk to some of the people who have the power to change things, and convince them that changing something would not just be better for me, but also be better for them - in fact be better for anyone around. In order to do so, I'd go as far as I can to meet them - talk their language, start describing things from their perspective, value their efforts - and then talk about that one can also see things from a different perspective. I'd do that because I want something - I want them to listen to me, so I want to make that as easy as possible. I'd also prepare a compelling and persuasive case - I'd try up front to sort genuine structural problems from things which are just one-time mistakes which can happen because people are not perfect, I'd sort important things from unimportant things and focus on the important things. Above all, I'd think about what I personally did wrong and what part of the problem I can fix - and how I should do it. And then I'd see if I can't convince anyone that there is merit in my perspective. In the process, I'd also try to find like-minded people who might help me achieve my goals.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is inconsistent and overly complicated ==&lt;br /&gt;
: the fact that it's overly complicated, lacks a single design or even feature set, defies any semblance of cohesion, daunts and confuses would-be contributors with equal severity, and thus produces a wide range of results quality from &amp;quot;embarrassing&amp;quot; to &amp;quot;ready-for-commercial-release&amp;quot; [http://forum.flightgear.org/viewtopic.php?f=14&amp;amp;t=20413#p186983]&lt;br /&gt;
&lt;br /&gt;
I don't see there's anything wrong with FG providing options - many of the features/options we have came into existence at different times, with different needs and requirements in mind. It is often only by accident that they start overlapping, sort of like various FDMs, scripting solutions, interfacing options or weather simulations.&lt;br /&gt;
&lt;br /&gt;
Admittedly, it's far from cohesive, but there's really nothing that we can do about it: It would require a coordinated effort, not just people telling others what to do, but others willing to listen.&lt;br /&gt;
The T4T/combat support situation isn't any different: we have flug's bombable addon as the most sophisticated option available in FG, and then we have various more or less &amp;quot;competitive&amp;quot; approaches, including T4T - yet most folks are not actively seeking collaboration, and doing very little to unify different concepts and approaches. Instead, the focus is often on differences rather than shared needs and common goals.&lt;br /&gt;
&lt;br /&gt;
Which is part of the reason why we have so many &amp;quot;unfinished&amp;quot; aircraft in comparison to other simulators. But like I said, there's really nothing that we, as a project, can do about it - short of adopting a commercial development model and a corresponding hierarchy.&lt;br /&gt;
&lt;br /&gt;
Absent that, we'll have to continue embracing the &amp;quot;Darwinian's development philosophy&amp;quot;, where everybody is free to contribute in whatever form they see fit, and it will be up to time to decide which features are going to stay, and which are going to be ripped out eventually.&lt;br /&gt;
&lt;br /&gt;
All of us have real life obligations, and very few of us are willing to accept additional duties/deadlines, no matter if it's aircraft development, core development, texturing, scenery work, wiki administration, forum administration or other &amp;quot;duties&amp;quot; - still, all this needs to be done by someone. &lt;br /&gt;
&lt;br /&gt;
Thus, it's those who roll up their own sleeves and spend their time contributing who get to influence the way FG development is heading, no matter if others agree or not - the only &amp;quot;hard currency&amp;quot; that counts in this project is time, i.e. the amount of time you have to contribute to the project&lt;br /&gt;
&lt;br /&gt;
Which is also the reason why we are seeing some really skilled and experienced contributors (with very little time on their hands...) being increasingly fed up with the way FG development is going recently, simply because there are quite a number of guys who may not be as experienced or skilled (i.e. not holding multiple CS degrees), but who may be able to spend more time contributing to the project in a different form, which -at least in part- also explains the sheer rate of growth of Nasal scripting in FlightGear, especially in comparison to relatively little new C++ code being committed to the core repository (the canvas system being the obvious exception here, but ironically the Canvas system additionally fosters scripting adoption even further, because base package developers can suddenly contribute in areas that were previously reserved for C++ developers only, such as the GUI, avionics and other fancy stuff).&lt;br /&gt;
&lt;br /&gt;
Honestly, we do have various accomplished core developers who do not particularly like the way Nasal is increasingly used, or the way the Canvas system is becoming a viable alternative over some hardcoded solutions - likewise, the weather system being 95% scripted is another annoyance to some - but at the end of the day, it's really just software evolution taking place: We have a decreasing number of experienced C++ developers, more and more becoming increasingly inactive - which is why the base package has been seeing so much development in comparison, and under these circumstances it is only natural for some core developers to recognize these issues and focus on providing building blocks and infrastructure to empower base package developers.&lt;br /&gt;
&lt;br /&gt;
It's not that your assessment is totally off, but we cannot really deal with it, unless we are telling people what to do - and as you may have witnessed before, that doesn't work out too well usually (remember the various T4T discussions). Thus, we need to accept what's brought to the table, no matter how inconsistent it is, and &amp;quot;absorb&amp;quot; it until something better comes along - even though that may mean that we'll end up with various different approaches in the meantime.&lt;br /&gt;
&lt;br /&gt;
Overall, the current situation isn't as bad as it used to be once&lt;br /&gt;
&lt;br /&gt;
== Is this program just for scientists and engineers? ==&lt;br /&gt;
No, but at least historically, the FlightGear project tends to attract certain types of people, many of them having some sort of academic background and some involvement or interest in aviation, i.e. in engineering, maths, physics, IT/computing or just real life pilots (hobby, professional, test pilots, retired).&lt;br /&gt;
&lt;br /&gt;
This applies especially to long-term contributors. Obviously, the people who contribute for a long time, get to shape the project more so than people who just happen to show up and post some ideas, features requests or bug reports.&lt;br /&gt;
In part, this is also due to the reputation they get to enjoy among fellow contributors, so their feedback has automatically also more weight, too.&lt;br /&gt;
&lt;br /&gt;
That might explain why many long-term contributors seem to have a fairly similar mindset, and why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
Some of these decisions are hard to understand without having a similar background, be it education, professional experience, families, real life obligations and such.&lt;br /&gt;
&lt;br /&gt;
== Community interactions ==&lt;br /&gt;
What can be done in a forum? First off, speak the same as if you were standing in front of the person you are talking to. If you _really_ do get up in their face when you speak, take the gold chains off for a minute and lose the Jersey accent. Respect goes a long way. Respect also goes _both_ ways. If you get an email from someone, respond to it, even if it's saying that &amp;quot;no, I can't help&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== The forum ===&lt;br /&gt;
Regarding helping others on the forum, thinking back on my early days with FG I'd have to say that what's obvious to a long-time FlightGear person isn't necessarily obvious to others. Sometimes people do search for answers first, but they may not be asking the right questions or have a deep enough knowledge of a system or community to proceed.&lt;br /&gt;
&lt;br /&gt;
New people might not think to look in the wiki (yes, there are links all over the place), or try and find an answer there first. Or maybe they did try and failed but didn't mention it. The wiki is a fine repository for some deep, often esoteric information, but the information is spotty and it's not the easiest place to hunt for a specific answer. And I can well remember when the information in the FG docs folder might as well have been written in Martian, given what I knew at the time. Heck, some of it is still Martian to me.&lt;br /&gt;
&lt;br /&gt;
It's usually obvious when people are asking questions in the forum thoughtfully, and when they are being casual, lazy, or discourteous. But sometimes it isn't so clear. There may be language barriers, or they may not know exactly how to ask, or they may simply be shy of a new environment. Like Someguy, I cringe when I see our good people tell somebody to go on an Easter-egg hunt for their answers. If it's tiresome, which is understandable, or one doesn't feel like helping, then it's wiser to simply not respond.&lt;br /&gt;
&lt;br /&gt;
What's at stake isn't getting person X to information Y. In 90%+ cases, it won't matter much-- person X will likely move on to some other hobby. But every now and then, that new person who asked that same tired-old question stays around and eventually becomes a Gijs, or a Heiko, or a Someguy, or a Melchior, or an Anders, or an Emmanuel, etc. The more open, friendly and patient we are, the more likely it is that we will retain these incredibly valuable sorts of people and keep moving forward.&lt;br /&gt;
&lt;br /&gt;
=== Coordination ===&lt;br /&gt;
It'd be really nice to have a better feeling for what is in the works and to know about what is going to change beforehand, rather than pulling the new version to learn that suddenly nothing works and spend the next week trying to figure out just what the change has been. Been there, done it, not pleasant.&lt;br /&gt;
&lt;br /&gt;
Some interface to exchange that kind of information would be really helpful, because some developments depend on how others are structured. In general, more talk between core C++ developers and other developers wouldn't be a bad thing.&lt;br /&gt;
&lt;br /&gt;
=== User facts of life ===&lt;br /&gt;
* Those that can't &amp;quot;create&amp;quot; an entire aircraft from a blank screen will have to wait for someone to build it. Don't post a blind &amp;quot;please build this&amp;quot; advertisement. My guess is that has never worked, and is borderline rude, asking for something without ever offering something. Accept your limitations, enjoy what we have.&lt;br /&gt;
* Don't believe that you are the _only_ user, and therefore represent everyone when you stand on your forum soapbox. _Everyone_ may not share your emotion.&lt;br /&gt;
* You have no power and control, and that's not a bad thing. You reap the benefits of many people that have come before you, and even those that may come after you.&lt;br /&gt;
&lt;br /&gt;
=== Developer facts of life ===&lt;br /&gt;
* You have power in what you do, and you have total control. This does affect your relationship to the person that is a &amp;quot;Non-developer&amp;quot;, whether you believe it or not. Choose to realize this, and be respectful.&lt;br /&gt;
* As a &amp;quot;developer&amp;quot;, you have been given power and control over something that really doesn't belong to only you. Without a board of directors to oversee your actions, realize that _do_ have a responsibility to provide your part of the &amp;quot;development&amp;quot;. You have to consciously choose to do this, for power and control are strong drugs.&lt;br /&gt;
* For the most part, there was someone before you, and their will be someone after you. Your actions will help ensure there is a place for someone after you. Remember the past. Don't be the reason that those before you chose to leave.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
There's simply no use in complaining that FlightGear isn't the community you'd like it to be - but there is use in working to make it the community you like it to be. It's just requires more effort &lt;br /&gt;
&lt;br /&gt;
May FlightGear always provide the beauty of flight to those that are bound by gravity.&lt;br /&gt;
&lt;br /&gt;
== To be discussed ==&lt;br /&gt;
* don't like this conceptual division between users and developers. A user is just a developer who hasn't popped the hood on their car yet.&lt;br /&gt;
&lt;br /&gt;
* most of us try to read the forum and the lists regularly, and we also try to respond to thoughtful topics&lt;br /&gt;
* I care if I can communicate with you on a professional level and if anything comes out of it in the end, or if I get the feeling I'm just wasting my time. That's all.&lt;br /&gt;
* Fact of the matter is - you're a potential contributor until proven otherwise, and as far as I am concerned, that gets you basic politeness, some measure of attention and some measure of help from my side, just like I would do for anyone else asking in the forum. If you want more (information, help, of my time, of Hooray's time ...), you should keep in mind that at this point you want something from the community, and so *you* need to adapt to the community, understand how it works and play by its rules - not the other way around. To say it very bluntly - FlightGear will survive without you if needed (as it will survive without me if needed).&lt;br /&gt;
* The time I am willing to spend trying to talk to you in the hope of any productive outcome is limited, it is about to be exhausted because I am feeling increasingly annoyed and see no real outcome except more talk. That may not have been your intention, but since it's brought to your attention that people start feeling annoyed, it might be a good idea to change the way you communicate. The chances that the devel community will adapt to your style of work are very slim indeed.&lt;br /&gt;
* Your lack of understanding here is your inability to acknowledge that people are aware of the alternatives and have consciously chosen to organize the project the way it is. Speaking for myself, I simply don't want it done your way and would go away the day things become organized your way, and several other core developers have expressed similar sentiments on the devel list.&lt;br /&gt;
* You assume that people basically have no clue and all you need to do is to point out how to make it better, but several people have considered the alternatives already and decided otherwise. This is what you need to understand.&lt;br /&gt;
&lt;br /&gt;
* Influence in the FlightGear community scales roughly with level of your contributions.&lt;br /&gt;
* Obviously, long-time contributors have a more sizeable track record of contributions which in turn gives their voice more weight&lt;br /&gt;
* Things are done the way the majority of contributors thinks they are best, not necessarily by some general consensus.&lt;br /&gt;
* unnecessary community interactions are eating up time&lt;br /&gt;
* people able to build FlightGear from source, who know C++, who have some spare time to contribute to FG are in very short supply&lt;br /&gt;
* developers getting involved in lengthy discussions cannot write code at the same time&lt;br /&gt;
&lt;br /&gt;
* Asking people to work on some particular problem that's bugging you, is generally alright - but you need to be willing to make your case and do that in a fairly compelling fashion. We have some really long-standing issues in FG, some of which most of us (including core devs) agree are IMPORTANT. This is a rare situation, but there really are things that pretty much everybody agrees are REALLY IMPORTANT to work on. So there's some very real competition and it won't be easy to talk people into doing something for you. &lt;br /&gt;
* Another important thing is staying focused: it isn't helpful to raise dozens of issues in a short amount of time if you cannot also solve them, regardless of how &amp;quot;real&amp;quot; and valid these issues might be.&lt;br /&gt;
* signal/noise ratio&lt;br /&gt;
&lt;br /&gt;
* Frequently, people keep emphasizing that this attitude is related to their  inability of fixing things themselves. Now, we are not going to suggest you learn how to build FG from source or how to program in C++. But rather, we suggest you focus on a handful of issues that truly annoy you, and where you think you could actually help and contribute solving them. That would surely help improving your signal/noise ratio, basically giving you opinions more weight here. There should be a fair share of opportunities to get involved in meaningful ways. We have a bunch of wiki resources to get people started contributing in various ways.&lt;br /&gt;
&lt;br /&gt;
* People asking for increased project management and more coordination may want to ask themselves how they would respond if they were exactly told what to work on, rather than just doing what they are interested in. Seriously, nobody is asking you to contribute within a particular domain at all, which is also a good thing and attracted many of the long-term contributors to the project in the first place.&lt;br /&gt;
&lt;br /&gt;
* When comparing FlightGear to other OSS project, it is important not to compare apples and oranges from a manpower perspective. We don't have the manpower here to establish a proper hierarchy like many of the more prominent projects (think Mozilla/Firefox). There's is TONS of management work happening behind the scenes, there's the Mozilla foundation and there are donations and so on - so Mozilla development is not only about coordinating a bunch of programmers who happen to develop a piece of software in their limited spare time, they have passed that point long ago.&lt;br /&gt;
&lt;br /&gt;
* If you are trying influence things: That's fine and a valid motivation. The thing is however, your ability to bring influence to the project is directly proportional to your impact and track record in the project. Actually, this isn't untypical for most OSS projects.We have people here who have been part of this project &amp;quot;just&amp;quot; voicing ideas, opinions and feature requests - some of whom have been involved for YEARS. While their feedback may be appreciated, their ability to direct things is still fairly limited - especially when compared to people who actually brought changes to FlightGear and who have a track record of doing so (sometimes even within a fairly short amount of time). You can find numerous examples actually, of people who have not been a member of this community for very long, but whose input and feedback is not just appreciated and respected but who are having a certain impact on the direction the project's heading. This is never because of &amp;quot;talking&amp;quot; or discussing things, it is because of DOING things.&lt;br /&gt;
&lt;br /&gt;
* FlightGear has never been in a better shape than it is in right now. In fact, admittedly FlightGear -as a software project- has actually been in a much worse shape for many years (for example: no forums, no wiki, no bug tracker, no git repository, no Gitorious merge requests, no build server, no formal release procedures etc)- still it somehow managed to stay around for over 10 years, despite all its deficiencies...&lt;br /&gt;
&lt;br /&gt;
=== Mods and forks (built on top of FG) ===&lt;br /&gt;
&lt;br /&gt;
* You're here asking for help from the FlightGear community. Help is hard to find in the first place (that's a fact, not a threat - there are calls for volunteers for many different projects that go unanswered).&lt;br /&gt;
&lt;br /&gt;
* You're planning to fork in a substantial way. The difference for me is - as long as what you're doing is FlightGear, I will care that my own development work (integrated weather system) runs fine on your system because I develop for FlightGear. If T4T is off to the degree that I'd have to download and compile different code, then I won't care that my weather system runs (it may or may not, dependent on what you do to the environment) - it has become your problem. Not because I am mean, but because I don't have the time and inclination to maintain compatibility to two different development branches. Whenever you develop using a different repository, you are 'them' and we are 'us'. We can be a friendly 'us' and 'them' as between FlightGear and JSBSim, we can exchange code, people can be part of both projects and maintain compatibility and work together - but the basic fact is that there is 'us' and 'them', and (probably like many others) I feel responsible for my part in 'us' but not for my part in 'them'.&lt;br /&gt;
&lt;br /&gt;
http://forum.flightgear.org/viewtopic.php?f=18&amp;amp;t=13298&amp;amp;p=134793&amp;amp;hilit=supply+developers#p134756&lt;br /&gt;
* Do you have a clear idea what your project involves?&lt;br /&gt;
* Do you have a clear idea what is already there?&lt;br /&gt;
* Will it help Flightgear?&lt;br /&gt;
* Will my voice be heard?&lt;br /&gt;
&lt;br /&gt;
* This community is far more likely to get involved if you involve it - and that'd mean opening your previous decisions for debate - than if you ask people to get involved with a project of your design which is no longer up to debate (speaking of resistance to change...). Again, that's your call, I'm not threatening in any way, I'm simply trying to explain how things (according to my best understanding) are and what the likely consequences of your project design are. I don't mean to imply that I or others would actively block you if you're not doing it 'the FlightGear way' and hold information back. I hope that is sufficiently clear.&lt;br /&gt;
&lt;br /&gt;
* We get to see new forum members posting interesting &amp;quot;project ideas&amp;quot; here every month, sometimes even several times per week. And we know from experience that &amp;quot;ripping FlightGear down to its core and rebuilding it&amp;quot; isn't going to happen that easily, it's not necessarily because of objection from the community - quite the contrary, sometimes people actually post ideas that everybody agrees would be great additions to FlightGear, ideas that would quite obviously involve tearing down some major subsystem and replacing it with something better.&lt;br /&gt;
&lt;br /&gt;
* Really, FlightGear is where it is now after 10+ years of ongoing development, many contributors (especially core developers) are long term contributors who have contributed to FlightGear for several years.&lt;br /&gt;
Still, FlightGear is a complex piece of software and there is probably not a single core developer who is familiar with ALL of FlightGear (features, code etc).&lt;br /&gt;
&lt;br /&gt;
* all long-term FlightGear users know for a fact that there is usually a short supply of C++ developers, knowing not only how to program in C++, but also familiar with 3D graphics, OpenGL/OSG programming and many other aspects that are important when creating/developing a simulator.&lt;br /&gt;
&lt;br /&gt;
* So we are really standing on the shoulders of giants here, because we are now -after 10+ years- in the position to create significant new features within the constraints of the FlightGear base package, without even touching the C++ source code at all - simply because FlightGear has become so flexible and extensible. &lt;br /&gt;
&lt;br /&gt;
* So I guess you see where I am coming from: new people now asking to &amp;quot;tear down &amp;amp; rebuild&amp;quot; the whole thing, or people asking to introduce DRM-like measures into FlightGear (content protection) are of course not going to receive a very warm welcome&lt;br /&gt;
&lt;br /&gt;
* I consider what you want to do perfectly possible, but I advise you to rethink your strategy: your decision to build upon FlightGear to create a combat simulator illustrates an admirable degree of foresight and experience that many other people with similarly ambitious ideas lack, but announcing to &amp;quot;rip out parts&amp;quot; and rebuild the whole thing is very unlikely to happen any time soon.&lt;br /&gt;
&lt;br /&gt;
* And like I said before: this is not necessarily because we don't want to see this happen: you could probably talk to any core-developer and each of them could tell you that there are a number of parts that SHOULD be ripped out and replaced eventually (i.e. such as some legacy code), but more often than not, things are simply not as easy as they may appear at first glance. When you take a look at the mailing list archives or at the wiki, you'll certainly find plenty of things in the fgfs source code that everybody agrees should be replaced eventually.&lt;br /&gt;
&lt;br /&gt;
* And if people who have experience working with the code for a number of years refrain from making some important changes, you may want to re-consider your strategy.&lt;br /&gt;
&lt;br /&gt;
* After all, this is all &amp;quot;for fun&amp;quot; - it's an open source project, so it should be &amp;quot;fun&amp;quot; and enjoyable.&lt;br /&gt;
&lt;br /&gt;
* you'll have a better chance of getting your code upstream (if that really is your goal) by coordinating your plans with the fg core developers and asking for recommended paths to proceed. Getting your code contributed back is obviously a good idea because it will be much less of a maintenance burden for you guys if your changes become part of the mainline.&lt;br /&gt;
&lt;br /&gt;
* Ultimately, this being open source, you don't need the approval of anybody - as long as you obey the requirements of the GPL, but rest assured: it will be much easier to deal with the FlightGear community and to get help if you play it &amp;quot;nice&amp;quot; and this very help will be very much needed in the beginning.&lt;br /&gt;
&lt;br /&gt;
* Suggesting &amp;quot;drastic&amp;quot; changes is all neat and dandy, but after familiarizing yourself with FlightGear you'll probably see quickly that it doesn't really need drastic changes at all: We have witnessed this in the &amp;quot;Local Weather&amp;quot; project, you could say it now *optionally* replaces the old system, but to work properly it only needed a way to switch off the old code - which just involves setting a bunch of properties (variables) from a Nasal script. There was no need to completely remove the legacy code, it was just made optional by setting a switch at runtime. Similarly, the bombable script leverages hard-coded C++ code for instantiating AI models dynamically - but the objects are controlled from scripting space.&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68399</id>
		<title>How the FlightGear project works</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68399"/>
		<updated>2014-02-28T01:12:39Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Lack of feedback */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As FlightGear is becoming increasingly popular each year, we've been seeing a number of controversial discussions regarding the inner workings of the FlightGear project recently. Meanwhile, it is a well-known fact among long-time contributors that the FlightGear development model may seem irritating at first and it is known to cause some confusions or even frustration among new contributors who may already have experience contributing in other flight sim communities or even other OSS software. &lt;br /&gt;
So here's a collection of responses intended to clarify why things are set up this way. People interested in getting involved in the FlightGear community and contributing in one way or another, are encouraged to read this and understand how FlightGear has been able to be successful despite the fact that it does not have any commercial backing or a really structured development model.&lt;br /&gt;
&lt;br /&gt;
A more succinct version of this article can be found at: http://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=15267 (which serves as a really good introduction, people interested in more details, may still want to look at the text below).&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
As FlightGear is getting increasingly popular, we get to see new users coming to our forums and the mailing list every week. Many of them quite obviously very much interested in contributing to FlightGear in one way or another and getting involved in our community.&lt;br /&gt;
&lt;br /&gt;
This is something that all of us appreciate, because this is important to keep the project alive and kicking, so we do truly appreciate and welcome new community members, because this is an important part of enabling FlightGear to grow even more popular. &lt;br /&gt;
&lt;br /&gt;
There's such a huge range of ways to get involved in FlightGear, so that we truly appreciate everybody's skills. &lt;br /&gt;
&lt;br /&gt;
Please don't think that you cannot contribute to the project, because you cannot program or because you cannot design 3D models. Creating a flight simulator is a huge undertaking and there are many tasks which may seem less obvious to outsiders, such as helping maintain the wiki, moderating the forum, reporting spam, triaging the bug tracker, reviewing bug reports, helping fellow users and so on.&lt;br /&gt;
&lt;br /&gt;
== Irritations ==&lt;br /&gt;
However, sometimes we get to see some irritations among new community members and more seasoned members, because people may have certain expectations and assumptions on contributing to FlightGear. This has frequently caused some heated discussions, sometimes even flame wars on both, the devel mailing list and the forums.&lt;br /&gt;
&lt;br /&gt;
Apparently, this occurs frequently when dealing with people who already have experience developing software or contributing to open source software, be it professionally or as a hobby.&lt;br /&gt;
&lt;br /&gt;
Over the last couple of years, such discussions have taken place increasingly and they are obviously eating up considerable resources, given that spare time is our most precious resource to contribute to the project.&lt;br /&gt;
&lt;br /&gt;
It seems, some people are trying to apply their own experiences and assumptions to FlightGear as a software development project, which is sometimes causing grief and anger because FlightGear seems so different from anything they may know already.&lt;br /&gt;
&lt;br /&gt;
The best approach when encountering such problems is to take a step back, evaluate the goals and the means available, and come back with solutions or valid proposals. Several developers have taken long breaks, then returned to contribute again many features.&lt;br /&gt;
&lt;br /&gt;
== Passion ==&lt;br /&gt;
Honestly, we are all part of this community because we appreciate some things about this open source flight sim named FlightGear. So we are always sorry whenever our tone becomes inappropriate or even harsh.&lt;br /&gt;
We sincerely believe that you can contribute in more meaningful ways than you may currently perceive, without just voicing criticism. Obviously, it really is important to get along with people, regardless of differences in opinions.&lt;br /&gt;
&lt;br /&gt;
== Welcome to the club ==&lt;br /&gt;
To tell the truth: Most of us have been in that situation at some point. To most of us, the way FlightGear works as a project has been somewhat irritating and confusing in the beginning. So, we may actually share your initial confusion, because most of us went through the same process at some point.&lt;br /&gt;
&lt;br /&gt;
Honestly, you could search the forum and mailing list archives and probably find heated responses posted by even the most seasoned contributors. Some of us may have a track record of thousands of postings now and may seem like fairly knowledgeable contributors , but this is just a result of having been part of the community for a number of years, despite the deficiencies that we may have perceived initially. Frequently, some of our very first posts were also just voicing criticism.&lt;br /&gt;
&lt;br /&gt;
It isn't even unlikely that new community members are bringing up long-term issues that have been annoying most of us for quite a while already. We are probably more aware of these issues and their implications than you are. But just saying that something is &amp;quot;broken&amp;quot; is simply not the way to affect the situation for the better. Some of us have tried and failed doing exactly that. To no avail.&lt;br /&gt;
&lt;br /&gt;
Like you can see now, we've changed our strategy: We are trying to act like we want others to act, we are trying to be the change we'd like to see.&lt;br /&gt;
&lt;br /&gt;
Really, your situation may not be any different than ours: We've all been there. You need to be patient and absorb what we're telling you. We have no doubt that you'll get along with most of us, especially if you can demonstrate that you are actually listening and absorbing the advice we are handing out and applying your new knowledge.&lt;br /&gt;
&lt;br /&gt;
So this is an attempt at explaining things in a non-heated fashion, so that we can point aspiring contributors to this article explaining some things which may not be directly obvious, but which we feel are important to understand why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2012), this is largely copied together from various flame wars that have taken place in the last 12 months, so the format still needs some work, and things may seem pretty inconsistent and roundabout in some places.&lt;br /&gt;
&lt;br /&gt;
== Proposing changes ==&lt;br /&gt;
This is not to say that things are set in stone, but the current development model is the result of a certain evolution, and it's exactly this what has enabled FlightGear to survive and grow for over a decade already, without relying on commercial backing, funding organizations or formal project management. &lt;br /&gt;
&lt;br /&gt;
So, we would like to ask you to keep these factors in mind when proposing changes and when voicing recommendations, and when discussing such issues with fellow community members, publicly or privately.&lt;br /&gt;
&lt;br /&gt;
It requires patience to work together and to get something useful out. Sometimes you just have to live with a problem, work around it, and talk to people for a long time. It takes time, but I've experienced that you can convince core developers that your particular project is important enough to warrant attention and support. Everyone's time is limited, and it's all volunteer work. For example: If you complain that shadows are absent, it will change nothing. What you need to do is convince people that shadows would make a huge difference - possibly even with a proof of concept code.&lt;br /&gt;
&lt;br /&gt;
== Ideas getting ignored or rejected ==&lt;br /&gt;
Let's be honest: Not every suggestion made in the forum or on the devel list is good. While no one deserves to be belittled, a fair share of suggestions deserve to be ignored (unless you feel you are entitled to 30 minutes time from, say, a 3d rendering specialist who explains to you in detail why your idea really doesn't work in non-technical terms). &lt;br /&gt;
&lt;br /&gt;
There are many questions asked where the answer can be found in the Wiki with a short search. There are suggestions being made which even on first glance are impossible in practice. It's not the developer's job to deal with these things - it's your job as a forum user to do so. And not every rejection needs to be taken as personal grievance carried around for the next years - sometimes one just has to allow for the possibility that one has been wrong.&lt;br /&gt;
&lt;br /&gt;
Often, it does require a certain amount of background knowledge to truly understand why a certain idea or feature cannot be implemented. New users, and even new developers are likely to lack this knowledge. You need to be somewhat familiar with the code bases involved in order to understand some things.&lt;br /&gt;
&lt;br /&gt;
Since I work on FlightGear, I have suggested a lot of things - about 10% of which have been reacted on. To give you a current example: I've noticed that models from Nasal load way slower than needed, and I've asked that someone looks into it. I have not expected that somebody immediately jumps on it and spends 10 hours of his time tracking what is going on and delivers a detailed report in non-technical terms later. It has taken a few months and posting several examples to convince people that what I see is real. Then somebody looked at it and traced it to the (non)-existence of the osg texture cache. Now, people are debating the pros and cons of activating the texture cache by default, because it might affect stability and memory usage in an unwanted way - and I don't know if it will eventually be there.&lt;br /&gt;
&lt;br /&gt;
I have no problem with that - neither with convincing people that my suggestion is worth looking into, nor with the fact that other issues I have not thought of need to be taken into account. But it seems a lot of people in the forum expect that because they suggest something, someone will take it very seriously and act quickly and are then disappointed when this isn't actually the case.&lt;br /&gt;
&lt;br /&gt;
Coming from the other side, having worked on a problem I often know that a particular thing suggested cannot be done easily. If I have the time, I can take 20 minutes to explain why. Sometimes I don't have the time, then I just write a small sentence indicating why it doesn't work. Probably then somebody feels ignored. Can't help it - if I'd try to take the time, my 3 year old daughter would feel ignored, and she needs my attention more.&lt;br /&gt;
&lt;br /&gt;
I just lack any sign from the user community that they're willing to accept that a suggestion or feedback can in fact be dismissed, and that a developer's time to explain why a suggestion cannot be followed is also not unlimited. I have no problem with the users providing 50% of an opinion where the project should go - as long as they don't expect that that opinion necessarily translates into a decision.&lt;br /&gt;
&lt;br /&gt;
Sometimes rejecting new ideas can be painful to contributors who had spent a considerable amount of time researching and implementing features. Some new ideas have been the seeds of a similar implementation by the more seasoned coders. In any case, it is always best to evaluate the pain/gain benefit, and to keep older solutions to problems rather than having a half-way semi-realistic solution. Ideas tend to get the proper recognition in time, if they are beneficial, or are quickly forgotten if they are not worthy. Keep in mind to do this for fun, and always attack the idea, not the person, to keep things calm.&lt;br /&gt;
&lt;br /&gt;
== Lack of feedback ==&lt;br /&gt;
Lack of feedback - same thing. Go out into the forum, download interesting addons, talk to the people who provide them, let them know what you think. If you want feedback for your own work, start by giving feedback to the work of others. That's how it works. And yes, lack of recognition is sometimes a problem. Basically, you have to do things because you want to, and you have to be enthusiastic enough to pull others along so that they can see and appreciate your vision of how things could be. Again, requires a lot of patience. I wish that many things here would be different. I wish people would collaborate on projects more often, instead of everyone developing his own pet project and half of them dying for lack of interest. But I've come to realize that it's not going to happen because I wish it to happen - things are only happening my way if I slowly work towards it, talk to people an unholy amount of time and try to convince them that I am serious and have a case. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And to people who have stated (rightly or wrongly) that they don't feel the core developers are active enough in the forums:&lt;br /&gt;
&lt;br /&gt;
When asking on the devel list why people keep the mailing list separate from the forum, the response I got was along the lines of 'We like to exchange information, and in the Forum we get to hear only noise - petty complaints, lazy questions and so on - so we stay where the information relevant for development flows'.&lt;br /&gt;
&lt;br /&gt;
So, it goes two ways (I have been saying this before, haven't I?) - the probability that people will listen to what you have to say increases if you can convince people that they take you seriously.&lt;br /&gt;
&lt;br /&gt;
When I started to write that I want to rewrite an integrated weather system, pretty much no one took me seriously because it's a large chunk of work and you need to know what you're doing, and, face it, there's a lot of noise being made about what people will do who drop it later after a week. After I had written a working demonstration, people started to believe that I know what I'm talking about. Sometimes that's what it takes.&lt;br /&gt;
&lt;br /&gt;
From the other perspective, I would do the same. If somebody tells me he's going to implement volume rendering for clouds, I'd simply say 'Go ahead, I don't think it can be done.' Once he demonstrates to me that it can be done, I'd be willing to work with him. That makes a lot of sense, because the amount of ideas that can be realized and have a person behind them who is willing to see it through is a tiny fraction of the amount of ideas being presented - so it pays to focus on those who have a shot at success.&lt;br /&gt;
&lt;br /&gt;
So, I'd like to see some appreciation for the fact that there is no a priori right to be taken seriously, no matter what you say, but that this is something you need to work on. I also think that if the forum would offer a lot of high-quality development related discussions then you'd see much more active core developers here.&lt;br /&gt;
&lt;br /&gt;
Sometimes, there is a rift between new people and older members, simply because the latter expect all things to go through the proper channels and procedures. Unfortunately, since these are hardly policy, some prior research on the best communication channels and the best people to talk to in person can be valuable and time saving.&lt;br /&gt;
&lt;br /&gt;
== Users vs. contributors ==&lt;br /&gt;
We have here two groups of persons (with blurry boundaries): The first group takes something for free, which is a flight sim which you download from servers for which someone probably pays real money. The second group gives something, which is their time to create the simulation.&lt;br /&gt;
&lt;br /&gt;
You'd expect in the real world that if I give you something for free, that this earns me your gratitude. But this is the internet - so instead of gratitude, you somehow assume that in addition to giving you something, I am also expected to care about what you want, and it disturbs you that I don't really care for people who take for free and ask for more, but that I care for those who take and are prepared to give in return.&lt;br /&gt;
&lt;br /&gt;
On the other hand, a 'user' in your concept of course is supposed to be entitled to not only acquire FlightGear, but also get support in the forum and should also have a voice ( in what is done for the project (by others), and for this he's expected to do what in return? Nothing.&lt;br /&gt;
&lt;br /&gt;
If it disturbs you that I don't share this sentiment, then so be it, but let me be very clear: I have every sympathy for people who come here and offer to return some (whatever small) contribution back for getting FlightGear. I get angry when I see their contributions rejected for opaque reasons, when I see disparaging comments made that this is 'merely modelling' or 'just Nasal', when I see someone being discouraged from honestly trying to contribute. I have also sympathy for people who take FlightGear, enjoy using it but don't want to contribute and still ask politely for some help in the Forum.&lt;br /&gt;
&lt;br /&gt;
I just have no sympathy for people who take, are not prepared to do any work, but feel entitled to say how others should do their job and issue demands for features, aircraft, documentation, whatever. You may call that elitism, I call that my sense of fairness.&lt;br /&gt;
&lt;br /&gt;
== Lack of Support and Backwards Compatibility ==&lt;br /&gt;
FlightGear is a volunteer effort and no one is paying several thousand dollars a year for software and related support each year. Since legacy support is expensive (IE. time/effort) one of the ways a project like FlightGear deals with this is to limit legacy support. If this were not the case then time/effort would be expended on legacy support that could be used for new features and bug fixes. Like most things there are trade offs involved. Which do you want - more advanced FlightGear and aircraft or better support for older versions? This is a common issue for open source software and most prefer to look forward rather than looking back.&lt;br /&gt;
&lt;br /&gt;
For JSBSim there been has incremental changes in almost every version of FlightGear. These changes did things like add features or change the way a specific feature acted. For example around FG 2.4 there where changes to the engine cooling code (to allow modelling of cooling systems with things like cowl flaps) and also to the nose/tail wheel steering code (to allow toggling between locked and swivelling steering wheels). Many aircraft are unaffected by these changes because they don't make use of the enhancements but some aircraft do use these enhancements. For example the JSBSim P-51D uses both of these features and it probably will not work correctly (IE. it will over heat/run cold or not have correct ground handling) if used with FG versions before 2.4. There is also the possibility that it will throw all kinds of error messages when used with an older version of FG but none of this has been tested at least by me. So it may be OK with a few missing features on 1.9.1 or it may fail totally. We simply do not know. If someone complains about the JSBSim P-51D not running correctly on FG 1.9.1 my reply is too bad you need to upgrade to 2.4 or later and get back to me if things aren't working after the upgrade. There may be other more recent features that other aircraft use/leverage that don't affect the P-51D so I think this is a significant issue.&lt;br /&gt;
&lt;br /&gt;
In addition, FlightGear itself has been a moving target with a constant stream of new features and enhancements some of which require changes to at least some aircraft.&lt;br /&gt;
&lt;br /&gt;
== Number of aircraft vs. quality of aircraft ==&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
One thing to consider when comparing real-world handling qualities versus simulated handling is the control devices. I use a Logitech Gamepad which is not ideal by any means, it serves my purposes and gives me acceptable handling capability. The biggest problem with it is the small throw of the sticks which makes them very touchy. Even if you have a full size control column, you lose a lot of fidelity due to the lack of control feedback as well as lack of &amp;quot;seat of your pants&amp;quot; feedback. Both the control throw and the feedback issues result in a great loss of fidelity which makes it impossible to control an aircraft in simulation anywhere near as well as the real thing. &lt;br /&gt;
&lt;br /&gt;
Taking the P-51 issue as an example; even if the FDM did closely emulate the real thing, the reaction time to correct for any divergent yaw on takeoff will be much slower than it would be in real life with more sensory cues. Once you do react, you can't react with the same accuracy as real life due to the lack of control feedback, so your inputs will tend to over correct the situation which in turn you will be slower to react to.&lt;br /&gt;
&lt;br /&gt;
This can obviously be corrected by making the FDMs less touchy than the real-world aircraft, but this then compromises reality. So it takes a bit of a balance.&lt;br /&gt;
First, let me say that there are HUGE fluctuations in the quality of FG flight dynamics models, and that I don't like all of them. This is why I specifically wrote which planes I use and asked which plane you've been flying. Some FDMs are pretty bad, but others (the Seneca-II for instance) are made by people who fly the real thing, yet others (the P-51D, the F-16) are done using a huge pile of available test data and have been tweaked literally for hundreds of hours to agree with the real performance and capabilities. It's these FDMs which I like and which I'm defending here.&lt;br /&gt;
&lt;br /&gt;
So, you ask why some posters are so enamoured with the FG FDMs. For once, because I know physics. When I do certain things, I know how the aerodynamics works out, and I expect to find that in the simulation. &lt;br /&gt;
&lt;br /&gt;
For two, I've been flying gliders for a while. I distinctly remember the feeling of making tiny not really conscious movements with the stick all the time to fly the thing. I want to have that experience reproduced by a flight sim, it's part of the feeling of immersion - and the top-end JSBSim models do that for me. Also, I want to _do_ something while flying, not just get my plane on rails and watch the scenery.&lt;br /&gt;
&lt;br /&gt;
Third, because I find it educational. I for instance happen to know that the F-104 Starfighter was pretty accident prone. Just 10 minutes flying around with the thing told me why - when the plane becomes unstable, what manoeuvres you can and can't do (I think the Starfighter is also one of these FDMs with plenty of real life experience used by the creator...). I find it interesting to explore how the SR-71 reaches Mach-3 and why it needs to do the funny 'dipsy' manoeuvre. I find it instructive to understand why one has to fly the Concorde by the book and how fuel consumption figures change if I don't. I want to understand how thrust vectoring can be used and how stable it is. I want to learn what's different about a helicopter. For all this, I need the real physics of flight simulated as faithfully as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the creator of several aircraft made for FlightGear including a heavily researched Velocity XL and an Edgley Optica, I can say the above observation is nonsense. Fly one of my planes and the controls won't do diddly under 30 knots unless a pilot's handbook or a pilot's report indicates they should. Even the worst flight models in the FlightGear world don't have fully effective controls while sitting still. As for inherent stability, my own efforts are easily trimmed at cruise speeds for relatively benign, hands-off flight to match the flight manual or pilot reports.&lt;br /&gt;
&lt;br /&gt;
Why are some so enamoured of FG flight models? I'll state what Thorsten wrote in another way. I'm not a licensed pilot, though I do have stick-time in several light planes. But I'll never fly in an Optica, and I'm very unlikely to ever fly in a Velocity or a Grumman Goose, and no sane airline is going to let me into the flight deck of an MD-80. By building these models, I can gain an understanding, an insight, and an experience with these aircraft that would otherwise be closed to me. I can know them in some ways that even a pilot might not know them. The closer the simulation matches the real aircraft, the closer my experience comes to that aircraft. I can't experience these planes unless they are correct in every detail that matters, and pursuing that correctness is a long journey, perhaps one without an end.&lt;br /&gt;
&lt;br /&gt;
Maybe I misunderstand the notion of options to make a plane harder or easier to fly. For me, the point is to simulate the aircraft. If the aircraft had functions or gadgets that facilitated making it harder or easier to fly, then fine, that's part of the simulation goal. But it's not the same as a game, where I can select EASY, NORMAL, HARD, or HURT ME PLENTY. There are many planes where someone like me has no business trying even the simulated version. And no real C172 or MD-80 has difficulty modes or configuration files.&lt;br /&gt;
&lt;br /&gt;
Are there &amp;quot;crappy&amp;quot; flight models in the FlightGear world? Sure. Plenty of them. Maybe most of them. But there are some darn nice ones, some made by pilots with hands-on experience, some with the feedback of pilots, and some by non-pilots using meticulous research. Many are simply nice modelling efforts, waiting for someone to come along and create a good flight model, or add systems simulation, or cockpit instruments, or some other contribution.&lt;br /&gt;
&lt;br /&gt;
In the MSFS world, the typical model is a commercial product, released as a complete and well-rounded package. In the FG world, few models are finished, complete efforts. Developers work on what they know and what interests them, and most are open to contribution from others. Few works are above improvement. The neat thing about the FlightGear environment isn't that it's free. It's that if you don't like some aspect, you're welcome to help refine it. You can learn to improve it yourself, or you can help by suggesting well-conceived, objective changes to the authors. Most will listen. And you just might learn something along the way that will surprise or enlighten you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By saying that users can easily tweak the FDM in FlightGear, I am not implying that the the flight models or the FG architecture are inherently defective. There are many FG aircraft with great FDMs, other are not so good. Those that aren't so good are usually because they are not completed as indicated by their production status. As with any software product in beta release, the users are free to provide feedback directly to the developer. As this is an open source project, that feedback is often in the from of contributing code/FDM enhancements directly to the author for incorporation into the model. With commercial flight sims, you are always seeing the polished product because they would not get away with selling an unpolished product. With FG we are not burdened by the need to make a profit or satisfy our customers. We ARE our customers so we only need to make ourselves happy 8) So with FG you get to see a preview in the form of a pre-production or alpha release. This gives the users an opportunity to provide feedback directly to the developers, and often this feedback can be incorporated into an updated version of the aircraft in a few days or less. This is not a remote possibility for a commercial sim. I think this is why those who use FG like it so much. We are not content to use something out of the box, we are far too picky!&lt;br /&gt;
&lt;br /&gt;
== Fictional Aircraft ==&lt;br /&gt;
FlightGear is developed by a community of volunteers from all over the world, we contribute in whatever way we see fit, if you disagree with the way FlightGear development is going, your best chance to affect it, is by starting contributing yourself. FlightGear could only progress so far without any commercial backing for over a decade, because of FlightGear contributors and their very passion for turning their own ideas into FlightGear features.&lt;br /&gt;
&lt;br /&gt;
FlightGear isn't only developed with a single role or purpose in mind, FlightGear is to be understood as a framework for developing new aviation related features, including fictional features. We have hundreds of &amp;quot;aircraft&amp;quot; and &amp;quot;vehicles&amp;quot; available in FlightGear, only a fraction of those are fictional, and most of the fictional ones are not even well-developed, you will surely be able to find other aircraft that you are interested in, see: http://www.flightgear.org/download/airc ... ilterable/&lt;br /&gt;
&lt;br /&gt;
So until you roll up your own sleeves, let's just appreciate the variety of aircraft and other features to be found in FlightGear, including the X-wing star fighter from Star Wars, Star Trek space shuttles and lots of other passionately developed 3D models, like the BlueBird for example&lt;br /&gt;
&lt;br /&gt;
FlightGear doesn't necessarily have a real &amp;quot;fictional side&amp;quot; - it's just that we all needed to get started somehow. Contributing a completely new aircraft is obviously difficult. Contributing to existing aircraft is useful, but it doesn't teach you all of the skills required to create an aircraft from scratch. So people who want to do a full aircraft, need to start with something simple and &amp;quot;fun&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So what new contributors often do, is creating &amp;quot;fun&amp;quot; vehicles to learn how FlightGear works.&lt;br /&gt;
&lt;br /&gt;
Aircraft like the ufo, ogeL, bluebird etc were usually created by people in their initial phase of becoming familiar with FG - for example, the ogeL was made by the same guy who ended up modelling the Seneca, one of our most-developed (and maintained!) GA aircraft in FlightGear: http://wiki.flightgear.org/Seneca&lt;br /&gt;
&lt;br /&gt;
s you can tell from looking at the wiki, the ogeL aircraft developer has not only become the developer and maintainer of the Seneca aircraft in FlightGear, but he also has become a FlightGear core developer writing C++ code and maintaining the autopilot system for example, and he also happens to be a CPL-IFR/ME rated pilot in real life, who owns the Seneca he modelled for FlightGear.&lt;br /&gt;
&lt;br /&gt;
Obviously, contributing to all these areas in FG takes time, a steep learning curve is an unfortunate but important part of it - rarely, do we see people who immediately start out with complex and well-developed aircraft, it's a process - and we all needed to get started at some point. Just because we contribute &amp;quot;playful&amp;quot; things to FG, doesn't necessarily mean that we are not interested in &amp;quot;realistic aviation&amp;quot; as you can see.&lt;br /&gt;
&lt;br /&gt;
You will notice that many long-term contributors actually have an aviation-related professional background, be it flying (commercial, private, ATPL), software development, maths, physics, GIS or whatever. Among the long-term contributors are people with PhDs, Masters, commercial pilot rating, PPL or retired military pilots, and even one test pilot...&lt;br /&gt;
Still, 3D modelling is a completely new skills, and needs to be learned from scratch - which applies especially to people who &amp;quot;only&amp;quot; have a real background in aviation, but not in computers and/or games.&lt;br /&gt;
&lt;br /&gt;
Creating the ogeL was obviously simple and fun, creating aircraft like the Seneca requires tons of skills, experience and expertise that you don't end up having &amp;quot;automatically&amp;quot;. And it requires tons of dedication and discipline.&lt;br /&gt;
&lt;br /&gt;
I hope that puts things a little into perspective.&lt;br /&gt;
&lt;br /&gt;
== You need development guidelines ==&lt;br /&gt;
You might have made general statements like 'There should be clear development guidelines', 'the project should not depend on a single person being around' or 'the developers should pay more attention to the users'. In theory, all these are beautiful - and who would object that these are all good things?&lt;br /&gt;
&lt;br /&gt;
The problem is that the reason that these things do not exist already have to do with how things are in practice. &lt;br /&gt;
&lt;br /&gt;
The consequence of developers paying more attention to what users want, rather than what they are interested in, and not being free to ignore suggestions is that a developer potentially is asked to work on something he personally dislikes, just because enough users want it. &lt;br /&gt;
&lt;br /&gt;
Who gets to decide what a relevant suggestion for the benefit of the project is and what a petty suggestion for the benefit of a single user is?&lt;br /&gt;
&lt;br /&gt;
Who gets to determine the guidelines and how - and what happens with people who don't want to follow? What happens if a developer doesn't want to code a feature even if 500 users signed a petition? What happens to a developer who belittles a contribution, and who enforces that and how? Once you start thinking these questions through, the moral high ground of the theoretical principles becomes a mud field of messiness and compromises.&lt;br /&gt;
&lt;br /&gt;
I've learned in the past year or so that FlightGear development is a messy place. It simply isn't structured in the clean and neat way I have in mind. Unfortunately, I've also come to realize that I am part of the mess - the way I work simply doesn't fit in with the equally clean and neat way others have in mind.&lt;br /&gt;
&lt;br /&gt;
== Telling volunteers what to do ==&lt;br /&gt;
Posted by MAKG:&lt;br /&gt;
&lt;br /&gt;
; Rule #1&lt;br /&gt;
: You can't tell volunteers to do anything. You can ask, but you have to motivate it if you want good and timely work, or any work at all.&lt;br /&gt;
&lt;br /&gt;
; Rule #2&lt;br /&gt;
: Volunteers may or may not be inexperienced -- it has to be evaluated and management is different for the two cases. Allow a lot of time for inexperienced developers.&lt;br /&gt;
&lt;br /&gt;
; Rule #3&lt;br /&gt;
: Let the volunteers learn something. You can tell them the right way to do something, and they may or may not listen. They are volunteers; let them do what they want even if it means redoing the work at a later time (example -- I had an undergrad student code an early telescope trajectory algorithm -- he wanted to numerically integrate rates because it was a whole lot simpler to derive; I explained that numerical stability would be much better with analytic positions. He coded rates, it was unstable, and he redid it as positions later. This was an extremely valuable lesson). Keep in mind that sometimes the volunteers are right...be prepared to learn something from them (the same student insisted on making a simulated sky, over my objections that it was unnecessary for the task at hand and time consuming -- and it turned out to be the single most valuable feature we have).&lt;br /&gt;
&lt;br /&gt;
; Rule #3A&lt;br /&gt;
: Volunteers may want to exceed their abilities. Let them unless it's far beyond their abilities and you can't tolerate a delay (if you're in that zone, reconsider whether a volunteer effort is really appropriate). They may need a lot of help, or their work may need to be redone, or they may not finish the work. This is part of the cost of a volunteer effort.&lt;br /&gt;
&lt;br /&gt;
; Rule #4&lt;br /&gt;
: BE GENTLE. These are volunteers. They won't do work you want/need if it's painful. Coax as needed, but nicely. Steer, don't push.&lt;br /&gt;
&lt;br /&gt;
; Rule #5&lt;br /&gt;
: Though management is necessarily loose with volunteers, it cannot be completely absent. There has to be a coherent vision coordinating the effort, or it will be unfocused and will not serve the needs at hand.&lt;br /&gt;
&lt;br /&gt;
Whether this is open source or not is irrelevant. It's a volunteer effort; there are many of those that don't have to do with software. Think Habitat for Humanity, for instance.&lt;br /&gt;
&lt;br /&gt;
=== Some comments on elitism ===&lt;br /&gt;
Every once in a while, people complain that they feel elitism is a major problem in the FlightGear project.&lt;br /&gt;
&lt;br /&gt;
The notion you may have in mind when you talk about 'elitism' is that everyone should be equal - applied to FlightGear, that everyone's opinion of how things should be heard and should matter about equally. In real life, that's how democracy works - everyone gets a say how to run a state. But there are many situations which do not work like this. Consider a shareholder's meeting - here influence is proportional to the investment. If I meet with 100 other shareholders, but I own 60% of the stock of a company, I alone get to decide what will happen. Or consider a scientific conference - here your influence is proportional to your expertise. You may have your favourite theory why Darwin was wrong, or why climate change is a fluke, but without some scientific merits, you won't be even admitted to the room, and it takes quite a bit more of reputation to get a talk.&lt;br /&gt;
&lt;br /&gt;
All these cases have nothing to do with elitism. In the first case (shareholder), the argument is fairness - if I take 10% of the risk of an enterprise and you take 1%, it is hardly fair that we should have the same voting rights. In the second case (science conference), the argument is efficiency - the amount of potential information is so huge that a careful filtering needs to be done in order to ensure that people spend their time processing relevant information - the scientific filter eliminates time-wasters up front (well, not all of them, as I can state from experience). You couldn't run either a shareholder's meeting or a science conference based on 'everyone is equal' - because while everyone is indeed equal in value as a human being, not everyone is equal in ability, expertise, or is equally involved in risk, work, ...- that's a fact, and to pretend otherwise doesn't help.&lt;br /&gt;
&lt;br /&gt;
You may call that elitism if you like, but my definition of elitism would be that a transfer takes place, i.e. that someone who owns 60% of the shares of a company starts to believe that he should not only get to say how the company is run, but also should get more influence in other areas outside his field of expertise, in other words, he starts to feel that his value as a human being is enhanced.&lt;br /&gt;
&lt;br /&gt;
Experience shows that it makes a lot of sense not to uphold the pretence that everyone is equal with respect to some property when this is in fact not the case. I've been observing internet language communities over the last 10 years where you have basically two classes of users - those who know the language in question, and those who ask questions as they are trying to learn. Almost without exception, communities which treated everyone equal did not work - the experienced users were annoyed at being interrupted in technical discussions, were told that everyone has the same right to enter a discussion, decided that they'd rather discuss in a place without interruptions, thus the communities were left with the users who bring only questions with no experts left to answer them, being unable to get answers they also left and the communities died. The communities which respected expertise worked - it's better to start as low-influence user in a forum and get your questions answered than to start as equal-influence user in a forum and not get your question answered. &lt;br /&gt;
&lt;br /&gt;
== FlightGear is a meritocracy ==&lt;br /&gt;
FlightGear, as best as we have managed to understand the somewhat opaque workings in core development, is a meritocracy - your influence is proportional to the amount of work you do for the project. It's not closed, i.e. you can, if you invest a lot of work into the project, work yourself into a position where you have a lot of influence even starting today from zero.&lt;br /&gt;
&lt;br /&gt;
In general, that makes a lot of sense, basically because you can't vote what work volunteers should do later - or rather, you can, but it's not going to be done if the people volunteering for work don't like to do it, they'll just leave. &lt;br /&gt;
&lt;br /&gt;
In theory, I can spend 5 weeks of my spare time coding something I don't like, but why should I do that? Do you expect me to sit down and do something I dislike just because you (or other users) asked me to do it? Am I supposed to get satisfaction out of doing something for others, even if I don't like it? I don't know if there are people like that, if so, I've yet to meet them. My idea of the deal is: If somebody wants a feature I don't want to code, he can get my help to do it, he can get advice and a well-defined interface, he can get documentation - but that's about it.&lt;br /&gt;
&lt;br /&gt;
Question: Are you personally ready to work for FlightGear on something you dislike if enough users ask you for it? If you answer with yes, then the best way to proceed is that you poll users what they think you should do (within the limit of your abilities), and then do whatever is requested. &lt;br /&gt;
&lt;br /&gt;
There is a continuous transition - people who 'just ask questions' have less influence than people who write frequent feedback and maintain the wiki, then come possibly 3d modellers, Nasal coders, Terrain specialists and finally core developers. So, rather than seeing elitism, I see the chance that every user can in fact start with a small contribution and grow into the project - and that's what I'd like to see improved.&lt;br /&gt;
&lt;br /&gt;
They are different areas of expertise, to be a good 3d modeller and graphics expert is quite possibly as demanding as to be a good C++ programmer, Nasal coding isn't per see inferior, ... so why are they not equal?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason is, simply the dependency structure: FlightGear can run, live and be developed without detailed 3d models, but it can not run without C++ code. If tomorrow all C++ developers quit, that's quite possibly the end of FlightGear, if tomorrow all 3d modellers quit, that's the end of eye candy in FlightGear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's not particularly fair that this translates into the existing project structure, and in fact if you go through my posts here and on the devel list, you'll see that I continue to make the same point. As I said, can't all be fixed in a day... I don't have a particularly large influence either, all I can do is talk to people and ask for patience. You can read up what I wrote in the case of the Bo-105... Good work tends to be recognized eventually - be it modelling or coding. But there's no guarantee, sometimes you have to accept being frustrated, get up and try again. Or you walk because things are not perfect as they are, which is a pity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another thing I don't like is that I feel that the power which comes with having a lot of merits for the projects gets sometimes abused by people who behave in a way that would never be accepted from newcomers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And yet - it's a fine line between idealism and realism here - so suppose for a moment I had the power to do as I want with the project - what would I do? I feel that all users and contributors should be treated with some basic level of politeness. Assume someone violates that rule, but happens to be a core contributor. Idealism tells me that I need to enforce the rule, because everyone is equal in value as human being and deserves to be treated with respect - so quite likely the developer feels pissed off and leaves, creating a huge gap in the project (and, no kidding, there are people who are really important...) - in the end, no one benefits if the project collapses. So realism tells me to let things pass - it's better to mistreat one user than to kill the project and to make all users unhappy in the process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I don't think there's a simple answer to such problems - philosophy has been struggling with them for thousands of years, there hasn't so far emerged a clear preference between an ethics of means and an ethics of ends.&lt;br /&gt;
&lt;br /&gt;
So, perhaps a few folks can step back and see the bigger picture - and maybe share a vision: How would it be if contributing to FlightGear were as easy as contributing to Wikipedia - just what would, e.g. our scenery look like?&lt;br /&gt;
&lt;br /&gt;
And just how can we get there?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There will probably always be irreconcilable differences between those that _create_ a program, and those that _use_ a program. The extremely successful programs/environments are the ones where those that create can understand those that use, and those that use can understand those that create. Everyone here, in the long run, is really here for their own benefit, and until we all understand that, not much will change. Open source has it's downfalls. It doesn't have to please the majority, it doesn't need sales, it only has to please the person that created it. This doesn't mean that people are greedy or selfish. They have no problem sharing, but they don't need to _do_anything_for_you_, if they aren't interested in it.&lt;br /&gt;
&lt;br /&gt;
== You guys need some serious changes ==&lt;br /&gt;
You know, if I wanted to change the structure of a project for better, but would not have any real power (control over servers, commit rights, admin rights in the forum, ...), I'd do the following:&lt;br /&gt;
&lt;br /&gt;
First, I'd try to make sure I understand the situation as it is - not as it appears from my perspective, but also how it appears to others, of what nature the obstacles to change are and so on. Then I'd try to get to talk to some of the people who have the power to change things, and convince them that changing something would not just be better for me, but also be better for them - in fact be better for anyone around. In order to do so, I'd go as far as I can to meet them - talk their language, start describing things from their perspective, value their efforts - and then talk about that one can also see things from a different perspective. I'd do that because I want something - I want them to listen to me, so I want to make that as easy as possible. I'd also prepare a compelling and persuasive case - I'd try up front to sort genuine structural problems from things which are just one-time mistakes which can happen because people are not perfect, I'd sort important things from unimportant things and focus on the important things. Above all, I'd think about what I personally did wrong and what part of the problem I can fix - and how I should do it. And then I'd see if I can't convince anyone that there is merit in my perspective. In the process, I'd also try to find like-minded people who might help me achieve my goals.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is inconsistent and overly complicated ==&lt;br /&gt;
: the fact that it's overly complicated, lacks a single design or even feature set, defies any semblance of cohesion, daunts and confuses would-be contributors with equal severity, and thus produces a wide range of results quality from &amp;quot;embarrassing&amp;quot; to &amp;quot;ready-for-commercial-release&amp;quot; [http://forum.flightgear.org/viewtopic.php?f=14&amp;amp;t=20413#p186983]&lt;br /&gt;
&lt;br /&gt;
I don't see there's anything wrong with FG providing options - many of the features/options we have came into existence at different times, with different needs and requirements in mind. It is often only by accident that they start overlapping, sort of like various FDMs, scripting solutions, interfacing options or weather simulations.&lt;br /&gt;
&lt;br /&gt;
Admittedly, it's far from cohesive, but there's really nothing that we can do about it: It would require a coordinated effort, not just people telling others what to do, but others willing to listen.&lt;br /&gt;
The T4T/combat support situation isn't any different: we have flug's bombable addon as the most sophisticated option available in FG, and then we have various more or less &amp;quot;competitive&amp;quot; approaches, including T4T - yet most folks are not actively seeking collaboration, and doing very little to unify different concepts and approaches. Instead, the focus is often on differences rather than shared needs and common goals.&lt;br /&gt;
&lt;br /&gt;
Which is part of the reason why we have so many &amp;quot;unfinished&amp;quot; aircraft in comparison to other simulators. But like I said, there's really nothing that we, as a project, can do about it - short of adopting a commercial development model and a corresponding hierarchy.&lt;br /&gt;
&lt;br /&gt;
Absent that, we'll have to continue embracing the &amp;quot;Darwinian's development philosophy&amp;quot;, where everybody is free to contribute in whatever form they see fit, and it will be up to time to decide which features are going to stay, and which are going to be ripped out eventually.&lt;br /&gt;
&lt;br /&gt;
All of us have real life obligations, and very few of us are willing to accept additional duties/deadlines, no matter if it's aircraft development, core development, texturing, scenery work, wiki administration, forum administration or other &amp;quot;duties&amp;quot; - still, all this needs to be done by someone. &lt;br /&gt;
&lt;br /&gt;
Thus, it's those who roll up their own sleeves and spend their time contributing who get to influence the way FG development is heading, no matter if others agree or not - the only &amp;quot;hard currency&amp;quot; that counts in this project is time, i.e. the amount of time you have to contribute to the project&lt;br /&gt;
&lt;br /&gt;
Which is also the reason why we are seeing some really skilled and experienced contributors (with very little time on their hands...) being increasingly fed up with the way FG development is going recently, simply because there are quite a number of guys who may not be as experienced or skilled (i.e. not holding multiple CS degrees), but who may be able to spend more time contributing to the project in a different form, which -at least in part- also explains the sheer rate of growth of Nasal scripting in FlightGear, especially in comparison to relatively little new C++ code being committed to the core repository (the canvas system being the obvious exception here, but ironically the Canvas system additionally fosters scripting adoption even further, because base package developers can suddenly contribute in areas that were previously reserved for C++ developers only, such as the GUI, avionics and other fancy stuff).&lt;br /&gt;
&lt;br /&gt;
Honestly, we do have various accomplished core developers who do not particularly like the way Nasal is increasingly used, or the way the Canvas system is becoming a viable alternative over some hardcoded solutions - likewise, the weather system being 95% scripted is another annoyance to some - but at the end of the day, it's really just software evolution taking place: We have a decreasing number of experienced C++ developers, more and more becoming increasingly inactive - which is why the base package has been seeing so much development in comparison, and under these circumstances it is only natural for some core developers to recognize these issues and focus on providing building blocks and infrastructure to empower base package developers.&lt;br /&gt;
&lt;br /&gt;
It's not that your assessment is totally off, but we cannot really deal with it, unless we are telling people what to do - and as you may have witnessed before, that doesn't work out too well usually (remember the various T4T discussions). Thus, we need to accept what's brought to the table, no matter how inconsistent it is, and &amp;quot;absorb&amp;quot; it until something better comes along - even though that may mean that we'll end up with various different approaches in the meantime.&lt;br /&gt;
&lt;br /&gt;
Overall, the current situation isn't as bad as it used to be once&lt;br /&gt;
&lt;br /&gt;
== Is this program just for scientists and engineers? ==&lt;br /&gt;
No, but at least historically, the FlightGear project tends to attract certain types of people, many of them having some sort of academic background and some involvement or interest in aviation, i.e. in engineering, maths, physics, IT/computing or just real life pilots (hobby, professional, test pilots, retired).&lt;br /&gt;
&lt;br /&gt;
This applies especially to long-term contributors. Obviously, the people who contribute for a long time, get to shape the project more so than people who just happen to show up and post some ideas, features requests or bug reports.&lt;br /&gt;
In part, this is also due to the reputation they get to enjoy among fellow contributors, so their feedback has automatically also more weight, too.&lt;br /&gt;
&lt;br /&gt;
That might explain why many long-term contributors seem to have a fairly similar mindset, and why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
Some of these decisions are hard to understand without having a similar background, be it education, professional experience, families, real life obligations and such.&lt;br /&gt;
&lt;br /&gt;
== Community interactions ==&lt;br /&gt;
What can be done in a forum? First off, speak the same as if you were standing in front of the person you are talking to. If you _really_ do get up in their face when you speak, take the gold chains off for a minute and lose the Jersey accent. Respect goes a long way. Respect also goes _both_ ways. If you get an email from someone, respond to it, even if it's saying that &amp;quot;no, I can't help&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== The forum ===&lt;br /&gt;
Regarding helping others on the forum, thinking back on my early days with FG I'd have to say that what's obvious to a long-time FlightGear person isn't necessarily obvious to others. Sometimes people do search for answers first, but they may not be asking the right questions or have a deep enough knowledge of a system or community to proceed.&lt;br /&gt;
&lt;br /&gt;
New people might not think to look in the wiki (yes, there are links all over the place), or try and find an answer there first. Or maybe they did try and failed but didn't mention it. The wiki is a fine repository for some deep, often esoteric information, but the information is spotty and it's not the easiest place to hunt for a specific answer. And I can well remember when the information in the FG docs folder might as well have been written in Martian, given what I knew at the time. Heck, some of it is still Martian to me.&lt;br /&gt;
&lt;br /&gt;
It's usually obvious when people are asking questions in the forum thoughtfully, and when they are being casual, lazy, or discourteous. But sometimes it isn't so clear. There may be language barriers, or they may not know exactly how to ask, or they may simply be shy of a new environment. Like Someguy, I cringe when I see our good people tell somebody to go on an Easter-egg hunt for their answers. If it's tiresome, which is understandable, or one doesn't feel like helping, then it's wiser to simply not respond.&lt;br /&gt;
&lt;br /&gt;
What's at stake isn't getting person X to information Y. In 90%+ cases, it won't matter much-- person X will likely move on to some other hobby. But every now and then, that new person who asked that same tired-old question stays around and eventually becomes a Gijs, or a Heiko, or a Someguy, or a Melchior, or an Anders, or an Emmanuel, etc. The more open, friendly and patient we are, the more likely it is that we will retain these incredibly valuable sorts of people and keep moving forward.&lt;br /&gt;
&lt;br /&gt;
=== Coordination ===&lt;br /&gt;
It'd be really nice to have a better feeling for what is in the works and to know about what is going to change beforehand, rather than pulling the new version to learn that suddenly nothing works and spend the next week trying to figure out just what the change has been. Been there, done it, not pleasant.&lt;br /&gt;
&lt;br /&gt;
Some interface to exchange that kind of information would be really helpful, because some developments depend on how others are structured. In general, more talk between core C++ developers and other developers wouldn't be a bad thing.&lt;br /&gt;
&lt;br /&gt;
=== User facts of life ===&lt;br /&gt;
* Those that can't &amp;quot;create&amp;quot; an entire aircraft from a blank screen will have to wait for someone to build it. Don't post a blind &amp;quot;please build this&amp;quot; advertisement. My guess is that has never worked, and is borderline rude, asking for something without ever offering something. Accept your limitations, enjoy what we have.&lt;br /&gt;
* Don't believe that you are the _only_ user, and therefore represent everyone when you stand on your forum soapbox. _Everyone_ may not share your emotion.&lt;br /&gt;
* You have no power and control, and that's not a bad thing. You reap the benefits of many people that have come before you, and even those that may come after you.&lt;br /&gt;
&lt;br /&gt;
=== Developer facts of life ===&lt;br /&gt;
* You have power in what you do, and you have total control. This does affect your relationship to the person that is a &amp;quot;Non-developer&amp;quot;, whether you believe it or not. Choose to realize this, and be respectful.&lt;br /&gt;
* As a &amp;quot;developer&amp;quot;, you have been given power and control over something that really doesn't belong to only you. Without a board of directors to oversee your actions, realize that _do_ have a responsibility to provide your part of the &amp;quot;development&amp;quot;. You have to consciously choose to do this, for power and control are strong drugs.&lt;br /&gt;
* For the most part, there was someone before you, and their will be someone after you. Your actions will help ensure there is a place for someone after you. Remember the past. Don't be the reason that those before you chose to leave.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
There's simply no use in complaining that FlightGear isn't the community you'd like it to be - but there is use in working to make it the community you like it to be. It's just requires more effort &lt;br /&gt;
&lt;br /&gt;
May FlightGear always provide the beauty of flight to those that are bound by gravity.&lt;br /&gt;
&lt;br /&gt;
== To be discussed ==&lt;br /&gt;
* don't like this conceptual division between users and developers. A user is just a developer who hasn't popped the hood on their car yet.&lt;br /&gt;
&lt;br /&gt;
* most of us try to read the forum and the lists regularly, and we also try to respond to thoughtful topics&lt;br /&gt;
* I care if I can communicate with you on a professional level and if anything comes out of it in the end, or if I get the feeling I'm just wasting my time. That's all.&lt;br /&gt;
* Fact of the matter is - you're a potential contributor until proven otherwise, and as far as I am concerned, that gets you basic politeness, some measure of attention and some measure of help from my side, just like I would do for anyone else asking in the forum. If you want more (information, help, of my time, of Hooray's time ...), you should keep in mind that at this point you want something from the community, and so *you* need to adapt to the community, understand how it works and play by its rules - not the other way around. To say it very bluntly - FlightGear will survive without you if needed (as it will survive without me if needed).&lt;br /&gt;
* The time I am willing to spend trying to talk to you in the hope of any productive outcome is limited, it is about to be exhausted because I am feeling increasingly annoyed and see no real outcome except more talk. That may not have been your intention, but since it's brought to your attention that people start feeling annoyed, it might be a good idea to change the way you communicate. The chances that the devel community will adapt to your style of work are very slim indeed.&lt;br /&gt;
* Your lack of understanding here is your inability to acknowledge that people are aware of the alternatives and have consciously chosen to organize the project the way it is. Speaking for myself, I simply don't want it done your way and would go away the day things become organized your way, and several other core developers have expressed similar sentiments on the devel list.&lt;br /&gt;
* You assume that people basically have no clue and all you need to do is to point out how to make it better, but several people have considered the alternatives already and decided otherwise. This is what you need to understand.&lt;br /&gt;
&lt;br /&gt;
* Influence in the FlightGear community scales roughly with level of your contributions.&lt;br /&gt;
* Obviously, long-time contributors have a more sizeable track record of contributions which in turn gives their voice more weight&lt;br /&gt;
* Things are done the way the majority of contributors thinks they are best, not necessarily by some general consensus.&lt;br /&gt;
* unnecessary community interactions are eating up time&lt;br /&gt;
* people able to build FlightGear from source, who know C++, who have some spare time to contribute to FG are in very short supply&lt;br /&gt;
* developers getting involved in lengthy discussions cannot write code at the same time&lt;br /&gt;
&lt;br /&gt;
* Asking people to work on some particular problem that's bugging you, is generally alright - but you need to be willing to make your case and do that in a fairly compelling fashion. We have some really long-standing issues in FG, some of which most of us (including core devs) agree are IMPORTANT. This is a rare situation, but there really are things that pretty much everybody agrees are REALLY IMPORTANT to work on. So there's some very real competition and it won't be easy to talk people into doing something for you. &lt;br /&gt;
* Another important thing is staying focused: it isn't helpful to raise dozens of issues in a short amount of time if you cannot also solve them, regardless of how &amp;quot;real&amp;quot; and valid these issues might be.&lt;br /&gt;
* signal/noise ratio&lt;br /&gt;
&lt;br /&gt;
* Frequently, people keep emphasizing that this attitude is related to their  inability of fixing things themselves. Now, we are not going to suggest you learn how to build FG from source or how to program in C++. But rather, we suggest you focus on a handful of issues that truly annoy you, and where you think you could actually help and contribute solving them. That would surely help improving your signal/noise ratio, basically giving you opinions more weight here. There should be a fair share of opportunities to get involved in meaningful ways. We have a bunch of wiki resources to get people started contributing in various ways.&lt;br /&gt;
&lt;br /&gt;
* People asking for increased project management and more coordination may want to ask themselves how they would respond if they were exactly told what to work on, rather than just doing what they are interested in. Seriously, nobody is asking you to contribute within a particular domain at all, which is also a good thing and attracted many of the long-term contributors to the project in the first place.&lt;br /&gt;
&lt;br /&gt;
* When comparing FlightGear to other OSS project, it is important not to compare apples and oranges from a manpower perspective. We don't have the manpower here to establish a proper hierarchy like many of the more prominent projects (think Mozilla/Firefox). There's is TONS of management work happening behind the scenes, there's the Mozilla foundation and there are donations and so on - so Mozilla development is not only about coordinating a bunch of programmers who happen to develop a piece of software in their limited spare time, they have passed that point long ago.&lt;br /&gt;
&lt;br /&gt;
* If you are trying influence things: That's fine and a valid motivation. The thing is however, your ability to bring influence to the project is directly proportional to your impact and track record in the project. Actually, this isn't untypical for most OSS projects.We have people here who have been part of this project &amp;quot;just&amp;quot; voicing ideas, opinions and feature requests - some of whom have been involved for YEARS. While their feedback may be appreciated, their ability to direct things is still fairly limited - especially when compared to people who actually brought changes to FlightGear and who have a track record of doing so (sometimes even within a fairly short amount of time). You can find numerous examples actually, of people who have not been a member of this community for very long, but whose input and feedback is not just appreciated and respected but who are having a certain impact on the direction the project's heading. This is never because of &amp;quot;talking&amp;quot; or discussing things, it is because of DOING things.&lt;br /&gt;
&lt;br /&gt;
* FlightGear has never been in a better shape than it is in right now. In fact, admittedly FlightGear -as a software project- has actually been in a much worse shape for many years (for example: no forums, no wiki, no bug tracker, no git repository, no Gitorious merge requests, no build server, no formal release procedures etc)- still it somehow managed to stay around for over 10 years, despite all its deficiencies...&lt;br /&gt;
&lt;br /&gt;
=== Mods and forks (built on top of FG) ===&lt;br /&gt;
&lt;br /&gt;
* You're here asking for help from the FlightGear community. Help is hard to find in the first place (that's a fact, not a threat - there are calls for volunteers for many different projects that go unanswered).&lt;br /&gt;
&lt;br /&gt;
* You're planning to fork in a substantial way. The difference for me is - as long as what you're doing is FlightGear, I will care that my own development work (integrated weather system) runs fine on your system because I develop for FlightGear. If T4T is off to the degree that I'd have to download and compile different code, then I won't care that my weather system runs (it may or may not, dependent on what you do to the environment) - it has become your problem. Not because I am mean, but because I don't have the time and inclination to maintain compatibility to two different development branches. Whenever you develop using a different repository, you are 'them' and we are 'us'. We can be a friendly 'us' and 'them' as between FlightGear and JSBSim, we can exchange code, people can be part of both projects and maintain compatibility and work together - but the basic fact is that there is 'us' and 'them', and (probably like many others) I feel responsible for my part in 'us' but not for my part in 'them'.&lt;br /&gt;
&lt;br /&gt;
http://forum.flightgear.org/viewtopic.php?f=18&amp;amp;t=13298&amp;amp;p=134793&amp;amp;hilit=supply+developers#p134756&lt;br /&gt;
* Do you have a clear idea what your project involves?&lt;br /&gt;
* Do you have a clear idea what is already there?&lt;br /&gt;
* Will it help Flightgear?&lt;br /&gt;
* Will my voice be heard?&lt;br /&gt;
&lt;br /&gt;
* This community is far more likely to get involved if you involve it - and that'd mean opening your previous decisions for debate - than if you ask people to get involved with a project of your design which is no longer up to debate (speaking of resistance to change...). Again, that's your call, I'm not threatening in any way, I'm simply trying to explain how things (according to my best understanding) are and what the likely consequences of your project design are. I don't mean to imply that I or others would actively block you if you're not doing it 'the FlightGear way' and hold information back. I hope that is sufficiently clear.&lt;br /&gt;
&lt;br /&gt;
* We get to see new forum members posting interesting &amp;quot;project ideas&amp;quot; here every month, sometimes even several times per week. And we know from experience that &amp;quot;ripping FlightGear down to its core and rebuilding it&amp;quot; isn't going to happen that easily, it's not necessarily because of objection from the community - quite the contrary, sometimes people actually post ideas that everybody agrees would be great additions to FlightGear, ideas that would quite obviously involve tearing down some major subsystem and replacing it with something better.&lt;br /&gt;
&lt;br /&gt;
* Really, FlightGear is where it is now after 10+ years of ongoing development, many contributors (especially core developers) are long term contributors who have contributed to FlightGear for several years.&lt;br /&gt;
Still, FlightGear is a complex piece of software and there is probably not a single core developer who is familiar with ALL of FlightGear (features, code etc).&lt;br /&gt;
&lt;br /&gt;
* all long-term FlightGear users know for a fact that there is usually a short supply of C++ developers, knowing not only how to program in C++, but also familiar with 3D graphics, OpenGL/OSG programming and many other aspects that are important when creating/developing a simulator.&lt;br /&gt;
&lt;br /&gt;
* So we are really standing on the shoulders of giants here, because we are now -after 10+ years- in the position to create significant new features within the constraints of the FlightGear base package, without even touching the C++ source code at all - simply because FlightGear has become so flexible and extensible. &lt;br /&gt;
&lt;br /&gt;
* So I guess you see where I am coming from: new people now asking to &amp;quot;tear down &amp;amp; rebuild&amp;quot; the whole thing, or people asking to introduce DRM-like measures into FlightGear (content protection) are of course not going to receive a very warm welcome&lt;br /&gt;
&lt;br /&gt;
* I consider what you want to do perfectly possible, but I advise you to rethink your strategy: your decision to build upon FlightGear to create a combat simulator illustrates an admirable degree of foresight and experience that many other people with similarly ambitious ideas lack, but announcing to &amp;quot;rip out parts&amp;quot; and rebuild the whole thing is very unlikely to happen any time soon.&lt;br /&gt;
&lt;br /&gt;
* And like I said before: this is not necessarily because we don't want to see this happen: you could probably talk to any core-developer and each of them could tell you that there are a number of parts that SHOULD be ripped out and replaced eventually (i.e. such as some legacy code), but more often than not, things are simply not as easy as they may appear at first glance. When you take a look at the mailing list archives or at the wiki, you'll certainly find plenty of things in the fgfs source code that everybody agrees should be replaced eventually.&lt;br /&gt;
&lt;br /&gt;
* And if people who have experience working with the code for a number of years refrain from making some important changes, you may want to re-consider your strategy.&lt;br /&gt;
&lt;br /&gt;
* After all, this is all &amp;quot;for fun&amp;quot; - it's an open source project, so it should be &amp;quot;fun&amp;quot; and enjoyable.&lt;br /&gt;
&lt;br /&gt;
* you'll have a better chance of getting your code upstream (if that really is your goal) by coordinating your plans with the fg core developers and asking for recommended paths to proceed. Getting your code contributed back is obviously a good idea because it will be much less of a maintenance burden for you guys if your changes become part of the mainline.&lt;br /&gt;
&lt;br /&gt;
* Ultimately, this being open source, you don't need the approval of anybody - as long as you obey the requirements of the GPL, but rest assured: it will be much easier to deal with the FlightGear community and to get help if you play it &amp;quot;nice&amp;quot; and this very help will be very much needed in the beginning.&lt;br /&gt;
&lt;br /&gt;
* Suggesting &amp;quot;drastic&amp;quot; changes is all neat and dandy, but after familiarizing yourself with FlightGear you'll probably see quickly that it doesn't really need drastic changes at all: We have witnessed this in the &amp;quot;Local Weather&amp;quot; project, you could say it now *optionally* replaces the old system, but to work properly it only needed a way to switch off the old code - which just involves setting a bunch of properties (variables) from a Nasal script. There was no need to completely remove the legacy code, it was just made optional by setting a switch at runtime. Similarly, the bombable script leverages hard-coded C++ code for instantiating AI models dynamically - but the objects are controlled from scripting space.&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68398</id>
		<title>How the FlightGear project works</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68398"/>
		<updated>2014-02-28T01:09:48Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Ideas getting ignored or rejected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As FlightGear is becoming increasingly popular each year, we've been seeing a number of controversial discussions regarding the inner workings of the FlightGear project recently. Meanwhile, it is a well-known fact among long-time contributors that the FlightGear development model may seem irritating at first and it is known to cause some confusions or even frustration among new contributors who may already have experience contributing in other flight sim communities or even other OSS software. &lt;br /&gt;
So here's a collection of responses intended to clarify why things are set up this way. People interested in getting involved in the FlightGear community and contributing in one way or another, are encouraged to read this and understand how FlightGear has been able to be successful despite the fact that it does not have any commercial backing or a really structured development model.&lt;br /&gt;
&lt;br /&gt;
A more succinct version of this article can be found at: http://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=15267 (which serves as a really good introduction, people interested in more details, may still want to look at the text below).&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
As FlightGear is getting increasingly popular, we get to see new users coming to our forums and the mailing list every week. Many of them quite obviously very much interested in contributing to FlightGear in one way or another and getting involved in our community.&lt;br /&gt;
&lt;br /&gt;
This is something that all of us appreciate, because this is important to keep the project alive and kicking, so we do truly appreciate and welcome new community members, because this is an important part of enabling FlightGear to grow even more popular. &lt;br /&gt;
&lt;br /&gt;
There's such a huge range of ways to get involved in FlightGear, so that we truly appreciate everybody's skills. &lt;br /&gt;
&lt;br /&gt;
Please don't think that you cannot contribute to the project, because you cannot program or because you cannot design 3D models. Creating a flight simulator is a huge undertaking and there are many tasks which may seem less obvious to outsiders, such as helping maintain the wiki, moderating the forum, reporting spam, triaging the bug tracker, reviewing bug reports, helping fellow users and so on.&lt;br /&gt;
&lt;br /&gt;
== Irritations ==&lt;br /&gt;
However, sometimes we get to see some irritations among new community members and more seasoned members, because people may have certain expectations and assumptions on contributing to FlightGear. This has frequently caused some heated discussions, sometimes even flame wars on both, the devel mailing list and the forums.&lt;br /&gt;
&lt;br /&gt;
Apparently, this occurs frequently when dealing with people who already have experience developing software or contributing to open source software, be it professionally or as a hobby.&lt;br /&gt;
&lt;br /&gt;
Over the last couple of years, such discussions have taken place increasingly and they are obviously eating up considerable resources, given that spare time is our most precious resource to contribute to the project.&lt;br /&gt;
&lt;br /&gt;
It seems, some people are trying to apply their own experiences and assumptions to FlightGear as a software development project, which is sometimes causing grief and anger because FlightGear seems so different from anything they may know already.&lt;br /&gt;
&lt;br /&gt;
The best approach when encountering such problems is to take a step back, evaluate the goals and the means available, and come back with solutions or valid proposals. Several developers have taken long breaks, then returned to contribute again many features.&lt;br /&gt;
&lt;br /&gt;
== Passion ==&lt;br /&gt;
Honestly, we are all part of this community because we appreciate some things about this open source flight sim named FlightGear. So we are always sorry whenever our tone becomes inappropriate or even harsh.&lt;br /&gt;
We sincerely believe that you can contribute in more meaningful ways than you may currently perceive, without just voicing criticism. Obviously, it really is important to get along with people, regardless of differences in opinions.&lt;br /&gt;
&lt;br /&gt;
== Welcome to the club ==&lt;br /&gt;
To tell the truth: Most of us have been in that situation at some point. To most of us, the way FlightGear works as a project has been somewhat irritating and confusing in the beginning. So, we may actually share your initial confusion, because most of us went through the same process at some point.&lt;br /&gt;
&lt;br /&gt;
Honestly, you could search the forum and mailing list archives and probably find heated responses posted by even the most seasoned contributors. Some of us may have a track record of thousands of postings now and may seem like fairly knowledgeable contributors , but this is just a result of having been part of the community for a number of years, despite the deficiencies that we may have perceived initially. Frequently, some of our very first posts were also just voicing criticism.&lt;br /&gt;
&lt;br /&gt;
It isn't even unlikely that new community members are bringing up long-term issues that have been annoying most of us for quite a while already. We are probably more aware of these issues and their implications than you are. But just saying that something is &amp;quot;broken&amp;quot; is simply not the way to affect the situation for the better. Some of us have tried and failed doing exactly that. To no avail.&lt;br /&gt;
&lt;br /&gt;
Like you can see now, we've changed our strategy: We are trying to act like we want others to act, we are trying to be the change we'd like to see.&lt;br /&gt;
&lt;br /&gt;
Really, your situation may not be any different than ours: We've all been there. You need to be patient and absorb what we're telling you. We have no doubt that you'll get along with most of us, especially if you can demonstrate that you are actually listening and absorbing the advice we are handing out and applying your new knowledge.&lt;br /&gt;
&lt;br /&gt;
So this is an attempt at explaining things in a non-heated fashion, so that we can point aspiring contributors to this article explaining some things which may not be directly obvious, but which we feel are important to understand why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2012), this is largely copied together from various flame wars that have taken place in the last 12 months, so the format still needs some work, and things may seem pretty inconsistent and roundabout in some places.&lt;br /&gt;
&lt;br /&gt;
== Proposing changes ==&lt;br /&gt;
This is not to say that things are set in stone, but the current development model is the result of a certain evolution, and it's exactly this what has enabled FlightGear to survive and grow for over a decade already, without relying on commercial backing, funding organizations or formal project management. &lt;br /&gt;
&lt;br /&gt;
So, we would like to ask you to keep these factors in mind when proposing changes and when voicing recommendations, and when discussing such issues with fellow community members, publicly or privately.&lt;br /&gt;
&lt;br /&gt;
It requires patience to work together and to get something useful out. Sometimes you just have to live with a problem, work around it, and talk to people for a long time. It takes time, but I've experienced that you can convince core developers that your particular project is important enough to warrant attention and support. Everyone's time is limited, and it's all volunteer work. For example: If you complain that shadows are absent, it will change nothing. What you need to do is convince people that shadows would make a huge difference - possibly even with a proof of concept code.&lt;br /&gt;
&lt;br /&gt;
== Ideas getting ignored or rejected ==&lt;br /&gt;
Let's be honest: Not every suggestion made in the forum or on the devel list is good. While no one deserves to be belittled, a fair share of suggestions deserve to be ignored (unless you feel you are entitled to 30 minutes time from, say, a 3d rendering specialist who explains to you in detail why your idea really doesn't work in non-technical terms). &lt;br /&gt;
&lt;br /&gt;
There are many questions asked where the answer can be found in the Wiki with a short search. There are suggestions being made which even on first glance are impossible in practice. It's not the developer's job to deal with these things - it's your job as a forum user to do so. And not every rejection needs to be taken as personal grievance carried around for the next years - sometimes one just has to allow for the possibility that one has been wrong.&lt;br /&gt;
&lt;br /&gt;
Often, it does require a certain amount of background knowledge to truly understand why a certain idea or feature cannot be implemented. New users, and even new developers are likely to lack this knowledge. You need to be somewhat familiar with the code bases involved in order to understand some things.&lt;br /&gt;
&lt;br /&gt;
Since I work on FlightGear, I have suggested a lot of things - about 10% of which have been reacted on. To give you a current example: I've noticed that models from Nasal load way slower than needed, and I've asked that someone looks into it. I have not expected that somebody immediately jumps on it and spends 10 hours of his time tracking what is going on and delivers a detailed report in non-technical terms later. It has taken a few months and posting several examples to convince people that what I see is real. Then somebody looked at it and traced it to the (non)-existence of the osg texture cache. Now, people are debating the pros and cons of activating the texture cache by default, because it might affect stability and memory usage in an unwanted way - and I don't know if it will eventually be there.&lt;br /&gt;
&lt;br /&gt;
I have no problem with that - neither with convincing people that my suggestion is worth looking into, nor with the fact that other issues I have not thought of need to be taken into account. But it seems a lot of people in the forum expect that because they suggest something, someone will take it very seriously and act quickly and are then disappointed when this isn't actually the case.&lt;br /&gt;
&lt;br /&gt;
Coming from the other side, having worked on a problem I often know that a particular thing suggested cannot be done easily. If I have the time, I can take 20 minutes to explain why. Sometimes I don't have the time, then I just write a small sentence indicating why it doesn't work. Probably then somebody feels ignored. Can't help it - if I'd try to take the time, my 3 year old daughter would feel ignored, and she needs my attention more.&lt;br /&gt;
&lt;br /&gt;
I just lack any sign from the user community that they're willing to accept that a suggestion or feedback can in fact be dismissed, and that a developer's time to explain why a suggestion cannot be followed is also not unlimited. I have no problem with the users providing 50% of an opinion where the project should go - as long as they don't expect that that opinion necessarily translates into a decision.&lt;br /&gt;
&lt;br /&gt;
Sometimes rejecting new ideas can be painful to contributors who had spent a considerable amount of time researching and implementing features. Some new ideas have been the seeds of a similar implementation by the more seasoned coders. In any case, it is always best to evaluate the pain/gain benefit, and to keep older solutions to problems rather than having a half-way semi-realistic solution. Ideas tend to get the proper recognition in time, if they are beneficial, or are quickly forgotten if they are not worthy. Keep in mind to do this for fun, and always attack the idea, not the person, to keep things calm.&lt;br /&gt;
&lt;br /&gt;
== Lack of feedback ==&lt;br /&gt;
Lack of feedback - same thing. Go out into the forum, download interesting addons, talk to the people who provide them, let them know what you think. If you want feedback for your own work, start by giving feedback to the work of others. That's how it works. And yes, lack of recognition is sometimes a problem. Basically, you have to do things because you want to, and you have to be enthusiastic enough to pull others along so that they can see and appreciate your vision of how things could be. Again, requires a lot of patience. I wish that many things here would be different. I wish people would collaborate on projects more often, instead of everyone developing his own pet project and half of them dying for lack of interest. But I've come to realize that it's not going to happen because I wish it to happen - things are only happening my way if I slowly work towards it, talk to people an unholy amount of time and try to convince them that I am serious and have a case. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And to people who have stated (rightly or wrongly) that they don't feel the core developers are active enough in the forums:&lt;br /&gt;
&lt;br /&gt;
When asking on the devel list why people keep the mailing list separate from the forum, the response I got was along the lines of 'We like to exchange information, and in the Forum we get to hear only noise - petty complaints, lazy questions and so on - so we stay where the information relevant for development flows'.&lt;br /&gt;
&lt;br /&gt;
So, it goes two ways (I have been saying this before, haven't I?) - the probability that people will listen to what you have to say increases if you can convince people that they take you seriously.&lt;br /&gt;
&lt;br /&gt;
When I started to write that I want to rewrite an integrated weather system, pretty much no one took me seriously because it's a large chunk of work and you need to know what you're doing, and, face it, there's a lot of noise being made about what people will do who drop it later after a week. After I had written a working demonstration, people started to believe that I know what I'm talking about. Sometimes that's what it takes.&lt;br /&gt;
&lt;br /&gt;
From the other perspective, I would do the same. If somebody tells me he's going to implement volume rendering for clouds, I'd simply say 'Go ahead, I don't think it can be done.' Once he demonstrates to me that it can be done, I'd be willing to work with him. That makes a lot of sense, because the amount of ideas that can be realized and have a person behind them who is willing to see it through is a tiny fraction of the amount of ideas being presented - so it pays to focus on those who have a shot at success.&lt;br /&gt;
&lt;br /&gt;
So, I'd like to see some appreciation for the fact that there is no a priori right to be taken seriously, no matter what you say, but that this is something you need to work on. I also think that if the forum would offer a lot of high-quality development related discussions then you'd see much more active core developers here.&lt;br /&gt;
&lt;br /&gt;
== Users vs. contributors ==&lt;br /&gt;
We have here two groups of persons (with blurry boundaries): The first group takes something for free, which is a flight sim which you download from servers for which someone probably pays real money. The second group gives something, which is their time to create the simulation.&lt;br /&gt;
&lt;br /&gt;
You'd expect in the real world that if I give you something for free, that this earns me your gratitude. But this is the internet - so instead of gratitude, you somehow assume that in addition to giving you something, I am also expected to care about what you want, and it disturbs you that I don't really care for people who take for free and ask for more, but that I care for those who take and are prepared to give in return.&lt;br /&gt;
&lt;br /&gt;
On the other hand, a 'user' in your concept of course is supposed to be entitled to not only acquire FlightGear, but also get support in the forum and should also have a voice ( in what is done for the project (by others), and for this he's expected to do what in return? Nothing.&lt;br /&gt;
&lt;br /&gt;
If it disturbs you that I don't share this sentiment, then so be it, but let me be very clear: I have every sympathy for people who come here and offer to return some (whatever small) contribution back for getting FlightGear. I get angry when I see their contributions rejected for opaque reasons, when I see disparaging comments made that this is 'merely modelling' or 'just Nasal', when I see someone being discouraged from honestly trying to contribute. I have also sympathy for people who take FlightGear, enjoy using it but don't want to contribute and still ask politely for some help in the Forum.&lt;br /&gt;
&lt;br /&gt;
I just have no sympathy for people who take, are not prepared to do any work, but feel entitled to say how others should do their job and issue demands for features, aircraft, documentation, whatever. You may call that elitism, I call that my sense of fairness.&lt;br /&gt;
&lt;br /&gt;
== Lack of Support and Backwards Compatibility ==&lt;br /&gt;
FlightGear is a volunteer effort and no one is paying several thousand dollars a year for software and related support each year. Since legacy support is expensive (IE. time/effort) one of the ways a project like FlightGear deals with this is to limit legacy support. If this were not the case then time/effort would be expended on legacy support that could be used for new features and bug fixes. Like most things there are trade offs involved. Which do you want - more advanced FlightGear and aircraft or better support for older versions? This is a common issue for open source software and most prefer to look forward rather than looking back.&lt;br /&gt;
&lt;br /&gt;
For JSBSim there been has incremental changes in almost every version of FlightGear. These changes did things like add features or change the way a specific feature acted. For example around FG 2.4 there where changes to the engine cooling code (to allow modelling of cooling systems with things like cowl flaps) and also to the nose/tail wheel steering code (to allow toggling between locked and swivelling steering wheels). Many aircraft are unaffected by these changes because they don't make use of the enhancements but some aircraft do use these enhancements. For example the JSBSim P-51D uses both of these features and it probably will not work correctly (IE. it will over heat/run cold or not have correct ground handling) if used with FG versions before 2.4. There is also the possibility that it will throw all kinds of error messages when used with an older version of FG but none of this has been tested at least by me. So it may be OK with a few missing features on 1.9.1 or it may fail totally. We simply do not know. If someone complains about the JSBSim P-51D not running correctly on FG 1.9.1 my reply is too bad you need to upgrade to 2.4 or later and get back to me if things aren't working after the upgrade. There may be other more recent features that other aircraft use/leverage that don't affect the P-51D so I think this is a significant issue.&lt;br /&gt;
&lt;br /&gt;
In addition, FlightGear itself has been a moving target with a constant stream of new features and enhancements some of which require changes to at least some aircraft.&lt;br /&gt;
&lt;br /&gt;
== Number of aircraft vs. quality of aircraft ==&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
One thing to consider when comparing real-world handling qualities versus simulated handling is the control devices. I use a Logitech Gamepad which is not ideal by any means, it serves my purposes and gives me acceptable handling capability. The biggest problem with it is the small throw of the sticks which makes them very touchy. Even if you have a full size control column, you lose a lot of fidelity due to the lack of control feedback as well as lack of &amp;quot;seat of your pants&amp;quot; feedback. Both the control throw and the feedback issues result in a great loss of fidelity which makes it impossible to control an aircraft in simulation anywhere near as well as the real thing. &lt;br /&gt;
&lt;br /&gt;
Taking the P-51 issue as an example; even if the FDM did closely emulate the real thing, the reaction time to correct for any divergent yaw on takeoff will be much slower than it would be in real life with more sensory cues. Once you do react, you can't react with the same accuracy as real life due to the lack of control feedback, so your inputs will tend to over correct the situation which in turn you will be slower to react to.&lt;br /&gt;
&lt;br /&gt;
This can obviously be corrected by making the FDMs less touchy than the real-world aircraft, but this then compromises reality. So it takes a bit of a balance.&lt;br /&gt;
First, let me say that there are HUGE fluctuations in the quality of FG flight dynamics models, and that I don't like all of them. This is why I specifically wrote which planes I use and asked which plane you've been flying. Some FDMs are pretty bad, but others (the Seneca-II for instance) are made by people who fly the real thing, yet others (the P-51D, the F-16) are done using a huge pile of available test data and have been tweaked literally for hundreds of hours to agree with the real performance and capabilities. It's these FDMs which I like and which I'm defending here.&lt;br /&gt;
&lt;br /&gt;
So, you ask why some posters are so enamoured with the FG FDMs. For once, because I know physics. When I do certain things, I know how the aerodynamics works out, and I expect to find that in the simulation. &lt;br /&gt;
&lt;br /&gt;
For two, I've been flying gliders for a while. I distinctly remember the feeling of making tiny not really conscious movements with the stick all the time to fly the thing. I want to have that experience reproduced by a flight sim, it's part of the feeling of immersion - and the top-end JSBSim models do that for me. Also, I want to _do_ something while flying, not just get my plane on rails and watch the scenery.&lt;br /&gt;
&lt;br /&gt;
Third, because I find it educational. I for instance happen to know that the F-104 Starfighter was pretty accident prone. Just 10 minutes flying around with the thing told me why - when the plane becomes unstable, what manoeuvres you can and can't do (I think the Starfighter is also one of these FDMs with plenty of real life experience used by the creator...). I find it interesting to explore how the SR-71 reaches Mach-3 and why it needs to do the funny 'dipsy' manoeuvre. I find it instructive to understand why one has to fly the Concorde by the book and how fuel consumption figures change if I don't. I want to understand how thrust vectoring can be used and how stable it is. I want to learn what's different about a helicopter. For all this, I need the real physics of flight simulated as faithfully as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the creator of several aircraft made for FlightGear including a heavily researched Velocity XL and an Edgley Optica, I can say the above observation is nonsense. Fly one of my planes and the controls won't do diddly under 30 knots unless a pilot's handbook or a pilot's report indicates they should. Even the worst flight models in the FlightGear world don't have fully effective controls while sitting still. As for inherent stability, my own efforts are easily trimmed at cruise speeds for relatively benign, hands-off flight to match the flight manual or pilot reports.&lt;br /&gt;
&lt;br /&gt;
Why are some so enamoured of FG flight models? I'll state what Thorsten wrote in another way. I'm not a licensed pilot, though I do have stick-time in several light planes. But I'll never fly in an Optica, and I'm very unlikely to ever fly in a Velocity or a Grumman Goose, and no sane airline is going to let me into the flight deck of an MD-80. By building these models, I can gain an understanding, an insight, and an experience with these aircraft that would otherwise be closed to me. I can know them in some ways that even a pilot might not know them. The closer the simulation matches the real aircraft, the closer my experience comes to that aircraft. I can't experience these planes unless they are correct in every detail that matters, and pursuing that correctness is a long journey, perhaps one without an end.&lt;br /&gt;
&lt;br /&gt;
Maybe I misunderstand the notion of options to make a plane harder or easier to fly. For me, the point is to simulate the aircraft. If the aircraft had functions or gadgets that facilitated making it harder or easier to fly, then fine, that's part of the simulation goal. But it's not the same as a game, where I can select EASY, NORMAL, HARD, or HURT ME PLENTY. There are many planes where someone like me has no business trying even the simulated version. And no real C172 or MD-80 has difficulty modes or configuration files.&lt;br /&gt;
&lt;br /&gt;
Are there &amp;quot;crappy&amp;quot; flight models in the FlightGear world? Sure. Plenty of them. Maybe most of them. But there are some darn nice ones, some made by pilots with hands-on experience, some with the feedback of pilots, and some by non-pilots using meticulous research. Many are simply nice modelling efforts, waiting for someone to come along and create a good flight model, or add systems simulation, or cockpit instruments, or some other contribution.&lt;br /&gt;
&lt;br /&gt;
In the MSFS world, the typical model is a commercial product, released as a complete and well-rounded package. In the FG world, few models are finished, complete efforts. Developers work on what they know and what interests them, and most are open to contribution from others. Few works are above improvement. The neat thing about the FlightGear environment isn't that it's free. It's that if you don't like some aspect, you're welcome to help refine it. You can learn to improve it yourself, or you can help by suggesting well-conceived, objective changes to the authors. Most will listen. And you just might learn something along the way that will surprise or enlighten you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By saying that users can easily tweak the FDM in FlightGear, I am not implying that the the flight models or the FG architecture are inherently defective. There are many FG aircraft with great FDMs, other are not so good. Those that aren't so good are usually because they are not completed as indicated by their production status. As with any software product in beta release, the users are free to provide feedback directly to the developer. As this is an open source project, that feedback is often in the from of contributing code/FDM enhancements directly to the author for incorporation into the model. With commercial flight sims, you are always seeing the polished product because they would not get away with selling an unpolished product. With FG we are not burdened by the need to make a profit or satisfy our customers. We ARE our customers so we only need to make ourselves happy 8) So with FG you get to see a preview in the form of a pre-production or alpha release. This gives the users an opportunity to provide feedback directly to the developers, and often this feedback can be incorporated into an updated version of the aircraft in a few days or less. This is not a remote possibility for a commercial sim. I think this is why those who use FG like it so much. We are not content to use something out of the box, we are far too picky!&lt;br /&gt;
&lt;br /&gt;
== Fictional Aircraft ==&lt;br /&gt;
FlightGear is developed by a community of volunteers from all over the world, we contribute in whatever way we see fit, if you disagree with the way FlightGear development is going, your best chance to affect it, is by starting contributing yourself. FlightGear could only progress so far without any commercial backing for over a decade, because of FlightGear contributors and their very passion for turning their own ideas into FlightGear features.&lt;br /&gt;
&lt;br /&gt;
FlightGear isn't only developed with a single role or purpose in mind, FlightGear is to be understood as a framework for developing new aviation related features, including fictional features. We have hundreds of &amp;quot;aircraft&amp;quot; and &amp;quot;vehicles&amp;quot; available in FlightGear, only a fraction of those are fictional, and most of the fictional ones are not even well-developed, you will surely be able to find other aircraft that you are interested in, see: http://www.flightgear.org/download/airc ... ilterable/&lt;br /&gt;
&lt;br /&gt;
So until you roll up your own sleeves, let's just appreciate the variety of aircraft and other features to be found in FlightGear, including the X-wing star fighter from Star Wars, Star Trek space shuttles and lots of other passionately developed 3D models, like the BlueBird for example&lt;br /&gt;
&lt;br /&gt;
FlightGear doesn't necessarily have a real &amp;quot;fictional side&amp;quot; - it's just that we all needed to get started somehow. Contributing a completely new aircraft is obviously difficult. Contributing to existing aircraft is useful, but it doesn't teach you all of the skills required to create an aircraft from scratch. So people who want to do a full aircraft, need to start with something simple and &amp;quot;fun&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So what new contributors often do, is creating &amp;quot;fun&amp;quot; vehicles to learn how FlightGear works.&lt;br /&gt;
&lt;br /&gt;
Aircraft like the ufo, ogeL, bluebird etc were usually created by people in their initial phase of becoming familiar with FG - for example, the ogeL was made by the same guy who ended up modelling the Seneca, one of our most-developed (and maintained!) GA aircraft in FlightGear: http://wiki.flightgear.org/Seneca&lt;br /&gt;
&lt;br /&gt;
s you can tell from looking at the wiki, the ogeL aircraft developer has not only become the developer and maintainer of the Seneca aircraft in FlightGear, but he also has become a FlightGear core developer writing C++ code and maintaining the autopilot system for example, and he also happens to be a CPL-IFR/ME rated pilot in real life, who owns the Seneca he modelled for FlightGear.&lt;br /&gt;
&lt;br /&gt;
Obviously, contributing to all these areas in FG takes time, a steep learning curve is an unfortunate but important part of it - rarely, do we see people who immediately start out with complex and well-developed aircraft, it's a process - and we all needed to get started at some point. Just because we contribute &amp;quot;playful&amp;quot; things to FG, doesn't necessarily mean that we are not interested in &amp;quot;realistic aviation&amp;quot; as you can see.&lt;br /&gt;
&lt;br /&gt;
You will notice that many long-term contributors actually have an aviation-related professional background, be it flying (commercial, private, ATPL), software development, maths, physics, GIS or whatever. Among the long-term contributors are people with PhDs, Masters, commercial pilot rating, PPL or retired military pilots, and even one test pilot...&lt;br /&gt;
Still, 3D modelling is a completely new skills, and needs to be learned from scratch - which applies especially to people who &amp;quot;only&amp;quot; have a real background in aviation, but not in computers and/or games.&lt;br /&gt;
&lt;br /&gt;
Creating the ogeL was obviously simple and fun, creating aircraft like the Seneca requires tons of skills, experience and expertise that you don't end up having &amp;quot;automatically&amp;quot;. And it requires tons of dedication and discipline.&lt;br /&gt;
&lt;br /&gt;
I hope that puts things a little into perspective.&lt;br /&gt;
&lt;br /&gt;
== You need development guidelines ==&lt;br /&gt;
You might have made general statements like 'There should be clear development guidelines', 'the project should not depend on a single person being around' or 'the developers should pay more attention to the users'. In theory, all these are beautiful - and who would object that these are all good things?&lt;br /&gt;
&lt;br /&gt;
The problem is that the reason that these things do not exist already have to do with how things are in practice. &lt;br /&gt;
&lt;br /&gt;
The consequence of developers paying more attention to what users want, rather than what they are interested in, and not being free to ignore suggestions is that a developer potentially is asked to work on something he personally dislikes, just because enough users want it. &lt;br /&gt;
&lt;br /&gt;
Who gets to decide what a relevant suggestion for the benefit of the project is and what a petty suggestion for the benefit of a single user is?&lt;br /&gt;
&lt;br /&gt;
Who gets to determine the guidelines and how - and what happens with people who don't want to follow? What happens if a developer doesn't want to code a feature even if 500 users signed a petition? What happens to a developer who belittles a contribution, and who enforces that and how? Once you start thinking these questions through, the moral high ground of the theoretical principles becomes a mud field of messiness and compromises.&lt;br /&gt;
&lt;br /&gt;
I've learned in the past year or so that FlightGear development is a messy place. It simply isn't structured in the clean and neat way I have in mind. Unfortunately, I've also come to realize that I am part of the mess - the way I work simply doesn't fit in with the equally clean and neat way others have in mind.&lt;br /&gt;
&lt;br /&gt;
== Telling volunteers what to do ==&lt;br /&gt;
Posted by MAKG:&lt;br /&gt;
&lt;br /&gt;
; Rule #1&lt;br /&gt;
: You can't tell volunteers to do anything. You can ask, but you have to motivate it if you want good and timely work, or any work at all.&lt;br /&gt;
&lt;br /&gt;
; Rule #2&lt;br /&gt;
: Volunteers may or may not be inexperienced -- it has to be evaluated and management is different for the two cases. Allow a lot of time for inexperienced developers.&lt;br /&gt;
&lt;br /&gt;
; Rule #3&lt;br /&gt;
: Let the volunteers learn something. You can tell them the right way to do something, and they may or may not listen. They are volunteers; let them do what they want even if it means redoing the work at a later time (example -- I had an undergrad student code an early telescope trajectory algorithm -- he wanted to numerically integrate rates because it was a whole lot simpler to derive; I explained that numerical stability would be much better with analytic positions. He coded rates, it was unstable, and he redid it as positions later. This was an extremely valuable lesson). Keep in mind that sometimes the volunteers are right...be prepared to learn something from them (the same student insisted on making a simulated sky, over my objections that it was unnecessary for the task at hand and time consuming -- and it turned out to be the single most valuable feature we have).&lt;br /&gt;
&lt;br /&gt;
; Rule #3A&lt;br /&gt;
: Volunteers may want to exceed their abilities. Let them unless it's far beyond their abilities and you can't tolerate a delay (if you're in that zone, reconsider whether a volunteer effort is really appropriate). They may need a lot of help, or their work may need to be redone, or they may not finish the work. This is part of the cost of a volunteer effort.&lt;br /&gt;
&lt;br /&gt;
; Rule #4&lt;br /&gt;
: BE GENTLE. These are volunteers. They won't do work you want/need if it's painful. Coax as needed, but nicely. Steer, don't push.&lt;br /&gt;
&lt;br /&gt;
; Rule #5&lt;br /&gt;
: Though management is necessarily loose with volunteers, it cannot be completely absent. There has to be a coherent vision coordinating the effort, or it will be unfocused and will not serve the needs at hand.&lt;br /&gt;
&lt;br /&gt;
Whether this is open source or not is irrelevant. It's a volunteer effort; there are many of those that don't have to do with software. Think Habitat for Humanity, for instance.&lt;br /&gt;
&lt;br /&gt;
=== Some comments on elitism ===&lt;br /&gt;
Every once in a while, people complain that they feel elitism is a major problem in the FlightGear project.&lt;br /&gt;
&lt;br /&gt;
The notion you may have in mind when you talk about 'elitism' is that everyone should be equal - applied to FlightGear, that everyone's opinion of how things should be heard and should matter about equally. In real life, that's how democracy works - everyone gets a say how to run a state. But there are many situations which do not work like this. Consider a shareholder's meeting - here influence is proportional to the investment. If I meet with 100 other shareholders, but I own 60% of the stock of a company, I alone get to decide what will happen. Or consider a scientific conference - here your influence is proportional to your expertise. You may have your favourite theory why Darwin was wrong, or why climate change is a fluke, but without some scientific merits, you won't be even admitted to the room, and it takes quite a bit more of reputation to get a talk.&lt;br /&gt;
&lt;br /&gt;
All these cases have nothing to do with elitism. In the first case (shareholder), the argument is fairness - if I take 10% of the risk of an enterprise and you take 1%, it is hardly fair that we should have the same voting rights. In the second case (science conference), the argument is efficiency - the amount of potential information is so huge that a careful filtering needs to be done in order to ensure that people spend their time processing relevant information - the scientific filter eliminates time-wasters up front (well, not all of them, as I can state from experience). You couldn't run either a shareholder's meeting or a science conference based on 'everyone is equal' - because while everyone is indeed equal in value as a human being, not everyone is equal in ability, expertise, or is equally involved in risk, work, ...- that's a fact, and to pretend otherwise doesn't help.&lt;br /&gt;
&lt;br /&gt;
You may call that elitism if you like, but my definition of elitism would be that a transfer takes place, i.e. that someone who owns 60% of the shares of a company starts to believe that he should not only get to say how the company is run, but also should get more influence in other areas outside his field of expertise, in other words, he starts to feel that his value as a human being is enhanced.&lt;br /&gt;
&lt;br /&gt;
Experience shows that it makes a lot of sense not to uphold the pretence that everyone is equal with respect to some property when this is in fact not the case. I've been observing internet language communities over the last 10 years where you have basically two classes of users - those who know the language in question, and those who ask questions as they are trying to learn. Almost without exception, communities which treated everyone equal did not work - the experienced users were annoyed at being interrupted in technical discussions, were told that everyone has the same right to enter a discussion, decided that they'd rather discuss in a place without interruptions, thus the communities were left with the users who bring only questions with no experts left to answer them, being unable to get answers they also left and the communities died. The communities which respected expertise worked - it's better to start as low-influence user in a forum and get your questions answered than to start as equal-influence user in a forum and not get your question answered. &lt;br /&gt;
&lt;br /&gt;
== FlightGear is a meritocracy ==&lt;br /&gt;
FlightGear, as best as we have managed to understand the somewhat opaque workings in core development, is a meritocracy - your influence is proportional to the amount of work you do for the project. It's not closed, i.e. you can, if you invest a lot of work into the project, work yourself into a position where you have a lot of influence even starting today from zero.&lt;br /&gt;
&lt;br /&gt;
In general, that makes a lot of sense, basically because you can't vote what work volunteers should do later - or rather, you can, but it's not going to be done if the people volunteering for work don't like to do it, they'll just leave. &lt;br /&gt;
&lt;br /&gt;
In theory, I can spend 5 weeks of my spare time coding something I don't like, but why should I do that? Do you expect me to sit down and do something I dislike just because you (or other users) asked me to do it? Am I supposed to get satisfaction out of doing something for others, even if I don't like it? I don't know if there are people like that, if so, I've yet to meet them. My idea of the deal is: If somebody wants a feature I don't want to code, he can get my help to do it, he can get advice and a well-defined interface, he can get documentation - but that's about it.&lt;br /&gt;
&lt;br /&gt;
Question: Are you personally ready to work for FlightGear on something you dislike if enough users ask you for it? If you answer with yes, then the best way to proceed is that you poll users what they think you should do (within the limit of your abilities), and then do whatever is requested. &lt;br /&gt;
&lt;br /&gt;
There is a continuous transition - people who 'just ask questions' have less influence than people who write frequent feedback and maintain the wiki, then come possibly 3d modellers, Nasal coders, Terrain specialists and finally core developers. So, rather than seeing elitism, I see the chance that every user can in fact start with a small contribution and grow into the project - and that's what I'd like to see improved.&lt;br /&gt;
&lt;br /&gt;
They are different areas of expertise, to be a good 3d modeller and graphics expert is quite possibly as demanding as to be a good C++ programmer, Nasal coding isn't per see inferior, ... so why are they not equal?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason is, simply the dependency structure: FlightGear can run, live and be developed without detailed 3d models, but it can not run without C++ code. If tomorrow all C++ developers quit, that's quite possibly the end of FlightGear, if tomorrow all 3d modellers quit, that's the end of eye candy in FlightGear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's not particularly fair that this translates into the existing project structure, and in fact if you go through my posts here and on the devel list, you'll see that I continue to make the same point. As I said, can't all be fixed in a day... I don't have a particularly large influence either, all I can do is talk to people and ask for patience. You can read up what I wrote in the case of the Bo-105... Good work tends to be recognized eventually - be it modelling or coding. But there's no guarantee, sometimes you have to accept being frustrated, get up and try again. Or you walk because things are not perfect as they are, which is a pity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another thing I don't like is that I feel that the power which comes with having a lot of merits for the projects gets sometimes abused by people who behave in a way that would never be accepted from newcomers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And yet - it's a fine line between idealism and realism here - so suppose for a moment I had the power to do as I want with the project - what would I do? I feel that all users and contributors should be treated with some basic level of politeness. Assume someone violates that rule, but happens to be a core contributor. Idealism tells me that I need to enforce the rule, because everyone is equal in value as human being and deserves to be treated with respect - so quite likely the developer feels pissed off and leaves, creating a huge gap in the project (and, no kidding, there are people who are really important...) - in the end, no one benefits if the project collapses. So realism tells me to let things pass - it's better to mistreat one user than to kill the project and to make all users unhappy in the process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I don't think there's a simple answer to such problems - philosophy has been struggling with them for thousands of years, there hasn't so far emerged a clear preference between an ethics of means and an ethics of ends.&lt;br /&gt;
&lt;br /&gt;
So, perhaps a few folks can step back and see the bigger picture - and maybe share a vision: How would it be if contributing to FlightGear were as easy as contributing to Wikipedia - just what would, e.g. our scenery look like?&lt;br /&gt;
&lt;br /&gt;
And just how can we get there?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There will probably always be irreconcilable differences between those that _create_ a program, and those that _use_ a program. The extremely successful programs/environments are the ones where those that create can understand those that use, and those that use can understand those that create. Everyone here, in the long run, is really here for their own benefit, and until we all understand that, not much will change. Open source has it's downfalls. It doesn't have to please the majority, it doesn't need sales, it only has to please the person that created it. This doesn't mean that people are greedy or selfish. They have no problem sharing, but they don't need to _do_anything_for_you_, if they aren't interested in it.&lt;br /&gt;
&lt;br /&gt;
== You guys need some serious changes ==&lt;br /&gt;
You know, if I wanted to change the structure of a project for better, but would not have any real power (control over servers, commit rights, admin rights in the forum, ...), I'd do the following:&lt;br /&gt;
&lt;br /&gt;
First, I'd try to make sure I understand the situation as it is - not as it appears from my perspective, but also how it appears to others, of what nature the obstacles to change are and so on. Then I'd try to get to talk to some of the people who have the power to change things, and convince them that changing something would not just be better for me, but also be better for them - in fact be better for anyone around. In order to do so, I'd go as far as I can to meet them - talk their language, start describing things from their perspective, value their efforts - and then talk about that one can also see things from a different perspective. I'd do that because I want something - I want them to listen to me, so I want to make that as easy as possible. I'd also prepare a compelling and persuasive case - I'd try up front to sort genuine structural problems from things which are just one-time mistakes which can happen because people are not perfect, I'd sort important things from unimportant things and focus on the important things. Above all, I'd think about what I personally did wrong and what part of the problem I can fix - and how I should do it. And then I'd see if I can't convince anyone that there is merit in my perspective. In the process, I'd also try to find like-minded people who might help me achieve my goals.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is inconsistent and overly complicated ==&lt;br /&gt;
: the fact that it's overly complicated, lacks a single design or even feature set, defies any semblance of cohesion, daunts and confuses would-be contributors with equal severity, and thus produces a wide range of results quality from &amp;quot;embarrassing&amp;quot; to &amp;quot;ready-for-commercial-release&amp;quot; [http://forum.flightgear.org/viewtopic.php?f=14&amp;amp;t=20413#p186983]&lt;br /&gt;
&lt;br /&gt;
I don't see there's anything wrong with FG providing options - many of the features/options we have came into existence at different times, with different needs and requirements in mind. It is often only by accident that they start overlapping, sort of like various FDMs, scripting solutions, interfacing options or weather simulations.&lt;br /&gt;
&lt;br /&gt;
Admittedly, it's far from cohesive, but there's really nothing that we can do about it: It would require a coordinated effort, not just people telling others what to do, but others willing to listen.&lt;br /&gt;
The T4T/combat support situation isn't any different: we have flug's bombable addon as the most sophisticated option available in FG, and then we have various more or less &amp;quot;competitive&amp;quot; approaches, including T4T - yet most folks are not actively seeking collaboration, and doing very little to unify different concepts and approaches. Instead, the focus is often on differences rather than shared needs and common goals.&lt;br /&gt;
&lt;br /&gt;
Which is part of the reason why we have so many &amp;quot;unfinished&amp;quot; aircraft in comparison to other simulators. But like I said, there's really nothing that we, as a project, can do about it - short of adopting a commercial development model and a corresponding hierarchy.&lt;br /&gt;
&lt;br /&gt;
Absent that, we'll have to continue embracing the &amp;quot;Darwinian's development philosophy&amp;quot;, where everybody is free to contribute in whatever form they see fit, and it will be up to time to decide which features are going to stay, and which are going to be ripped out eventually.&lt;br /&gt;
&lt;br /&gt;
All of us have real life obligations, and very few of us are willing to accept additional duties/deadlines, no matter if it's aircraft development, core development, texturing, scenery work, wiki administration, forum administration or other &amp;quot;duties&amp;quot; - still, all this needs to be done by someone. &lt;br /&gt;
&lt;br /&gt;
Thus, it's those who roll up their own sleeves and spend their time contributing who get to influence the way FG development is heading, no matter if others agree or not - the only &amp;quot;hard currency&amp;quot; that counts in this project is time, i.e. the amount of time you have to contribute to the project&lt;br /&gt;
&lt;br /&gt;
Which is also the reason why we are seeing some really skilled and experienced contributors (with very little time on their hands...) being increasingly fed up with the way FG development is going recently, simply because there are quite a number of guys who may not be as experienced or skilled (i.e. not holding multiple CS degrees), but who may be able to spend more time contributing to the project in a different form, which -at least in part- also explains the sheer rate of growth of Nasal scripting in FlightGear, especially in comparison to relatively little new C++ code being committed to the core repository (the canvas system being the obvious exception here, but ironically the Canvas system additionally fosters scripting adoption even further, because base package developers can suddenly contribute in areas that were previously reserved for C++ developers only, such as the GUI, avionics and other fancy stuff).&lt;br /&gt;
&lt;br /&gt;
Honestly, we do have various accomplished core developers who do not particularly like the way Nasal is increasingly used, or the way the Canvas system is becoming a viable alternative over some hardcoded solutions - likewise, the weather system being 95% scripted is another annoyance to some - but at the end of the day, it's really just software evolution taking place: We have a decreasing number of experienced C++ developers, more and more becoming increasingly inactive - which is why the base package has been seeing so much development in comparison, and under these circumstances it is only natural for some core developers to recognize these issues and focus on providing building blocks and infrastructure to empower base package developers.&lt;br /&gt;
&lt;br /&gt;
It's not that your assessment is totally off, but we cannot really deal with it, unless we are telling people what to do - and as you may have witnessed before, that doesn't work out too well usually (remember the various T4T discussions). Thus, we need to accept what's brought to the table, no matter how inconsistent it is, and &amp;quot;absorb&amp;quot; it until something better comes along - even though that may mean that we'll end up with various different approaches in the meantime.&lt;br /&gt;
&lt;br /&gt;
Overall, the current situation isn't as bad as it used to be once&lt;br /&gt;
&lt;br /&gt;
== Is this program just for scientists and engineers? ==&lt;br /&gt;
No, but at least historically, the FlightGear project tends to attract certain types of people, many of them having some sort of academic background and some involvement or interest in aviation, i.e. in engineering, maths, physics, IT/computing or just real life pilots (hobby, professional, test pilots, retired).&lt;br /&gt;
&lt;br /&gt;
This applies especially to long-term contributors. Obviously, the people who contribute for a long time, get to shape the project more so than people who just happen to show up and post some ideas, features requests or bug reports.&lt;br /&gt;
In part, this is also due to the reputation they get to enjoy among fellow contributors, so their feedback has automatically also more weight, too.&lt;br /&gt;
&lt;br /&gt;
That might explain why many long-term contributors seem to have a fairly similar mindset, and why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
Some of these decisions are hard to understand without having a similar background, be it education, professional experience, families, real life obligations and such.&lt;br /&gt;
&lt;br /&gt;
== Community interactions ==&lt;br /&gt;
What can be done in a forum? First off, speak the same as if you were standing in front of the person you are talking to. If you _really_ do get up in their face when you speak, take the gold chains off for a minute and lose the Jersey accent. Respect goes a long way. Respect also goes _both_ ways. If you get an email from someone, respond to it, even if it's saying that &amp;quot;no, I can't help&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== The forum ===&lt;br /&gt;
Regarding helping others on the forum, thinking back on my early days with FG I'd have to say that what's obvious to a long-time FlightGear person isn't necessarily obvious to others. Sometimes people do search for answers first, but they may not be asking the right questions or have a deep enough knowledge of a system or community to proceed.&lt;br /&gt;
&lt;br /&gt;
New people might not think to look in the wiki (yes, there are links all over the place), or try and find an answer there first. Or maybe they did try and failed but didn't mention it. The wiki is a fine repository for some deep, often esoteric information, but the information is spotty and it's not the easiest place to hunt for a specific answer. And I can well remember when the information in the FG docs folder might as well have been written in Martian, given what I knew at the time. Heck, some of it is still Martian to me.&lt;br /&gt;
&lt;br /&gt;
It's usually obvious when people are asking questions in the forum thoughtfully, and when they are being casual, lazy, or discourteous. But sometimes it isn't so clear. There may be language barriers, or they may not know exactly how to ask, or they may simply be shy of a new environment. Like Someguy, I cringe when I see our good people tell somebody to go on an Easter-egg hunt for their answers. If it's tiresome, which is understandable, or one doesn't feel like helping, then it's wiser to simply not respond.&lt;br /&gt;
&lt;br /&gt;
What's at stake isn't getting person X to information Y. In 90%+ cases, it won't matter much-- person X will likely move on to some other hobby. But every now and then, that new person who asked that same tired-old question stays around and eventually becomes a Gijs, or a Heiko, or a Someguy, or a Melchior, or an Anders, or an Emmanuel, etc. The more open, friendly and patient we are, the more likely it is that we will retain these incredibly valuable sorts of people and keep moving forward.&lt;br /&gt;
&lt;br /&gt;
=== Coordination ===&lt;br /&gt;
It'd be really nice to have a better feeling for what is in the works and to know about what is going to change beforehand, rather than pulling the new version to learn that suddenly nothing works and spend the next week trying to figure out just what the change has been. Been there, done it, not pleasant.&lt;br /&gt;
&lt;br /&gt;
Some interface to exchange that kind of information would be really helpful, because some developments depend on how others are structured. In general, more talk between core C++ developers and other developers wouldn't be a bad thing.&lt;br /&gt;
&lt;br /&gt;
=== User facts of life ===&lt;br /&gt;
* Those that can't &amp;quot;create&amp;quot; an entire aircraft from a blank screen will have to wait for someone to build it. Don't post a blind &amp;quot;please build this&amp;quot; advertisement. My guess is that has never worked, and is borderline rude, asking for something without ever offering something. Accept your limitations, enjoy what we have.&lt;br /&gt;
* Don't believe that you are the _only_ user, and therefore represent everyone when you stand on your forum soapbox. _Everyone_ may not share your emotion.&lt;br /&gt;
* You have no power and control, and that's not a bad thing. You reap the benefits of many people that have come before you, and even those that may come after you.&lt;br /&gt;
&lt;br /&gt;
=== Developer facts of life ===&lt;br /&gt;
* You have power in what you do, and you have total control. This does affect your relationship to the person that is a &amp;quot;Non-developer&amp;quot;, whether you believe it or not. Choose to realize this, and be respectful.&lt;br /&gt;
* As a &amp;quot;developer&amp;quot;, you have been given power and control over something that really doesn't belong to only you. Without a board of directors to oversee your actions, realize that _do_ have a responsibility to provide your part of the &amp;quot;development&amp;quot;. You have to consciously choose to do this, for power and control are strong drugs.&lt;br /&gt;
* For the most part, there was someone before you, and their will be someone after you. Your actions will help ensure there is a place for someone after you. Remember the past. Don't be the reason that those before you chose to leave.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
There's simply no use in complaining that FlightGear isn't the community you'd like it to be - but there is use in working to make it the community you like it to be. It's just requires more effort &lt;br /&gt;
&lt;br /&gt;
May FlightGear always provide the beauty of flight to those that are bound by gravity.&lt;br /&gt;
&lt;br /&gt;
== To be discussed ==&lt;br /&gt;
* don't like this conceptual division between users and developers. A user is just a developer who hasn't popped the hood on their car yet.&lt;br /&gt;
&lt;br /&gt;
* most of us try to read the forum and the lists regularly, and we also try to respond to thoughtful topics&lt;br /&gt;
* I care if I can communicate with you on a professional level and if anything comes out of it in the end, or if I get the feeling I'm just wasting my time. That's all.&lt;br /&gt;
* Fact of the matter is - you're a potential contributor until proven otherwise, and as far as I am concerned, that gets you basic politeness, some measure of attention and some measure of help from my side, just like I would do for anyone else asking in the forum. If you want more (information, help, of my time, of Hooray's time ...), you should keep in mind that at this point you want something from the community, and so *you* need to adapt to the community, understand how it works and play by its rules - not the other way around. To say it very bluntly - FlightGear will survive without you if needed (as it will survive without me if needed).&lt;br /&gt;
* The time I am willing to spend trying to talk to you in the hope of any productive outcome is limited, it is about to be exhausted because I am feeling increasingly annoyed and see no real outcome except more talk. That may not have been your intention, but since it's brought to your attention that people start feeling annoyed, it might be a good idea to change the way you communicate. The chances that the devel community will adapt to your style of work are very slim indeed.&lt;br /&gt;
* Your lack of understanding here is your inability to acknowledge that people are aware of the alternatives and have consciously chosen to organize the project the way it is. Speaking for myself, I simply don't want it done your way and would go away the day things become organized your way, and several other core developers have expressed similar sentiments on the devel list.&lt;br /&gt;
* You assume that people basically have no clue and all you need to do is to point out how to make it better, but several people have considered the alternatives already and decided otherwise. This is what you need to understand.&lt;br /&gt;
&lt;br /&gt;
* Influence in the FlightGear community scales roughly with level of your contributions.&lt;br /&gt;
* Obviously, long-time contributors have a more sizeable track record of contributions which in turn gives their voice more weight&lt;br /&gt;
* Things are done the way the majority of contributors thinks they are best, not necessarily by some general consensus.&lt;br /&gt;
* unnecessary community interactions are eating up time&lt;br /&gt;
* people able to build FlightGear from source, who know C++, who have some spare time to contribute to FG are in very short supply&lt;br /&gt;
* developers getting involved in lengthy discussions cannot write code at the same time&lt;br /&gt;
&lt;br /&gt;
* Asking people to work on some particular problem that's bugging you, is generally alright - but you need to be willing to make your case and do that in a fairly compelling fashion. We have some really long-standing issues in FG, some of which most of us (including core devs) agree are IMPORTANT. This is a rare situation, but there really are things that pretty much everybody agrees are REALLY IMPORTANT to work on. So there's some very real competition and it won't be easy to talk people into doing something for you. &lt;br /&gt;
* Another important thing is staying focused: it isn't helpful to raise dozens of issues in a short amount of time if you cannot also solve them, regardless of how &amp;quot;real&amp;quot; and valid these issues might be.&lt;br /&gt;
* signal/noise ratio&lt;br /&gt;
&lt;br /&gt;
* Frequently, people keep emphasizing that this attitude is related to their  inability of fixing things themselves. Now, we are not going to suggest you learn how to build FG from source or how to program in C++. But rather, we suggest you focus on a handful of issues that truly annoy you, and where you think you could actually help and contribute solving them. That would surely help improving your signal/noise ratio, basically giving you opinions more weight here. There should be a fair share of opportunities to get involved in meaningful ways. We have a bunch of wiki resources to get people started contributing in various ways.&lt;br /&gt;
&lt;br /&gt;
* People asking for increased project management and more coordination may want to ask themselves how they would respond if they were exactly told what to work on, rather than just doing what they are interested in. Seriously, nobody is asking you to contribute within a particular domain at all, which is also a good thing and attracted many of the long-term contributors to the project in the first place.&lt;br /&gt;
&lt;br /&gt;
* When comparing FlightGear to other OSS project, it is important not to compare apples and oranges from a manpower perspective. We don't have the manpower here to establish a proper hierarchy like many of the more prominent projects (think Mozilla/Firefox). There's is TONS of management work happening behind the scenes, there's the Mozilla foundation and there are donations and so on - so Mozilla development is not only about coordinating a bunch of programmers who happen to develop a piece of software in their limited spare time, they have passed that point long ago.&lt;br /&gt;
&lt;br /&gt;
* If you are trying influence things: That's fine and a valid motivation. The thing is however, your ability to bring influence to the project is directly proportional to your impact and track record in the project. Actually, this isn't untypical for most OSS projects.We have people here who have been part of this project &amp;quot;just&amp;quot; voicing ideas, opinions and feature requests - some of whom have been involved for YEARS. While their feedback may be appreciated, their ability to direct things is still fairly limited - especially when compared to people who actually brought changes to FlightGear and who have a track record of doing so (sometimes even within a fairly short amount of time). You can find numerous examples actually, of people who have not been a member of this community for very long, but whose input and feedback is not just appreciated and respected but who are having a certain impact on the direction the project's heading. This is never because of &amp;quot;talking&amp;quot; or discussing things, it is because of DOING things.&lt;br /&gt;
&lt;br /&gt;
* FlightGear has never been in a better shape than it is in right now. In fact, admittedly FlightGear -as a software project- has actually been in a much worse shape for many years (for example: no forums, no wiki, no bug tracker, no git repository, no Gitorious merge requests, no build server, no formal release procedures etc)- still it somehow managed to stay around for over 10 years, despite all its deficiencies...&lt;br /&gt;
&lt;br /&gt;
=== Mods and forks (built on top of FG) ===&lt;br /&gt;
&lt;br /&gt;
* You're here asking for help from the FlightGear community. Help is hard to find in the first place (that's a fact, not a threat - there are calls for volunteers for many different projects that go unanswered).&lt;br /&gt;
&lt;br /&gt;
* You're planning to fork in a substantial way. The difference for me is - as long as what you're doing is FlightGear, I will care that my own development work (integrated weather system) runs fine on your system because I develop for FlightGear. If T4T is off to the degree that I'd have to download and compile different code, then I won't care that my weather system runs (it may or may not, dependent on what you do to the environment) - it has become your problem. Not because I am mean, but because I don't have the time and inclination to maintain compatibility to two different development branches. Whenever you develop using a different repository, you are 'them' and we are 'us'. We can be a friendly 'us' and 'them' as between FlightGear and JSBSim, we can exchange code, people can be part of both projects and maintain compatibility and work together - but the basic fact is that there is 'us' and 'them', and (probably like many others) I feel responsible for my part in 'us' but not for my part in 'them'.&lt;br /&gt;
&lt;br /&gt;
http://forum.flightgear.org/viewtopic.php?f=18&amp;amp;t=13298&amp;amp;p=134793&amp;amp;hilit=supply+developers#p134756&lt;br /&gt;
* Do you have a clear idea what your project involves?&lt;br /&gt;
* Do you have a clear idea what is already there?&lt;br /&gt;
* Will it help Flightgear?&lt;br /&gt;
* Will my voice be heard?&lt;br /&gt;
&lt;br /&gt;
* This community is far more likely to get involved if you involve it - and that'd mean opening your previous decisions for debate - than if you ask people to get involved with a project of your design which is no longer up to debate (speaking of resistance to change...). Again, that's your call, I'm not threatening in any way, I'm simply trying to explain how things (according to my best understanding) are and what the likely consequences of your project design are. I don't mean to imply that I or others would actively block you if you're not doing it 'the FlightGear way' and hold information back. I hope that is sufficiently clear.&lt;br /&gt;
&lt;br /&gt;
* We get to see new forum members posting interesting &amp;quot;project ideas&amp;quot; here every month, sometimes even several times per week. And we know from experience that &amp;quot;ripping FlightGear down to its core and rebuilding it&amp;quot; isn't going to happen that easily, it's not necessarily because of objection from the community - quite the contrary, sometimes people actually post ideas that everybody agrees would be great additions to FlightGear, ideas that would quite obviously involve tearing down some major subsystem and replacing it with something better.&lt;br /&gt;
&lt;br /&gt;
* Really, FlightGear is where it is now after 10+ years of ongoing development, many contributors (especially core developers) are long term contributors who have contributed to FlightGear for several years.&lt;br /&gt;
Still, FlightGear is a complex piece of software and there is probably not a single core developer who is familiar with ALL of FlightGear (features, code etc).&lt;br /&gt;
&lt;br /&gt;
* all long-term FlightGear users know for a fact that there is usually a short supply of C++ developers, knowing not only how to program in C++, but also familiar with 3D graphics, OpenGL/OSG programming and many other aspects that are important when creating/developing a simulator.&lt;br /&gt;
&lt;br /&gt;
* So we are really standing on the shoulders of giants here, because we are now -after 10+ years- in the position to create significant new features within the constraints of the FlightGear base package, without even touching the C++ source code at all - simply because FlightGear has become so flexible and extensible. &lt;br /&gt;
&lt;br /&gt;
* So I guess you see where I am coming from: new people now asking to &amp;quot;tear down &amp;amp; rebuild&amp;quot; the whole thing, or people asking to introduce DRM-like measures into FlightGear (content protection) are of course not going to receive a very warm welcome&lt;br /&gt;
&lt;br /&gt;
* I consider what you want to do perfectly possible, but I advise you to rethink your strategy: your decision to build upon FlightGear to create a combat simulator illustrates an admirable degree of foresight and experience that many other people with similarly ambitious ideas lack, but announcing to &amp;quot;rip out parts&amp;quot; and rebuild the whole thing is very unlikely to happen any time soon.&lt;br /&gt;
&lt;br /&gt;
* And like I said before: this is not necessarily because we don't want to see this happen: you could probably talk to any core-developer and each of them could tell you that there are a number of parts that SHOULD be ripped out and replaced eventually (i.e. such as some legacy code), but more often than not, things are simply not as easy as they may appear at first glance. When you take a look at the mailing list archives or at the wiki, you'll certainly find plenty of things in the fgfs source code that everybody agrees should be replaced eventually.&lt;br /&gt;
&lt;br /&gt;
* And if people who have experience working with the code for a number of years refrain from making some important changes, you may want to re-consider your strategy.&lt;br /&gt;
&lt;br /&gt;
* After all, this is all &amp;quot;for fun&amp;quot; - it's an open source project, so it should be &amp;quot;fun&amp;quot; and enjoyable.&lt;br /&gt;
&lt;br /&gt;
* you'll have a better chance of getting your code upstream (if that really is your goal) by coordinating your plans with the fg core developers and asking for recommended paths to proceed. Getting your code contributed back is obviously a good idea because it will be much less of a maintenance burden for you guys if your changes become part of the mainline.&lt;br /&gt;
&lt;br /&gt;
* Ultimately, this being open source, you don't need the approval of anybody - as long as you obey the requirements of the GPL, but rest assured: it will be much easier to deal with the FlightGear community and to get help if you play it &amp;quot;nice&amp;quot; and this very help will be very much needed in the beginning.&lt;br /&gt;
&lt;br /&gt;
* Suggesting &amp;quot;drastic&amp;quot; changes is all neat and dandy, but after familiarizing yourself with FlightGear you'll probably see quickly that it doesn't really need drastic changes at all: We have witnessed this in the &amp;quot;Local Weather&amp;quot; project, you could say it now *optionally* replaces the old system, but to work properly it only needed a way to switch off the old code - which just involves setting a bunch of properties (variables) from a Nasal script. There was no need to completely remove the legacy code, it was just made optional by setting a switch at runtime. Similarly, the bombable script leverages hard-coded C++ code for instantiating AI models dynamically - but the objects are controlled from scripting space.&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68397</id>
		<title>How the FlightGear project works</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=How_the_FlightGear_project_works&amp;diff=68397"/>
		<updated>2014-02-28T01:03:17Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Irritations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As FlightGear is becoming increasingly popular each year, we've been seeing a number of controversial discussions regarding the inner workings of the FlightGear project recently. Meanwhile, it is a well-known fact among long-time contributors that the FlightGear development model may seem irritating at first and it is known to cause some confusions or even frustration among new contributors who may already have experience contributing in other flight sim communities or even other OSS software. &lt;br /&gt;
So here's a collection of responses intended to clarify why things are set up this way. People interested in getting involved in the FlightGear community and contributing in one way or another, are encouraged to read this and understand how FlightGear has been able to be successful despite the fact that it does not have any commercial backing or a really structured development model.&lt;br /&gt;
&lt;br /&gt;
A more succinct version of this article can be found at: http://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=15267 (which serves as a really good introduction, people interested in more details, may still want to look at the text below).&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
As FlightGear is getting increasingly popular, we get to see new users coming to our forums and the mailing list every week. Many of them quite obviously very much interested in contributing to FlightGear in one way or another and getting involved in our community.&lt;br /&gt;
&lt;br /&gt;
This is something that all of us appreciate, because this is important to keep the project alive and kicking, so we do truly appreciate and welcome new community members, because this is an important part of enabling FlightGear to grow even more popular. &lt;br /&gt;
&lt;br /&gt;
There's such a huge range of ways to get involved in FlightGear, so that we truly appreciate everybody's skills. &lt;br /&gt;
&lt;br /&gt;
Please don't think that you cannot contribute to the project, because you cannot program or because you cannot design 3D models. Creating a flight simulator is a huge undertaking and there are many tasks which may seem less obvious to outsiders, such as helping maintain the wiki, moderating the forum, reporting spam, triaging the bug tracker, reviewing bug reports, helping fellow users and so on.&lt;br /&gt;
&lt;br /&gt;
== Irritations ==&lt;br /&gt;
However, sometimes we get to see some irritations among new community members and more seasoned members, because people may have certain expectations and assumptions on contributing to FlightGear. This has frequently caused some heated discussions, sometimes even flame wars on both, the devel mailing list and the forums.&lt;br /&gt;
&lt;br /&gt;
Apparently, this occurs frequently when dealing with people who already have experience developing software or contributing to open source software, be it professionally or as a hobby.&lt;br /&gt;
&lt;br /&gt;
Over the last couple of years, such discussions have taken place increasingly and they are obviously eating up considerable resources, given that spare time is our most precious resource to contribute to the project.&lt;br /&gt;
&lt;br /&gt;
It seems, some people are trying to apply their own experiences and assumptions to FlightGear as a software development project, which is sometimes causing grief and anger because FlightGear seems so different from anything they may know already.&lt;br /&gt;
&lt;br /&gt;
The best approach when encountering such problems is to take a step back, evaluate the goals and the means available, and come back with solutions or valid proposals. Several developers have taken long breaks, then returned to contribute again many features.&lt;br /&gt;
&lt;br /&gt;
== Passion ==&lt;br /&gt;
Honestly, we are all part of this community because we appreciate some things about this open source flight sim named FlightGear. So we are always sorry whenever our tone becomes inappropriate or even harsh.&lt;br /&gt;
We sincerely believe that you can contribute in more meaningful ways than you may currently perceive, without just voicing criticism. Obviously, it really is important to get along with people, regardless of differences in opinions.&lt;br /&gt;
&lt;br /&gt;
== Welcome to the club ==&lt;br /&gt;
To tell the truth: Most of us have been in that situation at some point. To most of us, the way FlightGear works as a project has been somewhat irritating and confusing in the beginning. So, we may actually share your initial confusion, because most of us went through the same process at some point.&lt;br /&gt;
&lt;br /&gt;
Honestly, you could search the forum and mailing list archives and probably find heated responses posted by even the most seasoned contributors. Some of us may have a track record of thousands of postings now and may seem like fairly knowledgeable contributors , but this is just a result of having been part of the community for a number of years, despite the deficiencies that we may have perceived initially. Frequently, some of our very first posts were also just voicing criticism.&lt;br /&gt;
&lt;br /&gt;
It isn't even unlikely that new community members are bringing up long-term issues that have been annoying most of us for quite a while already. We are probably more aware of these issues and their implications than you are. But just saying that something is &amp;quot;broken&amp;quot; is simply not the way to affect the situation for the better. Some of us have tried and failed doing exactly that. To no avail.&lt;br /&gt;
&lt;br /&gt;
Like you can see now, we've changed our strategy: We are trying to act like we want others to act, we are trying to be the change we'd like to see.&lt;br /&gt;
&lt;br /&gt;
Really, your situation may not be any different than ours: We've all been there. You need to be patient and absorb what we're telling you. We have no doubt that you'll get along with most of us, especially if you can demonstrate that you are actually listening and absorbing the advice we are handing out and applying your new knowledge.&lt;br /&gt;
&lt;br /&gt;
So this is an attempt at explaining things in a non-heated fashion, so that we can point aspiring contributors to this article explaining some things which may not be directly obvious, but which we feel are important to understand why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2012), this is largely copied together from various flame wars that have taken place in the last 12 months, so the format still needs some work, and things may seem pretty inconsistent and roundabout in some places.&lt;br /&gt;
&lt;br /&gt;
== Proposing changes ==&lt;br /&gt;
This is not to say that things are set in stone, but the current development model is the result of a certain evolution, and it's exactly this what has enabled FlightGear to survive and grow for over a decade already, without relying on commercial backing, funding organizations or formal project management. &lt;br /&gt;
&lt;br /&gt;
So, we would like to ask you to keep these factors in mind when proposing changes and when voicing recommendations, and when discussing such issues with fellow community members, publicly or privately.&lt;br /&gt;
&lt;br /&gt;
It requires patience to work together and to get something useful out. Sometimes you just have to live with a problem, work around it, and talk to people for a long time. It takes time, but I've experienced that you can convince core developers that your particular project is important enough to warrant attention and support. Everyone's time is limited, and it's all volunteer work. For example: If you complain that shadows are absent, it will change nothing. What you need to do is convince people that shadows would make a huge difference - possibly even with a proof of concept code.&lt;br /&gt;
&lt;br /&gt;
== Ideas getting ignored or rejected ==&lt;br /&gt;
Let's be honest: Not every suggestion made in the forum or on the devel list is good. While no one deserves to be belittled, a fair share of suggestions deserve to be ignored (unless you feel you are entitled to 30 minutes time from, say, a 3d rendering specialist who explains to you in detail why your idea really doesn't work in non-technical terms). &lt;br /&gt;
&lt;br /&gt;
There are many questions asked where the answer can be found in the Wiki with a short search. There are suggestions being made which even on first glance are impossible in practice. It's not the developer's job to deal with these things - it's your job as a forum user to do so. And not every rejection needs to be taken as personal grievance carried around for the next years - sometimes one just has to allow for the possibility that one has been wrong.&lt;br /&gt;
&lt;br /&gt;
Often, it does require a certain amount of background knowledge to truly understand why a certain idea or feature cannot be implemented. New users, and even new developers are likely to lack this knowledge. You need to be somewhat familiar with the code bases involved in order to understand some things.&lt;br /&gt;
&lt;br /&gt;
Since I work on FlightGear, I have suggested a lot of things - about 10% of which have been reacted on. To give you a current example: I've noticed that models from Nasal load way slower than needed, and I've asked that someone looks into it. I have not expected that somebody immediately jumps on it and spends 10 hours of his time tracking what is going on and delivers a detailed report in non-technical terms later. It has taken a few months and posting several examples to convince people that what I see is real. Then somebody looked at it and traced it to the (non)-existence of the osg texture cache. Now, people are debating the pros and cons of activating the texture cache by default, because it might affect stability and memory usage in an unwanted way - and I don't know if it will eventually be there.&lt;br /&gt;
&lt;br /&gt;
I have no problem with that - neither with convincing people that my suggestion is worth looking into, nor with the fact that other issues I have not thought of need to be taken into account. But it seems a lot of people in the forum expect that because they suggest something, someone will take it very seriously and act quickly and are then disappointed when this isn't actually the case.&lt;br /&gt;
&lt;br /&gt;
Coming from the other side, having worked on a problem I often know that a particular thing suggested cannot be done easily. If I have the time, I can take 20 minutes to explain why. Sometimes I don't have the time, then I just write a small sentence indicating why it doesn't work. Probably then somebody feels ignored. Can't help it - if I'd try to take the time, my 3 year old daughter would feel ignored, and she needs my attention more.&lt;br /&gt;
&lt;br /&gt;
I just lack any sign from the user community that they're willing to accept that a suggestion or feedback can in fact be dismissed, and that a developer's time to explain why a suggestion cannot be followed is also not unlimited. I have no problem with the users providing 50% of an opinion where the project should go - as long as they don't expect that that opinion necessarily translates into a decision.&lt;br /&gt;
&lt;br /&gt;
== Lack of feedback ==&lt;br /&gt;
Lack of feedback - same thing. Go out into the forum, download interesting addons, talk to the people who provide them, let them know what you think. If you want feedback for your own work, start by giving feedback to the work of others. That's how it works. And yes, lack of recognition is sometimes a problem. Basically, you have to do things because you want to, and you have to be enthusiastic enough to pull others along so that they can see and appreciate your vision of how things could be. Again, requires a lot of patience. I wish that many things here would be different. I wish people would collaborate on projects more often, instead of everyone developing his own pet project and half of them dying for lack of interest. But I've come to realize that it's not going to happen because I wish it to happen - things are only happening my way if I slowly work towards it, talk to people an unholy amount of time and try to convince them that I am serious and have a case. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And to people who have stated (rightly or wrongly) that they don't feel the core developers are active enough in the forums:&lt;br /&gt;
&lt;br /&gt;
When asking on the devel list why people keep the mailing list separate from the forum, the response I got was along the lines of 'We like to exchange information, and in the Forum we get to hear only noise - petty complaints, lazy questions and so on - so we stay where the information relevant for development flows'.&lt;br /&gt;
&lt;br /&gt;
So, it goes two ways (I have been saying this before, haven't I?) - the probability that people will listen to what you have to say increases if you can convince people that they take you seriously.&lt;br /&gt;
&lt;br /&gt;
When I started to write that I want to rewrite an integrated weather system, pretty much no one took me seriously because it's a large chunk of work and you need to know what you're doing, and, face it, there's a lot of noise being made about what people will do who drop it later after a week. After I had written a working demonstration, people started to believe that I know what I'm talking about. Sometimes that's what it takes.&lt;br /&gt;
&lt;br /&gt;
From the other perspective, I would do the same. If somebody tells me he's going to implement volume rendering for clouds, I'd simply say 'Go ahead, I don't think it can be done.' Once he demonstrates to me that it can be done, I'd be willing to work with him. That makes a lot of sense, because the amount of ideas that can be realized and have a person behind them who is willing to see it through is a tiny fraction of the amount of ideas being presented - so it pays to focus on those who have a shot at success.&lt;br /&gt;
&lt;br /&gt;
So, I'd like to see some appreciation for the fact that there is no a priori right to be taken seriously, no matter what you say, but that this is something you need to work on. I also think that if the forum would offer a lot of high-quality development related discussions then you'd see much more active core developers here.&lt;br /&gt;
&lt;br /&gt;
== Users vs. contributors ==&lt;br /&gt;
We have here two groups of persons (with blurry boundaries): The first group takes something for free, which is a flight sim which you download from servers for which someone probably pays real money. The second group gives something, which is their time to create the simulation.&lt;br /&gt;
&lt;br /&gt;
You'd expect in the real world that if I give you something for free, that this earns me your gratitude. But this is the internet - so instead of gratitude, you somehow assume that in addition to giving you something, I am also expected to care about what you want, and it disturbs you that I don't really care for people who take for free and ask for more, but that I care for those who take and are prepared to give in return.&lt;br /&gt;
&lt;br /&gt;
On the other hand, a 'user' in your concept of course is supposed to be entitled to not only acquire FlightGear, but also get support in the forum and should also have a voice ( in what is done for the project (by others), and for this he's expected to do what in return? Nothing.&lt;br /&gt;
&lt;br /&gt;
If it disturbs you that I don't share this sentiment, then so be it, but let me be very clear: I have every sympathy for people who come here and offer to return some (whatever small) contribution back for getting FlightGear. I get angry when I see their contributions rejected for opaque reasons, when I see disparaging comments made that this is 'merely modelling' or 'just Nasal', when I see someone being discouraged from honestly trying to contribute. I have also sympathy for people who take FlightGear, enjoy using it but don't want to contribute and still ask politely for some help in the Forum.&lt;br /&gt;
&lt;br /&gt;
I just have no sympathy for people who take, are not prepared to do any work, but feel entitled to say how others should do their job and issue demands for features, aircraft, documentation, whatever. You may call that elitism, I call that my sense of fairness.&lt;br /&gt;
&lt;br /&gt;
== Lack of Support and Backwards Compatibility ==&lt;br /&gt;
FlightGear is a volunteer effort and no one is paying several thousand dollars a year for software and related support each year. Since legacy support is expensive (IE. time/effort) one of the ways a project like FlightGear deals with this is to limit legacy support. If this were not the case then time/effort would be expended on legacy support that could be used for new features and bug fixes. Like most things there are trade offs involved. Which do you want - more advanced FlightGear and aircraft or better support for older versions? This is a common issue for open source software and most prefer to look forward rather than looking back.&lt;br /&gt;
&lt;br /&gt;
For JSBSim there been has incremental changes in almost every version of FlightGear. These changes did things like add features or change the way a specific feature acted. For example around FG 2.4 there where changes to the engine cooling code (to allow modelling of cooling systems with things like cowl flaps) and also to the nose/tail wheel steering code (to allow toggling between locked and swivelling steering wheels). Many aircraft are unaffected by these changes because they don't make use of the enhancements but some aircraft do use these enhancements. For example the JSBSim P-51D uses both of these features and it probably will not work correctly (IE. it will over heat/run cold or not have correct ground handling) if used with FG versions before 2.4. There is also the possibility that it will throw all kinds of error messages when used with an older version of FG but none of this has been tested at least by me. So it may be OK with a few missing features on 1.9.1 or it may fail totally. We simply do not know. If someone complains about the JSBSim P-51D not running correctly on FG 1.9.1 my reply is too bad you need to upgrade to 2.4 or later and get back to me if things aren't working after the upgrade. There may be other more recent features that other aircraft use/leverage that don't affect the P-51D so I think this is a significant issue.&lt;br /&gt;
&lt;br /&gt;
In addition, FlightGear itself has been a moving target with a constant stream of new features and enhancements some of which require changes to at least some aircraft.&lt;br /&gt;
&lt;br /&gt;
== Number of aircraft vs. quality of aircraft ==&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
One thing to consider when comparing real-world handling qualities versus simulated handling is the control devices. I use a Logitech Gamepad which is not ideal by any means, it serves my purposes and gives me acceptable handling capability. The biggest problem with it is the small throw of the sticks which makes them very touchy. Even if you have a full size control column, you lose a lot of fidelity due to the lack of control feedback as well as lack of &amp;quot;seat of your pants&amp;quot; feedback. Both the control throw and the feedback issues result in a great loss of fidelity which makes it impossible to control an aircraft in simulation anywhere near as well as the real thing. &lt;br /&gt;
&lt;br /&gt;
Taking the P-51 issue as an example; even if the FDM did closely emulate the real thing, the reaction time to correct for any divergent yaw on takeoff will be much slower than it would be in real life with more sensory cues. Once you do react, you can't react with the same accuracy as real life due to the lack of control feedback, so your inputs will tend to over correct the situation which in turn you will be slower to react to.&lt;br /&gt;
&lt;br /&gt;
This can obviously be corrected by making the FDMs less touchy than the real-world aircraft, but this then compromises reality. So it takes a bit of a balance.&lt;br /&gt;
First, let me say that there are HUGE fluctuations in the quality of FG flight dynamics models, and that I don't like all of them. This is why I specifically wrote which planes I use and asked which plane you've been flying. Some FDMs are pretty bad, but others (the Seneca-II for instance) are made by people who fly the real thing, yet others (the P-51D, the F-16) are done using a huge pile of available test data and have been tweaked literally for hundreds of hours to agree with the real performance and capabilities. It's these FDMs which I like and which I'm defending here.&lt;br /&gt;
&lt;br /&gt;
So, you ask why some posters are so enamoured with the FG FDMs. For once, because I know physics. When I do certain things, I know how the aerodynamics works out, and I expect to find that in the simulation. &lt;br /&gt;
&lt;br /&gt;
For two, I've been flying gliders for a while. I distinctly remember the feeling of making tiny not really conscious movements with the stick all the time to fly the thing. I want to have that experience reproduced by a flight sim, it's part of the feeling of immersion - and the top-end JSBSim models do that for me. Also, I want to _do_ something while flying, not just get my plane on rails and watch the scenery.&lt;br /&gt;
&lt;br /&gt;
Third, because I find it educational. I for instance happen to know that the F-104 Starfighter was pretty accident prone. Just 10 minutes flying around with the thing told me why - when the plane becomes unstable, what manoeuvres you can and can't do (I think the Starfighter is also one of these FDMs with plenty of real life experience used by the creator...). I find it interesting to explore how the SR-71 reaches Mach-3 and why it needs to do the funny 'dipsy' manoeuvre. I find it instructive to understand why one has to fly the Concorde by the book and how fuel consumption figures change if I don't. I want to understand how thrust vectoring can be used and how stable it is. I want to learn what's different about a helicopter. For all this, I need the real physics of flight simulated as faithfully as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the creator of several aircraft made for FlightGear including a heavily researched Velocity XL and an Edgley Optica, I can say the above observation is nonsense. Fly one of my planes and the controls won't do diddly under 30 knots unless a pilot's handbook or a pilot's report indicates they should. Even the worst flight models in the FlightGear world don't have fully effective controls while sitting still. As for inherent stability, my own efforts are easily trimmed at cruise speeds for relatively benign, hands-off flight to match the flight manual or pilot reports.&lt;br /&gt;
&lt;br /&gt;
Why are some so enamoured of FG flight models? I'll state what Thorsten wrote in another way. I'm not a licensed pilot, though I do have stick-time in several light planes. But I'll never fly in an Optica, and I'm very unlikely to ever fly in a Velocity or a Grumman Goose, and no sane airline is going to let me into the flight deck of an MD-80. By building these models, I can gain an understanding, an insight, and an experience with these aircraft that would otherwise be closed to me. I can know them in some ways that even a pilot might not know them. The closer the simulation matches the real aircraft, the closer my experience comes to that aircraft. I can't experience these planes unless they are correct in every detail that matters, and pursuing that correctness is a long journey, perhaps one without an end.&lt;br /&gt;
&lt;br /&gt;
Maybe I misunderstand the notion of options to make a plane harder or easier to fly. For me, the point is to simulate the aircraft. If the aircraft had functions or gadgets that facilitated making it harder or easier to fly, then fine, that's part of the simulation goal. But it's not the same as a game, where I can select EASY, NORMAL, HARD, or HURT ME PLENTY. There are many planes where someone like me has no business trying even the simulated version. And no real C172 or MD-80 has difficulty modes or configuration files.&lt;br /&gt;
&lt;br /&gt;
Are there &amp;quot;crappy&amp;quot; flight models in the FlightGear world? Sure. Plenty of them. Maybe most of them. But there are some darn nice ones, some made by pilots with hands-on experience, some with the feedback of pilots, and some by non-pilots using meticulous research. Many are simply nice modelling efforts, waiting for someone to come along and create a good flight model, or add systems simulation, or cockpit instruments, or some other contribution.&lt;br /&gt;
&lt;br /&gt;
In the MSFS world, the typical model is a commercial product, released as a complete and well-rounded package. In the FG world, few models are finished, complete efforts. Developers work on what they know and what interests them, and most are open to contribution from others. Few works are above improvement. The neat thing about the FlightGear environment isn't that it's free. It's that if you don't like some aspect, you're welcome to help refine it. You can learn to improve it yourself, or you can help by suggesting well-conceived, objective changes to the authors. Most will listen. And you just might learn something along the way that will surprise or enlighten you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By saying that users can easily tweak the FDM in FlightGear, I am not implying that the the flight models or the FG architecture are inherently defective. There are many FG aircraft with great FDMs, other are not so good. Those that aren't so good are usually because they are not completed as indicated by their production status. As with any software product in beta release, the users are free to provide feedback directly to the developer. As this is an open source project, that feedback is often in the from of contributing code/FDM enhancements directly to the author for incorporation into the model. With commercial flight sims, you are always seeing the polished product because they would not get away with selling an unpolished product. With FG we are not burdened by the need to make a profit or satisfy our customers. We ARE our customers so we only need to make ourselves happy 8) So with FG you get to see a preview in the form of a pre-production or alpha release. This gives the users an opportunity to provide feedback directly to the developers, and often this feedback can be incorporated into an updated version of the aircraft in a few days or less. This is not a remote possibility for a commercial sim. I think this is why those who use FG like it so much. We are not content to use something out of the box, we are far too picky!&lt;br /&gt;
&lt;br /&gt;
== Fictional Aircraft ==&lt;br /&gt;
FlightGear is developed by a community of volunteers from all over the world, we contribute in whatever way we see fit, if you disagree with the way FlightGear development is going, your best chance to affect it, is by starting contributing yourself. FlightGear could only progress so far without any commercial backing for over a decade, because of FlightGear contributors and their very passion for turning their own ideas into FlightGear features.&lt;br /&gt;
&lt;br /&gt;
FlightGear isn't only developed with a single role or purpose in mind, FlightGear is to be understood as a framework for developing new aviation related features, including fictional features. We have hundreds of &amp;quot;aircraft&amp;quot; and &amp;quot;vehicles&amp;quot; available in FlightGear, only a fraction of those are fictional, and most of the fictional ones are not even well-developed, you will surely be able to find other aircraft that you are interested in, see: http://www.flightgear.org/download/airc ... ilterable/&lt;br /&gt;
&lt;br /&gt;
So until you roll up your own sleeves, let's just appreciate the variety of aircraft and other features to be found in FlightGear, including the X-wing star fighter from Star Wars, Star Trek space shuttles and lots of other passionately developed 3D models, like the BlueBird for example&lt;br /&gt;
&lt;br /&gt;
FlightGear doesn't necessarily have a real &amp;quot;fictional side&amp;quot; - it's just that we all needed to get started somehow. Contributing a completely new aircraft is obviously difficult. Contributing to existing aircraft is useful, but it doesn't teach you all of the skills required to create an aircraft from scratch. So people who want to do a full aircraft, need to start with something simple and &amp;quot;fun&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So what new contributors often do, is creating &amp;quot;fun&amp;quot; vehicles to learn how FlightGear works.&lt;br /&gt;
&lt;br /&gt;
Aircraft like the ufo, ogeL, bluebird etc were usually created by people in their initial phase of becoming familiar with FG - for example, the ogeL was made by the same guy who ended up modelling the Seneca, one of our most-developed (and maintained!) GA aircraft in FlightGear: http://wiki.flightgear.org/Seneca&lt;br /&gt;
&lt;br /&gt;
s you can tell from looking at the wiki, the ogeL aircraft developer has not only become the developer and maintainer of the Seneca aircraft in FlightGear, but he also has become a FlightGear core developer writing C++ code and maintaining the autopilot system for example, and he also happens to be a CPL-IFR/ME rated pilot in real life, who owns the Seneca he modelled for FlightGear.&lt;br /&gt;
&lt;br /&gt;
Obviously, contributing to all these areas in FG takes time, a steep learning curve is an unfortunate but important part of it - rarely, do we see people who immediately start out with complex and well-developed aircraft, it's a process - and we all needed to get started at some point. Just because we contribute &amp;quot;playful&amp;quot; things to FG, doesn't necessarily mean that we are not interested in &amp;quot;realistic aviation&amp;quot; as you can see.&lt;br /&gt;
&lt;br /&gt;
You will notice that many long-term contributors actually have an aviation-related professional background, be it flying (commercial, private, ATPL), software development, maths, physics, GIS or whatever. Among the long-term contributors are people with PhDs, Masters, commercial pilot rating, PPL or retired military pilots, and even one test pilot...&lt;br /&gt;
Still, 3D modelling is a completely new skills, and needs to be learned from scratch - which applies especially to people who &amp;quot;only&amp;quot; have a real background in aviation, but not in computers and/or games.&lt;br /&gt;
&lt;br /&gt;
Creating the ogeL was obviously simple and fun, creating aircraft like the Seneca requires tons of skills, experience and expertise that you don't end up having &amp;quot;automatically&amp;quot;. And it requires tons of dedication and discipline.&lt;br /&gt;
&lt;br /&gt;
I hope that puts things a little into perspective.&lt;br /&gt;
&lt;br /&gt;
== You need development guidelines ==&lt;br /&gt;
You might have made general statements like 'There should be clear development guidelines', 'the project should not depend on a single person being around' or 'the developers should pay more attention to the users'. In theory, all these are beautiful - and who would object that these are all good things?&lt;br /&gt;
&lt;br /&gt;
The problem is that the reason that these things do not exist already have to do with how things are in practice. &lt;br /&gt;
&lt;br /&gt;
The consequence of developers paying more attention to what users want, rather than what they are interested in, and not being free to ignore suggestions is that a developer potentially is asked to work on something he personally dislikes, just because enough users want it. &lt;br /&gt;
&lt;br /&gt;
Who gets to decide what a relevant suggestion for the benefit of the project is and what a petty suggestion for the benefit of a single user is?&lt;br /&gt;
&lt;br /&gt;
Who gets to determine the guidelines and how - and what happens with people who don't want to follow? What happens if a developer doesn't want to code a feature even if 500 users signed a petition? What happens to a developer who belittles a contribution, and who enforces that and how? Once you start thinking these questions through, the moral high ground of the theoretical principles becomes a mud field of messiness and compromises.&lt;br /&gt;
&lt;br /&gt;
I've learned in the past year or so that FlightGear development is a messy place. It simply isn't structured in the clean and neat way I have in mind. Unfortunately, I've also come to realize that I am part of the mess - the way I work simply doesn't fit in with the equally clean and neat way others have in mind.&lt;br /&gt;
&lt;br /&gt;
== Telling volunteers what to do ==&lt;br /&gt;
Posted by MAKG:&lt;br /&gt;
&lt;br /&gt;
; Rule #1&lt;br /&gt;
: You can't tell volunteers to do anything. You can ask, but you have to motivate it if you want good and timely work, or any work at all.&lt;br /&gt;
&lt;br /&gt;
; Rule #2&lt;br /&gt;
: Volunteers may or may not be inexperienced -- it has to be evaluated and management is different for the two cases. Allow a lot of time for inexperienced developers.&lt;br /&gt;
&lt;br /&gt;
; Rule #3&lt;br /&gt;
: Let the volunteers learn something. You can tell them the right way to do something, and they may or may not listen. They are volunteers; let them do what they want even if it means redoing the work at a later time (example -- I had an undergrad student code an early telescope trajectory algorithm -- he wanted to numerically integrate rates because it was a whole lot simpler to derive; I explained that numerical stability would be much better with analytic positions. He coded rates, it was unstable, and he redid it as positions later. This was an extremely valuable lesson). Keep in mind that sometimes the volunteers are right...be prepared to learn something from them (the same student insisted on making a simulated sky, over my objections that it was unnecessary for the task at hand and time consuming -- and it turned out to be the single most valuable feature we have).&lt;br /&gt;
&lt;br /&gt;
; Rule #3A&lt;br /&gt;
: Volunteers may want to exceed their abilities. Let them unless it's far beyond their abilities and you can't tolerate a delay (if you're in that zone, reconsider whether a volunteer effort is really appropriate). They may need a lot of help, or their work may need to be redone, or they may not finish the work. This is part of the cost of a volunteer effort.&lt;br /&gt;
&lt;br /&gt;
; Rule #4&lt;br /&gt;
: BE GENTLE. These are volunteers. They won't do work you want/need if it's painful. Coax as needed, but nicely. Steer, don't push.&lt;br /&gt;
&lt;br /&gt;
; Rule #5&lt;br /&gt;
: Though management is necessarily loose with volunteers, it cannot be completely absent. There has to be a coherent vision coordinating the effort, or it will be unfocused and will not serve the needs at hand.&lt;br /&gt;
&lt;br /&gt;
Whether this is open source or not is irrelevant. It's a volunteer effort; there are many of those that don't have to do with software. Think Habitat for Humanity, for instance.&lt;br /&gt;
&lt;br /&gt;
=== Some comments on elitism ===&lt;br /&gt;
Every once in a while, people complain that they feel elitism is a major problem in the FlightGear project.&lt;br /&gt;
&lt;br /&gt;
The notion you may have in mind when you talk about 'elitism' is that everyone should be equal - applied to FlightGear, that everyone's opinion of how things should be heard and should matter about equally. In real life, that's how democracy works - everyone gets a say how to run a state. But there are many situations which do not work like this. Consider a shareholder's meeting - here influence is proportional to the investment. If I meet with 100 other shareholders, but I own 60% of the stock of a company, I alone get to decide what will happen. Or consider a scientific conference - here your influence is proportional to your expertise. You may have your favourite theory why Darwin was wrong, or why climate change is a fluke, but without some scientific merits, you won't be even admitted to the room, and it takes quite a bit more of reputation to get a talk.&lt;br /&gt;
&lt;br /&gt;
All these cases have nothing to do with elitism. In the first case (shareholder), the argument is fairness - if I take 10% of the risk of an enterprise and you take 1%, it is hardly fair that we should have the same voting rights. In the second case (science conference), the argument is efficiency - the amount of potential information is so huge that a careful filtering needs to be done in order to ensure that people spend their time processing relevant information - the scientific filter eliminates time-wasters up front (well, not all of them, as I can state from experience). You couldn't run either a shareholder's meeting or a science conference based on 'everyone is equal' - because while everyone is indeed equal in value as a human being, not everyone is equal in ability, expertise, or is equally involved in risk, work, ...- that's a fact, and to pretend otherwise doesn't help.&lt;br /&gt;
&lt;br /&gt;
You may call that elitism if you like, but my definition of elitism would be that a transfer takes place, i.e. that someone who owns 60% of the shares of a company starts to believe that he should not only get to say how the company is run, but also should get more influence in other areas outside his field of expertise, in other words, he starts to feel that his value as a human being is enhanced.&lt;br /&gt;
&lt;br /&gt;
Experience shows that it makes a lot of sense not to uphold the pretence that everyone is equal with respect to some property when this is in fact not the case. I've been observing internet language communities over the last 10 years where you have basically two classes of users - those who know the language in question, and those who ask questions as they are trying to learn. Almost without exception, communities which treated everyone equal did not work - the experienced users were annoyed at being interrupted in technical discussions, were told that everyone has the same right to enter a discussion, decided that they'd rather discuss in a place without interruptions, thus the communities were left with the users who bring only questions with no experts left to answer them, being unable to get answers they also left and the communities died. The communities which respected expertise worked - it's better to start as low-influence user in a forum and get your questions answered than to start as equal-influence user in a forum and not get your question answered. &lt;br /&gt;
&lt;br /&gt;
== FlightGear is a meritocracy ==&lt;br /&gt;
FlightGear, as best as we have managed to understand the somewhat opaque workings in core development, is a meritocracy - your influence is proportional to the amount of work you do for the project. It's not closed, i.e. you can, if you invest a lot of work into the project, work yourself into a position where you have a lot of influence even starting today from zero.&lt;br /&gt;
&lt;br /&gt;
In general, that makes a lot of sense, basically because you can't vote what work volunteers should do later - or rather, you can, but it's not going to be done if the people volunteering for work don't like to do it, they'll just leave. &lt;br /&gt;
&lt;br /&gt;
In theory, I can spend 5 weeks of my spare time coding something I don't like, but why should I do that? Do you expect me to sit down and do something I dislike just because you (or other users) asked me to do it? Am I supposed to get satisfaction out of doing something for others, even if I don't like it? I don't know if there are people like that, if so, I've yet to meet them. My idea of the deal is: If somebody wants a feature I don't want to code, he can get my help to do it, he can get advice and a well-defined interface, he can get documentation - but that's about it.&lt;br /&gt;
&lt;br /&gt;
Question: Are you personally ready to work for FlightGear on something you dislike if enough users ask you for it? If you answer with yes, then the best way to proceed is that you poll users what they think you should do (within the limit of your abilities), and then do whatever is requested. &lt;br /&gt;
&lt;br /&gt;
There is a continuous transition - people who 'just ask questions' have less influence than people who write frequent feedback and maintain the wiki, then come possibly 3d modellers, Nasal coders, Terrain specialists and finally core developers. So, rather than seeing elitism, I see the chance that every user can in fact start with a small contribution and grow into the project - and that's what I'd like to see improved.&lt;br /&gt;
&lt;br /&gt;
They are different areas of expertise, to be a good 3d modeller and graphics expert is quite possibly as demanding as to be a good C++ programmer, Nasal coding isn't per see inferior, ... so why are they not equal?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason is, simply the dependency structure: FlightGear can run, live and be developed without detailed 3d models, but it can not run without C++ code. If tomorrow all C++ developers quit, that's quite possibly the end of FlightGear, if tomorrow all 3d modellers quit, that's the end of eye candy in FlightGear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's not particularly fair that this translates into the existing project structure, and in fact if you go through my posts here and on the devel list, you'll see that I continue to make the same point. As I said, can't all be fixed in a day... I don't have a particularly large influence either, all I can do is talk to people and ask for patience. You can read up what I wrote in the case of the Bo-105... Good work tends to be recognized eventually - be it modelling or coding. But there's no guarantee, sometimes you have to accept being frustrated, get up and try again. Or you walk because things are not perfect as they are, which is a pity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another thing I don't like is that I feel that the power which comes with having a lot of merits for the projects gets sometimes abused by people who behave in a way that would never be accepted from newcomers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And yet - it's a fine line between idealism and realism here - so suppose for a moment I had the power to do as I want with the project - what would I do? I feel that all users and contributors should be treated with some basic level of politeness. Assume someone violates that rule, but happens to be a core contributor. Idealism tells me that I need to enforce the rule, because everyone is equal in value as human being and deserves to be treated with respect - so quite likely the developer feels pissed off and leaves, creating a huge gap in the project (and, no kidding, there are people who are really important...) - in the end, no one benefits if the project collapses. So realism tells me to let things pass - it's better to mistreat one user than to kill the project and to make all users unhappy in the process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I don't think there's a simple answer to such problems - philosophy has been struggling with them for thousands of years, there hasn't so far emerged a clear preference between an ethics of means and an ethics of ends.&lt;br /&gt;
&lt;br /&gt;
So, perhaps a few folks can step back and see the bigger picture - and maybe share a vision: How would it be if contributing to FlightGear were as easy as contributing to Wikipedia - just what would, e.g. our scenery look like?&lt;br /&gt;
&lt;br /&gt;
And just how can we get there?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There will probably always be irreconcilable differences between those that _create_ a program, and those that _use_ a program. The extremely successful programs/environments are the ones where those that create can understand those that use, and those that use can understand those that create. Everyone here, in the long run, is really here for their own benefit, and until we all understand that, not much will change. Open source has it's downfalls. It doesn't have to please the majority, it doesn't need sales, it only has to please the person that created it. This doesn't mean that people are greedy or selfish. They have no problem sharing, but they don't need to _do_anything_for_you_, if they aren't interested in it.&lt;br /&gt;
&lt;br /&gt;
== You guys need some serious changes ==&lt;br /&gt;
You know, if I wanted to change the structure of a project for better, but would not have any real power (control over servers, commit rights, admin rights in the forum, ...), I'd do the following:&lt;br /&gt;
&lt;br /&gt;
First, I'd try to make sure I understand the situation as it is - not as it appears from my perspective, but also how it appears to others, of what nature the obstacles to change are and so on. Then I'd try to get to talk to some of the people who have the power to change things, and convince them that changing something would not just be better for me, but also be better for them - in fact be better for anyone around. In order to do so, I'd go as far as I can to meet them - talk their language, start describing things from their perspective, value their efforts - and then talk about that one can also see things from a different perspective. I'd do that because I want something - I want them to listen to me, so I want to make that as easy as possible. I'd also prepare a compelling and persuasive case - I'd try up front to sort genuine structural problems from things which are just one-time mistakes which can happen because people are not perfect, I'd sort important things from unimportant things and focus on the important things. Above all, I'd think about what I personally did wrong and what part of the problem I can fix - and how I should do it. And then I'd see if I can't convince anyone that there is merit in my perspective. In the process, I'd also try to find like-minded people who might help me achieve my goals.&lt;br /&gt;
&lt;br /&gt;
== FlightGear is inconsistent and overly complicated ==&lt;br /&gt;
: the fact that it's overly complicated, lacks a single design or even feature set, defies any semblance of cohesion, daunts and confuses would-be contributors with equal severity, and thus produces a wide range of results quality from &amp;quot;embarrassing&amp;quot; to &amp;quot;ready-for-commercial-release&amp;quot; [http://forum.flightgear.org/viewtopic.php?f=14&amp;amp;t=20413#p186983]&lt;br /&gt;
&lt;br /&gt;
I don't see there's anything wrong with FG providing options - many of the features/options we have came into existence at different times, with different needs and requirements in mind. It is often only by accident that they start overlapping, sort of like various FDMs, scripting solutions, interfacing options or weather simulations.&lt;br /&gt;
&lt;br /&gt;
Admittedly, it's far from cohesive, but there's really nothing that we can do about it: It would require a coordinated effort, not just people telling others what to do, but others willing to listen.&lt;br /&gt;
The T4T/combat support situation isn't any different: we have flug's bombable addon as the most sophisticated option available in FG, and then we have various more or less &amp;quot;competitive&amp;quot; approaches, including T4T - yet most folks are not actively seeking collaboration, and doing very little to unify different concepts and approaches. Instead, the focus is often on differences rather than shared needs and common goals.&lt;br /&gt;
&lt;br /&gt;
Which is part of the reason why we have so many &amp;quot;unfinished&amp;quot; aircraft in comparison to other simulators. But like I said, there's really nothing that we, as a project, can do about it - short of adopting a commercial development model and a corresponding hierarchy.&lt;br /&gt;
&lt;br /&gt;
Absent that, we'll have to continue embracing the &amp;quot;Darwinian's development philosophy&amp;quot;, where everybody is free to contribute in whatever form they see fit, and it will be up to time to decide which features are going to stay, and which are going to be ripped out eventually.&lt;br /&gt;
&lt;br /&gt;
All of us have real life obligations, and very few of us are willing to accept additional duties/deadlines, no matter if it's aircraft development, core development, texturing, scenery work, wiki administration, forum administration or other &amp;quot;duties&amp;quot; - still, all this needs to be done by someone. &lt;br /&gt;
&lt;br /&gt;
Thus, it's those who roll up their own sleeves and spend their time contributing who get to influence the way FG development is heading, no matter if others agree or not - the only &amp;quot;hard currency&amp;quot; that counts in this project is time, i.e. the amount of time you have to contribute to the project&lt;br /&gt;
&lt;br /&gt;
Which is also the reason why we are seeing some really skilled and experienced contributors (with very little time on their hands...) being increasingly fed up with the way FG development is going recently, simply because there are quite a number of guys who may not be as experienced or skilled (i.e. not holding multiple CS degrees), but who may be able to spend more time contributing to the project in a different form, which -at least in part- also explains the sheer rate of growth of Nasal scripting in FlightGear, especially in comparison to relatively little new C++ code being committed to the core repository (the canvas system being the obvious exception here, but ironically the Canvas system additionally fosters scripting adoption even further, because base package developers can suddenly contribute in areas that were previously reserved for C++ developers only, such as the GUI, avionics and other fancy stuff).&lt;br /&gt;
&lt;br /&gt;
Honestly, we do have various accomplished core developers who do not particularly like the way Nasal is increasingly used, or the way the Canvas system is becoming a viable alternative over some hardcoded solutions - likewise, the weather system being 95% scripted is another annoyance to some - but at the end of the day, it's really just software evolution taking place: We have a decreasing number of experienced C++ developers, more and more becoming increasingly inactive - which is why the base package has been seeing so much development in comparison, and under these circumstances it is only natural for some core developers to recognize these issues and focus on providing building blocks and infrastructure to empower base package developers.&lt;br /&gt;
&lt;br /&gt;
It's not that your assessment is totally off, but we cannot really deal with it, unless we are telling people what to do - and as you may have witnessed before, that doesn't work out too well usually (remember the various T4T discussions). Thus, we need to accept what's brought to the table, no matter how inconsistent it is, and &amp;quot;absorb&amp;quot; it until something better comes along - even though that may mean that we'll end up with various different approaches in the meantime.&lt;br /&gt;
&lt;br /&gt;
Overall, the current situation isn't as bad as it used to be once&lt;br /&gt;
&lt;br /&gt;
== Is this program just for scientists and engineers? ==&lt;br /&gt;
No, but at least historically, the FlightGear project tends to attract certain types of people, many of them having some sort of academic background and some involvement or interest in aviation, i.e. in engineering, maths, physics, IT/computing or just real life pilots (hobby, professional, test pilots, retired).&lt;br /&gt;
&lt;br /&gt;
This applies especially to long-term contributors. Obviously, the people who contribute for a long time, get to shape the project more so than people who just happen to show up and post some ideas, features requests or bug reports.&lt;br /&gt;
In part, this is also due to the reputation they get to enjoy among fellow contributors, so their feedback has automatically also more weight, too.&lt;br /&gt;
&lt;br /&gt;
That might explain why many long-term contributors seem to have a fairly similar mindset, and why some things are done the way they are.&lt;br /&gt;
&lt;br /&gt;
Some of these decisions are hard to understand without having a similar background, be it education, professional experience, families, real life obligations and such.&lt;br /&gt;
&lt;br /&gt;
== Community interactions ==&lt;br /&gt;
What can be done in a forum? First off, speak the same as if you were standing in front of the person you are talking to. If you _really_ do get up in their face when you speak, take the gold chains off for a minute and lose the Jersey accent. Respect goes a long way. Respect also goes _both_ ways. If you get an email from someone, respond to it, even if it's saying that &amp;quot;no, I can't help&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== The forum ===&lt;br /&gt;
Regarding helping others on the forum, thinking back on my early days with FG I'd have to say that what's obvious to a long-time FlightGear person isn't necessarily obvious to others. Sometimes people do search for answers first, but they may not be asking the right questions or have a deep enough knowledge of a system or community to proceed.&lt;br /&gt;
&lt;br /&gt;
New people might not think to look in the wiki (yes, there are links all over the place), or try and find an answer there first. Or maybe they did try and failed but didn't mention it. The wiki is a fine repository for some deep, often esoteric information, but the information is spotty and it's not the easiest place to hunt for a specific answer. And I can well remember when the information in the FG docs folder might as well have been written in Martian, given what I knew at the time. Heck, some of it is still Martian to me.&lt;br /&gt;
&lt;br /&gt;
It's usually obvious when people are asking questions in the forum thoughtfully, and when they are being casual, lazy, or discourteous. But sometimes it isn't so clear. There may be language barriers, or they may not know exactly how to ask, or they may simply be shy of a new environment. Like Someguy, I cringe when I see our good people tell somebody to go on an Easter-egg hunt for their answers. If it's tiresome, which is understandable, or one doesn't feel like helping, then it's wiser to simply not respond.&lt;br /&gt;
&lt;br /&gt;
What's at stake isn't getting person X to information Y. In 90%+ cases, it won't matter much-- person X will likely move on to some other hobby. But every now and then, that new person who asked that same tired-old question stays around and eventually becomes a Gijs, or a Heiko, or a Someguy, or a Melchior, or an Anders, or an Emmanuel, etc. The more open, friendly and patient we are, the more likely it is that we will retain these incredibly valuable sorts of people and keep moving forward.&lt;br /&gt;
&lt;br /&gt;
=== Coordination ===&lt;br /&gt;
It'd be really nice to have a better feeling for what is in the works and to know about what is going to change beforehand, rather than pulling the new version to learn that suddenly nothing works and spend the next week trying to figure out just what the change has been. Been there, done it, not pleasant.&lt;br /&gt;
&lt;br /&gt;
Some interface to exchange that kind of information would be really helpful, because some developments depend on how others are structured. In general, more talk between core C++ developers and other developers wouldn't be a bad thing.&lt;br /&gt;
&lt;br /&gt;
=== User facts of life ===&lt;br /&gt;
* Those that can't &amp;quot;create&amp;quot; an entire aircraft from a blank screen will have to wait for someone to build it. Don't post a blind &amp;quot;please build this&amp;quot; advertisement. My guess is that has never worked, and is borderline rude, asking for something without ever offering something. Accept your limitations, enjoy what we have.&lt;br /&gt;
* Don't believe that you are the _only_ user, and therefore represent everyone when you stand on your forum soapbox. _Everyone_ may not share your emotion.&lt;br /&gt;
* You have no power and control, and that's not a bad thing. You reap the benefits of many people that have come before you, and even those that may come after you.&lt;br /&gt;
&lt;br /&gt;
=== Developer facts of life ===&lt;br /&gt;
* You have power in what you do, and you have total control. This does affect your relationship to the person that is a &amp;quot;Non-developer&amp;quot;, whether you believe it or not. Choose to realize this, and be respectful.&lt;br /&gt;
* As a &amp;quot;developer&amp;quot;, you have been given power and control over something that really doesn't belong to only you. Without a board of directors to oversee your actions, realize that _do_ have a responsibility to provide your part of the &amp;quot;development&amp;quot;. You have to consciously choose to do this, for power and control are strong drugs.&lt;br /&gt;
* For the most part, there was someone before you, and their will be someone after you. Your actions will help ensure there is a place for someone after you. Remember the past. Don't be the reason that those before you chose to leave.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
There's simply no use in complaining that FlightGear isn't the community you'd like it to be - but there is use in working to make it the community you like it to be. It's just requires more effort &lt;br /&gt;
&lt;br /&gt;
May FlightGear always provide the beauty of flight to those that are bound by gravity.&lt;br /&gt;
&lt;br /&gt;
== To be discussed ==&lt;br /&gt;
* don't like this conceptual division between users and developers. A user is just a developer who hasn't popped the hood on their car yet.&lt;br /&gt;
&lt;br /&gt;
* most of us try to read the forum and the lists regularly, and we also try to respond to thoughtful topics&lt;br /&gt;
* I care if I can communicate with you on a professional level and if anything comes out of it in the end, or if I get the feeling I'm just wasting my time. That's all.&lt;br /&gt;
* Fact of the matter is - you're a potential contributor until proven otherwise, and as far as I am concerned, that gets you basic politeness, some measure of attention and some measure of help from my side, just like I would do for anyone else asking in the forum. If you want more (information, help, of my time, of Hooray's time ...), you should keep in mind that at this point you want something from the community, and so *you* need to adapt to the community, understand how it works and play by its rules - not the other way around. To say it very bluntly - FlightGear will survive without you if needed (as it will survive without me if needed).&lt;br /&gt;
* The time I am willing to spend trying to talk to you in the hope of any productive outcome is limited, it is about to be exhausted because I am feeling increasingly annoyed and see no real outcome except more talk. That may not have been your intention, but since it's brought to your attention that people start feeling annoyed, it might be a good idea to change the way you communicate. The chances that the devel community will adapt to your style of work are very slim indeed.&lt;br /&gt;
* Your lack of understanding here is your inability to acknowledge that people are aware of the alternatives and have consciously chosen to organize the project the way it is. Speaking for myself, I simply don't want it done your way and would go away the day things become organized your way, and several other core developers have expressed similar sentiments on the devel list.&lt;br /&gt;
* You assume that people basically have no clue and all you need to do is to point out how to make it better, but several people have considered the alternatives already and decided otherwise. This is what you need to understand.&lt;br /&gt;
&lt;br /&gt;
* Influence in the FlightGear community scales roughly with level of your contributions.&lt;br /&gt;
* Obviously, long-time contributors have a more sizeable track record of contributions which in turn gives their voice more weight&lt;br /&gt;
* Things are done the way the majority of contributors thinks they are best, not necessarily by some general consensus.&lt;br /&gt;
* unnecessary community interactions are eating up time&lt;br /&gt;
* people able to build FlightGear from source, who know C++, who have some spare time to contribute to FG are in very short supply&lt;br /&gt;
* developers getting involved in lengthy discussions cannot write code at the same time&lt;br /&gt;
&lt;br /&gt;
* Asking people to work on some particular problem that's bugging you, is generally alright - but you need to be willing to make your case and do that in a fairly compelling fashion. We have some really long-standing issues in FG, some of which most of us (including core devs) agree are IMPORTANT. This is a rare situation, but there really are things that pretty much everybody agrees are REALLY IMPORTANT to work on. So there's some very real competition and it won't be easy to talk people into doing something for you. &lt;br /&gt;
* Another important thing is staying focused: it isn't helpful to raise dozens of issues in a short amount of time if you cannot also solve them, regardless of how &amp;quot;real&amp;quot; and valid these issues might be.&lt;br /&gt;
* signal/noise ratio&lt;br /&gt;
&lt;br /&gt;
* Frequently, people keep emphasizing that this attitude is related to their  inability of fixing things themselves. Now, we are not going to suggest you learn how to build FG from source or how to program in C++. But rather, we suggest you focus on a handful of issues that truly annoy you, and where you think you could actually help and contribute solving them. That would surely help improving your signal/noise ratio, basically giving you opinions more weight here. There should be a fair share of opportunities to get involved in meaningful ways. We have a bunch of wiki resources to get people started contributing in various ways.&lt;br /&gt;
&lt;br /&gt;
* People asking for increased project management and more coordination may want to ask themselves how they would respond if they were exactly told what to work on, rather than just doing what they are interested in. Seriously, nobody is asking you to contribute within a particular domain at all, which is also a good thing and attracted many of the long-term contributors to the project in the first place.&lt;br /&gt;
&lt;br /&gt;
* When comparing FlightGear to other OSS project, it is important not to compare apples and oranges from a manpower perspective. We don't have the manpower here to establish a proper hierarchy like many of the more prominent projects (think Mozilla/Firefox). There's is TONS of management work happening behind the scenes, there's the Mozilla foundation and there are donations and so on - so Mozilla development is not only about coordinating a bunch of programmers who happen to develop a piece of software in their limited spare time, they have passed that point long ago.&lt;br /&gt;
&lt;br /&gt;
* If you are trying influence things: That's fine and a valid motivation. The thing is however, your ability to bring influence to the project is directly proportional to your impact and track record in the project. Actually, this isn't untypical for most OSS projects.We have people here who have been part of this project &amp;quot;just&amp;quot; voicing ideas, opinions and feature requests - some of whom have been involved for YEARS. While their feedback may be appreciated, their ability to direct things is still fairly limited - especially when compared to people who actually brought changes to FlightGear and who have a track record of doing so (sometimes even within a fairly short amount of time). You can find numerous examples actually, of people who have not been a member of this community for very long, but whose input and feedback is not just appreciated and respected but who are having a certain impact on the direction the project's heading. This is never because of &amp;quot;talking&amp;quot; or discussing things, it is because of DOING things.&lt;br /&gt;
&lt;br /&gt;
* FlightGear has never been in a better shape than it is in right now. In fact, admittedly FlightGear -as a software project- has actually been in a much worse shape for many years (for example: no forums, no wiki, no bug tracker, no git repository, no Gitorious merge requests, no build server, no formal release procedures etc)- still it somehow managed to stay around for over 10 years, despite all its deficiencies...&lt;br /&gt;
&lt;br /&gt;
=== Mods and forks (built on top of FG) ===&lt;br /&gt;
&lt;br /&gt;
* You're here asking for help from the FlightGear community. Help is hard to find in the first place (that's a fact, not a threat - there are calls for volunteers for many different projects that go unanswered).&lt;br /&gt;
&lt;br /&gt;
* You're planning to fork in a substantial way. The difference for me is - as long as what you're doing is FlightGear, I will care that my own development work (integrated weather system) runs fine on your system because I develop for FlightGear. If T4T is off to the degree that I'd have to download and compile different code, then I won't care that my weather system runs (it may or may not, dependent on what you do to the environment) - it has become your problem. Not because I am mean, but because I don't have the time and inclination to maintain compatibility to two different development branches. Whenever you develop using a different repository, you are 'them' and we are 'us'. We can be a friendly 'us' and 'them' as between FlightGear and JSBSim, we can exchange code, people can be part of both projects and maintain compatibility and work together - but the basic fact is that there is 'us' and 'them', and (probably like many others) I feel responsible for my part in 'us' but not for my part in 'them'.&lt;br /&gt;
&lt;br /&gt;
http://forum.flightgear.org/viewtopic.php?f=18&amp;amp;t=13298&amp;amp;p=134793&amp;amp;hilit=supply+developers#p134756&lt;br /&gt;
* Do you have a clear idea what your project involves?&lt;br /&gt;
* Do you have a clear idea what is already there?&lt;br /&gt;
* Will it help Flightgear?&lt;br /&gt;
* Will my voice be heard?&lt;br /&gt;
&lt;br /&gt;
* This community is far more likely to get involved if you involve it - and that'd mean opening your previous decisions for debate - than if you ask people to get involved with a project of your design which is no longer up to debate (speaking of resistance to change...). Again, that's your call, I'm not threatening in any way, I'm simply trying to explain how things (according to my best understanding) are and what the likely consequences of your project design are. I don't mean to imply that I or others would actively block you if you're not doing it 'the FlightGear way' and hold information back. I hope that is sufficiently clear.&lt;br /&gt;
&lt;br /&gt;
* We get to see new forum members posting interesting &amp;quot;project ideas&amp;quot; here every month, sometimes even several times per week. And we know from experience that &amp;quot;ripping FlightGear down to its core and rebuilding it&amp;quot; isn't going to happen that easily, it's not necessarily because of objection from the community - quite the contrary, sometimes people actually post ideas that everybody agrees would be great additions to FlightGear, ideas that would quite obviously involve tearing down some major subsystem and replacing it with something better.&lt;br /&gt;
&lt;br /&gt;
* Really, FlightGear is where it is now after 10+ years of ongoing development, many contributors (especially core developers) are long term contributors who have contributed to FlightGear for several years.&lt;br /&gt;
Still, FlightGear is a complex piece of software and there is probably not a single core developer who is familiar with ALL of FlightGear (features, code etc).&lt;br /&gt;
&lt;br /&gt;
* all long-term FlightGear users know for a fact that there is usually a short supply of C++ developers, knowing not only how to program in C++, but also familiar with 3D graphics, OpenGL/OSG programming and many other aspects that are important when creating/developing a simulator.&lt;br /&gt;
&lt;br /&gt;
* So we are really standing on the shoulders of giants here, because we are now -after 10+ years- in the position to create significant new features within the constraints of the FlightGear base package, without even touching the C++ source code at all - simply because FlightGear has become so flexible and extensible. &lt;br /&gt;
&lt;br /&gt;
* So I guess you see where I am coming from: new people now asking to &amp;quot;tear down &amp;amp; rebuild&amp;quot; the whole thing, or people asking to introduce DRM-like measures into FlightGear (content protection) are of course not going to receive a very warm welcome&lt;br /&gt;
&lt;br /&gt;
* I consider what you want to do perfectly possible, but I advise you to rethink your strategy: your decision to build upon FlightGear to create a combat simulator illustrates an admirable degree of foresight and experience that many other people with similarly ambitious ideas lack, but announcing to &amp;quot;rip out parts&amp;quot; and rebuild the whole thing is very unlikely to happen any time soon.&lt;br /&gt;
&lt;br /&gt;
* And like I said before: this is not necessarily because we don't want to see this happen: you could probably talk to any core-developer and each of them could tell you that there are a number of parts that SHOULD be ripped out and replaced eventually (i.e. such as some legacy code), but more often than not, things are simply not as easy as they may appear at first glance. When you take a look at the mailing list archives or at the wiki, you'll certainly find plenty of things in the fgfs source code that everybody agrees should be replaced eventually.&lt;br /&gt;
&lt;br /&gt;
* And if people who have experience working with the code for a number of years refrain from making some important changes, you may want to re-consider your strategy.&lt;br /&gt;
&lt;br /&gt;
* After all, this is all &amp;quot;for fun&amp;quot; - it's an open source project, so it should be &amp;quot;fun&amp;quot; and enjoyable.&lt;br /&gt;
&lt;br /&gt;
* you'll have a better chance of getting your code upstream (if that really is your goal) by coordinating your plans with the fg core developers and asking for recommended paths to proceed. Getting your code contributed back is obviously a good idea because it will be much less of a maintenance burden for you guys if your changes become part of the mainline.&lt;br /&gt;
&lt;br /&gt;
* Ultimately, this being open source, you don't need the approval of anybody - as long as you obey the requirements of the GPL, but rest assured: it will be much easier to deal with the FlightGear community and to get help if you play it &amp;quot;nice&amp;quot; and this very help will be very much needed in the beginning.&lt;br /&gt;
&lt;br /&gt;
* Suggesting &amp;quot;drastic&amp;quot; changes is all neat and dandy, but after familiarizing yourself with FlightGear you'll probably see quickly that it doesn't really need drastic changes at all: We have witnessed this in the &amp;quot;Local Weather&amp;quot; project, you could say it now *optionally* replaces the old system, but to work properly it only needed a way to switch off the old code - which just involves setting a bunch of properties (variables) from a Nasal script. There was no need to completely remove the legacy code, it was just made optional by setting a switch at runtime. Similarly, the bombable script leverages hard-coded C++ code for instantiating AI models dynamically - but the objects are controlled from scripting space.&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68396</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68396"/>
		<updated>2014-02-28T00:59:29Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The replacement of qFGRadio, QRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* QRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio was replaced by QRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict requires GDAL in order to work with terrain shapefiles. More information can be found on the project page at [http://qradiopredict.sourceforge.net/ QRadioPredict]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68395</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68395"/>
		<updated>2014-02-28T00:58:46Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
{{draft}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The replacement of qFGRadio, QRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* QRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio was replaced by QRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict requires GDAL in order to work with terrain shapefiles. More information can be found on the project page at [http://qradiopredict.sourceforge.net/ QRadioPredict]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68394</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68394"/>
		<updated>2014-02-28T00:58:21Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
{{draft}}&lt;br /&gt;
{{mergeto|QRadioPredict|date=November 2013}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The replacement of qFGRadio, QRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* QRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio was replaced by QRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict requires GDAL in order to work with terrain shapefiles. More information can be found on the project page at [http://qradiopredict.sourceforge.net/ QRadioPredict]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QFGRadio&amp;diff=68393</id>
		<title>QFGRadio</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QFGRadio&amp;diff=68393"/>
		<updated>2014-02-28T00:57:40Z</updated>

		<summary type="html">&lt;p&gt;Adrian: Adrian moved page QFGRadio to QRadioPredict: Application name was different to page title.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[QRadioPredict]]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68392</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=68392"/>
		<updated>2014-02-28T00:57:40Z</updated>

		<summary type="html">&lt;p&gt;Adrian: Adrian moved page QFGRadio to QRadioPredict: Application name was different to page title.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
{{draft}}&lt;br /&gt;
{{mergeto|QRadioPredict|date=November 2013}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The replacement of qFGRadio, QRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* QRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio was replaced by QRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict requires GDAL in order to work with terrain shapefiles. More information can be found on the project page at [http://qradiopredict.sourceforge.net/ QRadioPredict]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=68391</id>
		<title>Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=68391"/>
		<updated>2014-02-28T00:56:38Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Qt GUI control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{out of date}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is a project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; The source code will remain available and will be kept up to date with the main Flightgear project as long as possible, but without any warranty. &amp;lt;b&amp;gt;Also, this project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image =Radio-perf2.png&lt;br /&gt;
|name =Radio Propagation Subsystem&lt;br /&gt;
|started= 12/2011 &lt;br /&gt;
|status = Under active development as of 08/2013(project is separated from mainline source)&lt;br /&gt;
|description = Enabling real time realistic radio calculations depending on terrain, landcover, transmitter station, receivers station. Everything configurable via the property tree. Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool.&lt;br /&gt;
|maintainers  = Adrian&lt;br /&gt;
|developers = [[User:Adrian]] (since 09/2011), &lt;br /&gt;
|folders = $FG_SRC/Radio&lt;br /&gt;
|topic-fg= &lt;br /&gt;
|merge-requests = &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
|topic-sg= &lt;br /&gt;
|topic-fgdata= &lt;br /&gt;
|subforum= &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Implement a realistic radio propagation model inside FlightGear&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
The code and algorithms described below enable the following features in Flightgear, which to the author's knowledge are unique for a conventional flight simulator:&lt;br /&gt;
&lt;br /&gt;
* realistic radio reception of ATC and AI aircraft messages.&lt;br /&gt;
* realistic radio reception of VOR stations, making radio navigation more interesting and realistic in hilly/mountainous terrain.&lt;br /&gt;
* realistic range for DME equipment, reception is now very different to VOR signals due to the very high frequency used. You could have full deflection on the NAV display and no DME data until you pass a minor obstruction.&lt;br /&gt;
* realistic reception of TACAN stations, including mobile stations (AI tankers etc.). Conditions similar to DME.&lt;br /&gt;
* mostly realistic radio reception of localizer and glideslope signals, making landings more interesting for certain airports.&lt;br /&gt;
* configuration and realistic reception of radio beacons located anywhere in the 3D world, while presenting calculated signal values according to different official guidelines, including but not limited to the FAA.&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
&lt;br /&gt;
==Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to evaluate the possible usage of the Flightgear engine as a tool for RF signal loss prediction over a rough terrain, using geographical features embedded inside terrain data and well know propagation prediction algorithms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are currently a number of freeware and open-source applications that perform RF signal loss analysis using data available to the general public (elevation data, landcover etc.).&lt;br /&gt;
Well known and used are Radiomobile &amp;lt;ref&amp;gt;http://www.cplus.org/rmw/english1.html&amp;lt;/ref&amp;gt;, a Windows application by Roger Coud&amp;amp;eacute;, VE2DBE and Splat!&amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/splat.html&amp;lt;/ref&amp;gt; (multiple platform) by John A. Magliacane, KD2BD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A common point of these applications is the usage of the Irregular Terrain Model (also known as Longley-Rice)&amp;lt;ref&amp;gt;https://webcache.googleusercontent.com/search?q=cache:FqVjcDsXaPQJ:http://www.iucaf.org/sschool/darrel/propagat.ppt%2Blongley+rice+for+lower+frequencies&amp;amp;oe=utf-8&amp;amp;rls=org.mozilla%3Aen-US%3Aunofficial&amp;amp;hl=en&amp;amp;ct=clnk&amp;lt;/ref&amp;gt; which is a propagation model developed by the U.S. Department of Commerce NTIA/ITS - Institute for Telecommunication Sciences and improved by several others (notably ITWOM &amp;lt;ref&amp;gt;http://bts.ieee.org/ieee-broadcast-technology-society-newsletter.html&amp;lt;/ref&amp;gt; by Sidney E. Shumate, code available to the public on a limited usage license, copyright Givens-Bell &amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/isart/art08/slides08/shu_s-08.pdf&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
It is a general purpose model that can be applied to a large variety of engineering problems. The model, which is based on electromagnetic theory and on statistical analysis of both terrain features and radio measurements, predicts the median attenuation of a radio signal as a function of distance and the variability of the signal in time and in space.&amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/resources/radio-propagation-software/itm/itm.aspx&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;http://web.archive.org/web/20110721032828/http://flattop.its.bldrdoc.gov/itm.html&amp;lt;/ref&amp;gt; &lt;br /&gt;
It is currently used among others by NASA, Alcatel-Lucent, US Army, University of Massachusetts and amateur radio operators around the world, and  is widely considered the best propagation model for frequencies between 50 - 5000 Mhz freely available to the public.&lt;br /&gt;
One of the most active users of the Irregular Terrain Model is the US FCC (Federal Communications Commission), which is currently applying the updated version of this model for broadcast station regulations &amp;lt;ref&amp;gt;http://broadcastengineering.com/transmitters/fcc-proposes-updated-longley-rice-model-repack-tv-stations&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
[[Image:Signal-analysis.png|thumb|Radio signal analysis]]&lt;br /&gt;
[[Image:Antenna-polar.png|thumb|Antenna far-field gain plot]]&lt;br /&gt;
The implementation of radio propagation analysis is mostly finished inside Flightgear. Since the terrain used by this open-source flight simulator contains both elevation information and landcover data, it seems especially suited for a 3D tool to predict RF signal levels, both for aviation navigational aids and radio communications, and standalone as a point-to-point radio link analysis between two radio stations.&lt;br /&gt;
Flightgear allows the user to place models on the terrain at specific locations, and to setup internal properties via a simple XML format.&lt;br /&gt;
Rather complex radio receivers and transmitters can be simulated using the Nasal scripting language or via an external utility, as well as an UI to perform signal level reading and modify receiver and transmitter physical characteristics. The 3D aspect is also interesting, since it allows one to perform  predicted signal level reading at different locations while inside the simulator, using visual cues to place the radio equipment on the terrain.&lt;br /&gt;
Since this open-source flight simulator is capable of running on multiple platforms, including GNU/Linux, Microsoft Windows and MacOS, its availability is not limited to one operating system.&lt;br /&gt;
&lt;br /&gt;
===Data===&lt;br /&gt;
&lt;br /&gt;
Most of new generation Flightgear terrain uses NASA SRTM v3 &amp;lt;ref&amp;gt;http://www2.jpl.nasa.gov/srtm/&amp;lt;/ref&amp;gt; elevation data, which has a distance of 90 meters between elevation points. This is considered accurate enough for most signal analysis, although more detailed elevation data from topographical maps, ASTER DEM or other sources can be acquired. &lt;br /&gt;
Default landcover in Flightgear comes from VMAP0 &amp;lt;ref&amp;gt;http://earth-info.nga.mil/publications/vmap0.html&amp;lt;/ref&amp;gt; layers, with more accurate geodata being available from national and international programs, such as Europe's flagship program, the CLC2006 &amp;quot;Corine&amp;quot; landcover project.&amp;lt;ref&amp;gt;http://www.eea.europa.eu/publications/COR0-landcover/at_download/file&amp;lt;/ref&amp;gt;&lt;br /&gt;
Landcover data is used to analyse path loss and improve predicted signal levels over specific types of terrain, but should be cross-checked with real-world RF signal readings took at the same locations. &lt;br /&gt;
Antenna radiation patterns obtained using the free tool NEC2x can be used for both transmitters and receivers. Patterns obtained from other applications can be used too, as long as they are converte to the rather simple text format which is used by the Flightgear radio code.&lt;br /&gt;
Also, data from Flightgear's realistic atmospheric and weather simulation could be taken into account when path loss analysis is perfomed.&lt;br /&gt;
&lt;br /&gt;
===Request for information===&lt;br /&gt;
&lt;br /&gt;
If you are involved with maintenance or have detailed information about navaid transmitter capabilities, the author would appreciate if you listed in the discussion page the following information:&lt;br /&gt;
&lt;br /&gt;
* usual transmitter power for localizer (known to be between 15-25 W) and glideslope (known to be between 5-10 W ???) equipment.&lt;br /&gt;
* usual transmitter power for DME (not VOR) equipment: various source suggest from 50 W to 1 kW (I guess these values are ERP, since reported antenna gains are 8 dBi on vertical polarization) &amp;lt;ref&amp;gt;http://www.selex-si-uk.com/pdf/Distance%20Measuring%20Equipment%20(DME).pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* usual receiver sensitivity (in dBm) for DME equipment (-95 dBm taken from source).&lt;br /&gt;
* usual antenna types and gains for localizer and glideslope equipment: for localizer the ERP (effective radiated power) is known from various sources as approx 100 W, thus assuming 7-9 dBi antenna gain, glideslope antenna estimated gain 10 dBi &amp;lt;ref&amp;gt;http://www.dbsant.com/gsSpecs.php&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* most sources describe a 16 dB front-to-back ratio, thus being consistent with the default pattern used and shown in the picture above. Corrections welcome.&lt;br /&gt;
* usual localizer/glideslope/DME antenna types and gains for various aircraft, for usage by aircraft developers (most sources show V-type dipole).&lt;br /&gt;
&lt;br /&gt;
===Implementation details===&lt;br /&gt;
&lt;br /&gt;
In order to use the point-to-point routine of the Longley-Rice model, a terrain profile between the two radio stations is generated by sampling the terrain with a configurable distance between points (default is 90 meters, which is equal to SRTM 3 arcsec precision). This terrain profile is fed to the ITM routines, together with some other parameters: transmitter output power, receiver sensitivity, antenna heights above terrain. These routines are the core of the implementation, and incorporate improvements made by J. D. McDonald, John A. Magliacane and Holger Schurig to the original code.&lt;br /&gt;
&lt;br /&gt;
The result is signal attenuation in dB along the direct path. The ITM functions will determine for us if the radio propagation is line-of-sight, diffraction dominant or tropospheric scatter. For diffraction propagation, it also determines if it's single horizon or double horizon.&lt;br /&gt;
This information will further be used in calculating ground clutter obstruction for different terrain types. The most frequent obstructions that affect radio signals are built-up areas and tall vegetation. By calculating the interference of ground clutter inside the first Fresnel zone, we can determine signal losses with average precision. &lt;br /&gt;
In order to do so, we need two more numbers in the equations: clutter height above terrain, and clutter density. These are stored inside a plain text file located inside the Materials/ directory, allowing for more terrain types to be added and properties to be changed by the user. The aim is to make these two factors as configurable as possible to the user, in order to be able to adapt them to local measured conditions.&lt;br /&gt;
&lt;br /&gt;
The radio stations parameters are also completely configurable by the user, by setting internal properties, via Nasal scripting or otherwise.&lt;br /&gt;
For ATC comms, at the current state, some basic assumptions are made about transmitter power, receiver sensitivity and antenna heights: these are based on standard ATC interactions, but this will be changed in the future to support a wider variety of signals. It might even be possible to simulate realistic ACARS transmissions, as well as transponder responses with realistic range and signal quality (introduce errors based on signal quality etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Usage====&lt;br /&gt;
&lt;br /&gt;
To enable the radio code, use the following command line flags:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-radio=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the main radio code&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-clutter-attenuation=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the ground clutter attenuation calculations&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-antenna-pattern=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the antenna radiation patterns&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/itm-radio-performance=false &amp;lt;/pre&amp;gt;&lt;br /&gt;
:disables performance mode (useful for propagation study)&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/material-radio-database=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: use the Sqlite database for landcover types and radio properties. It is named '''material_radio_properties.sqlite''' and placed in '''$FGROOT'''&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/sampling-distance=90 &amp;lt;/pre&amp;gt;&lt;br /&gt;
: distance between terrain profile points. Defaults to 90 meters which is the accuracy of SRTM elevation grids. A smaller value coupled with disabling performance mode will have an impact on the performance and will only be useful in very high resolution terrain. Use a larger value to relieve performance issues.&lt;br /&gt;
&lt;br /&gt;
====Known limitations====&lt;br /&gt;
&lt;br /&gt;
* The loading distance of terrain. For stations which are beyond the maximum configured terrain loading distance, path profiles will not be accurate and some errors are likely to occur in the signal loss figures. The experimental [[Terrain_sampling | terrain sampler]] based on an elevation database attempts to get rid of tile loading distance as a factor in this. It is a work in progress though, while reliable it needs a separate toolset to generate the database. To be used only for very special purposes (ground radar?).&lt;br /&gt;
&lt;br /&gt;
* The current model does not take into account signal reflection from objects or terrain features, nor refraction caused by atmospheric conditions.&lt;br /&gt;
&lt;br /&gt;
* The diffraction calculations within the ITM library are not very precise and are likely to overestimate losses caused by diffraction over a sharp edge, or when take-off angles are beyond a certain limit. This has been corrected in the new ITWOM, which is available to the public with commercial restrictions. &amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/itwom3.0.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Clutter loss calculation are only estimative and should only be taken into account after careful calibration done with measurement equipment at the sites.&lt;br /&gt;
&lt;br /&gt;
====Currently implemented features within the Flightgear engine====&lt;br /&gt;
[[Image:Vor_no_itm.png|thumb|VOR received on ground 80 km away with no line of sight, using old code]]&lt;br /&gt;
[[Image:Vor_itm.png|thumb|VOR no longer received on ground 80 km away with no line of sight, using new radio code]]&lt;br /&gt;
[[Image:Vor-no-dme.png|thumb|VOR station received full signal, while DME is still unavailable 70 km out because of obstructions, using new radio code]]&lt;br /&gt;
[[Image:Vor-dme.png|thumb|VOR received full signal, and now DME received too, we have cleared the small obstruction. UHF propagation is fun!]]&lt;br /&gt;
&lt;br /&gt;
* the code has been transitioned to a more efficient and performance-friendly subsystem structure&lt;br /&gt;
* point-to-point path loss calculations over rough terrain using the ITM library for air traffic control stations to pilot communication. Also AI to pilot reception.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for VOR/Localizer and Glideslope stations &amp;lt;ref&amp;gt;http://www2.rohde-schwarz.com/file_15494/1MA193_0e.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for DME stations &amp;lt;ref&amp;gt;http://www.faa.gov/air_traffic/publications/atpubs/aim/aim0101.html&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for TACAN stations, including mobile stations (AI tankers etc.) &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Tactical_air_navigation_system&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* for VHF/UHF stations beyond a reasonable terrain loading distance, automatic transition to path loss calculation over a smooth round earth using alternative free space signal attenuation equations&lt;br /&gt;
* RF link budget calculations using transmitter power, receiver sensitivity, antenna gain and height above terrain, taking into account typical values from various specifications&lt;br /&gt;
* experimental feature: usage of detailed landcover in RF propagation prediction (ground clutter path loss)&lt;br /&gt;
* landcover radio properties are stored into an easy to read and modify txt file in the Materials/ directory, allowing for more terrain types and radio properties to be changed by the user&lt;br /&gt;
* signal loss due to polarization mismatch&lt;br /&gt;
* simple signal strength indicator (Instrument for signal level reading)&lt;br /&gt;
* far-field antenna radiation patterns generated with 4nec2&lt;br /&gt;
* radio transmitter beacons can be placed with the model tool inside 3D space, models placed with the UFO tool will use a separate tree to avoid conflicts with other types of models (weather, etc). In the future it will be possible to define and change properties for multiple beacons from the same panel instrument.&lt;br /&gt;
* using the property tree, a radio station can be defined with Nasal scripts&lt;br /&gt;
* support for multiple radio stations running at the same time: navaids, ATC comms, beacons&lt;br /&gt;
* efficiency mode: the number of terrain data points decrease proportionally with the distance to the station.&lt;br /&gt;
* calculation of electrical field strength in uV/m, received signal strength in uV and dBm, as required by official guidelines.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Features which still need to be implemented====&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI]]&lt;br /&gt;
* Figure out what to do about VOR/DME/TAC stations sunk into the ground? Possible bug affecting them, maybe only on custom terrain.&lt;br /&gt;
* reception of ACARS ground messages via VHF radios&lt;br /&gt;
* usage of weather simulation and atmospheric conditions which affect radio propagation: tropospheric ducting, cloud backscatter etc.&lt;br /&gt;
* simulate realistic transponder response&lt;br /&gt;
* realistic ground-to-air radar&lt;br /&gt;
* reliable toolchain for generating data used with the alternative terrain sampler.&lt;br /&gt;
&lt;br /&gt;
====Qt GUI control====&lt;br /&gt;
&lt;br /&gt;
* A Qt-based GUI with OSM map controls and sattelite imagery is available to control all aspects of Flightgear's RF planning features. See the main article, [[QRadioPredict]]&lt;br /&gt;
&lt;br /&gt;
== Mailing list discussions ==&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33688.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg34983.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35010.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35921.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38839.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38901.html&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68361</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68361"/>
		<updated>2014-02-27T10:26:34Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html] {{Done}}&lt;br /&gt;
* rebase against git HEAD (next) {{Done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{Not done}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{Not done}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Fixed: won't change}}&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of magic constants, use variables [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Fixed: won't change}}&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{Not done}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{Not done}}&lt;br /&gt;
* support different propagation models by coming up with an interface: {{Done}}&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html] {{Done}}&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html] {{Done}}&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68360</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68360"/>
		<updated>2014-02-27T08:59:16Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html] {{Done}}&lt;br /&gt;
* rebase against git HEAD (next) {{Done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{Not done}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{Not done}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Fixed: won't change}}&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of magic constants, use variables [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Fixed: won't change}}&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{Not done}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{Not done}}&lt;br /&gt;
* support different propagation models by coming up with an interface: {{Done}}&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html] {{Done}}&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html] {{Done}}&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68359</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68359"/>
		<updated>2014-02-27T08:58:04Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html] {{Done}}&lt;br /&gt;
* rebase against git HEAD (next) {{Done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{Not done}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{Not done}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of magic constants, use variables [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html] {{Fixed: won't change}}&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{Not done}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{Not done}}&lt;br /&gt;
* support different propagation models by coming up with an interface: {{Done}}&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html] {{Done}}&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html] {{Done}}&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68358</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=68358"/>
		<updated>2014-02-27T08:26:33Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html] {{Done}}&lt;br /&gt;
* rebase against git HEAD (next) {{Not done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{Not done}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{Not done}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of magic constants, use variables [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{Not done}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{Not done}}&lt;br /&gt;
* support different propagation models by coming up with an interface: {{Done}}&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html] {{Done}}&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html] {{Done}}&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=68357</id>
		<title>Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=68357"/>
		<updated>2014-02-27T08:23:33Z</updated>

		<summary type="html">&lt;p&gt;Adrian: Removed old information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{out of date}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is a project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; The source code will remain available and will be kept up to date with the main Flightgear project as long as possible, but without any warranty. &amp;lt;b&amp;gt;Also, this project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image =Radio-perf2.png&lt;br /&gt;
|name =Radio Propagation Subsystem&lt;br /&gt;
|started= 12/2011 &lt;br /&gt;
|status = Under active development as of 08/2013(project is separated from mainline source)&lt;br /&gt;
|description = Enabling real time realistic radio calculations depending on terrain, landcover, transmitter station, receivers station. Everything configurable via the property tree. Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool.&lt;br /&gt;
|maintainers  = Adrian&lt;br /&gt;
|developers = [[User:Adrian]] (since 09/2011), &lt;br /&gt;
|folders = $FG_SRC/Radio&lt;br /&gt;
|topic-fg= &lt;br /&gt;
|merge-requests = &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
|topic-sg= &lt;br /&gt;
|topic-fgdata= &lt;br /&gt;
|subforum= &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Implement a realistic radio propagation model inside FlightGear&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
The code and algorithms described below enable the following features in Flightgear, which to the author's knowledge are unique for a conventional flight simulator:&lt;br /&gt;
&lt;br /&gt;
* realistic radio reception of ATC and AI aircraft messages.&lt;br /&gt;
* realistic radio reception of VOR stations, making radio navigation more interesting and realistic in hilly/mountainous terrain.&lt;br /&gt;
* realistic range for DME equipment, reception is now very different to VOR signals due to the very high frequency used. You could have full deflection on the NAV display and no DME data until you pass a minor obstruction.&lt;br /&gt;
* realistic reception of TACAN stations, including mobile stations (AI tankers etc.). Conditions similar to DME.&lt;br /&gt;
* mostly realistic radio reception of localizer and glideslope signals, making landings more interesting for certain airports.&lt;br /&gt;
* configuration and realistic reception of radio beacons located anywhere in the 3D world, while presenting calculated signal values according to different official guidelines, including but not limited to the FAA.&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
&lt;br /&gt;
==Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to evaluate the possible usage of the Flightgear engine as a tool for RF signal loss prediction over a rough terrain, using geographical features embedded inside terrain data and well know propagation prediction algorithms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are currently a number of freeware and open-source applications that perform RF signal loss analysis using data available to the general public (elevation data, landcover etc.).&lt;br /&gt;
Well known and used are Radiomobile &amp;lt;ref&amp;gt;http://www.cplus.org/rmw/english1.html&amp;lt;/ref&amp;gt;, a Windows application by Roger Coud&amp;amp;eacute;, VE2DBE and Splat!&amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/splat.html&amp;lt;/ref&amp;gt; (multiple platform) by John A. Magliacane, KD2BD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A common point of these applications is the usage of the Irregular Terrain Model (also known as Longley-Rice)&amp;lt;ref&amp;gt;https://webcache.googleusercontent.com/search?q=cache:FqVjcDsXaPQJ:http://www.iucaf.org/sschool/darrel/propagat.ppt%2Blongley+rice+for+lower+frequencies&amp;amp;oe=utf-8&amp;amp;rls=org.mozilla%3Aen-US%3Aunofficial&amp;amp;hl=en&amp;amp;ct=clnk&amp;lt;/ref&amp;gt; which is a propagation model developed by the U.S. Department of Commerce NTIA/ITS - Institute for Telecommunication Sciences and improved by several others (notably ITWOM &amp;lt;ref&amp;gt;http://bts.ieee.org/ieee-broadcast-technology-society-newsletter.html&amp;lt;/ref&amp;gt; by Sidney E. Shumate, code available to the public on a limited usage license, copyright Givens-Bell &amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/isart/art08/slides08/shu_s-08.pdf&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
It is a general purpose model that can be applied to a large variety of engineering problems. The model, which is based on electromagnetic theory and on statistical analysis of both terrain features and radio measurements, predicts the median attenuation of a radio signal as a function of distance and the variability of the signal in time and in space.&amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/resources/radio-propagation-software/itm/itm.aspx&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;http://web.archive.org/web/20110721032828/http://flattop.its.bldrdoc.gov/itm.html&amp;lt;/ref&amp;gt; &lt;br /&gt;
It is currently used among others by NASA, Alcatel-Lucent, US Army, University of Massachusetts and amateur radio operators around the world, and  is widely considered the best propagation model for frequencies between 50 - 5000 Mhz freely available to the public.&lt;br /&gt;
One of the most active users of the Irregular Terrain Model is the US FCC (Federal Communications Commission), which is currently applying the updated version of this model for broadcast station regulations &amp;lt;ref&amp;gt;http://broadcastengineering.com/transmitters/fcc-proposes-updated-longley-rice-model-repack-tv-stations&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
[[Image:Signal-analysis.png|thumb|Radio signal analysis]]&lt;br /&gt;
[[Image:Antenna-polar.png|thumb|Antenna far-field gain plot]]&lt;br /&gt;
The implementation of radio propagation analysis is mostly finished inside Flightgear. Since the terrain used by this open-source flight simulator contains both elevation information and landcover data, it seems especially suited for a 3D tool to predict RF signal levels, both for aviation navigational aids and radio communications, and standalone as a point-to-point radio link analysis between two radio stations.&lt;br /&gt;
Flightgear allows the user to place models on the terrain at specific locations, and to setup internal properties via a simple XML format.&lt;br /&gt;
Rather complex radio receivers and transmitters can be simulated using the Nasal scripting language or via an external utility, as well as an UI to perform signal level reading and modify receiver and transmitter physical characteristics. The 3D aspect is also interesting, since it allows one to perform  predicted signal level reading at different locations while inside the simulator, using visual cues to place the radio equipment on the terrain.&lt;br /&gt;
Since this open-source flight simulator is capable of running on multiple platforms, including GNU/Linux, Microsoft Windows and MacOS, its availability is not limited to one operating system.&lt;br /&gt;
&lt;br /&gt;
===Data===&lt;br /&gt;
&lt;br /&gt;
Most of new generation Flightgear terrain uses NASA SRTM v3 &amp;lt;ref&amp;gt;http://www2.jpl.nasa.gov/srtm/&amp;lt;/ref&amp;gt; elevation data, which has a distance of 90 meters between elevation points. This is considered accurate enough for most signal analysis, although more detailed elevation data from topographical maps, ASTER DEM or other sources can be acquired. &lt;br /&gt;
Default landcover in Flightgear comes from VMAP0 &amp;lt;ref&amp;gt;http://earth-info.nga.mil/publications/vmap0.html&amp;lt;/ref&amp;gt; layers, with more accurate geodata being available from national and international programs, such as Europe's flagship program, the CLC2006 &amp;quot;Corine&amp;quot; landcover project.&amp;lt;ref&amp;gt;http://www.eea.europa.eu/publications/COR0-landcover/at_download/file&amp;lt;/ref&amp;gt;&lt;br /&gt;
Landcover data is used to analyse path loss and improve predicted signal levels over specific types of terrain, but should be cross-checked with real-world RF signal readings took at the same locations. &lt;br /&gt;
Antenna radiation patterns obtained using the free tool NEC2x can be used for both transmitters and receivers. Patterns obtained from other applications can be used too, as long as they are converte to the rather simple text format which is used by the Flightgear radio code.&lt;br /&gt;
Also, data from Flightgear's realistic atmospheric and weather simulation could be taken into account when path loss analysis is perfomed.&lt;br /&gt;
&lt;br /&gt;
===Request for information===&lt;br /&gt;
&lt;br /&gt;
If you are involved with maintenance or have detailed information about navaid transmitter capabilities, the author would appreciate if you listed in the discussion page the following information:&lt;br /&gt;
&lt;br /&gt;
* usual transmitter power for localizer (known to be between 15-25 W) and glideslope (known to be between 5-10 W ???) equipment.&lt;br /&gt;
* usual transmitter power for DME (not VOR) equipment: various source suggest from 50 W to 1 kW (I guess these values are ERP, since reported antenna gains are 8 dBi on vertical polarization) &amp;lt;ref&amp;gt;http://www.selex-si-uk.com/pdf/Distance%20Measuring%20Equipment%20(DME).pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* usual receiver sensitivity (in dBm) for DME equipment (-95 dBm taken from source).&lt;br /&gt;
* usual antenna types and gains for localizer and glideslope equipment: for localizer the ERP (effective radiated power) is known from various sources as approx 100 W, thus assuming 7-9 dBi antenna gain, glideslope antenna estimated gain 10 dBi &amp;lt;ref&amp;gt;http://www.dbsant.com/gsSpecs.php&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* most sources describe a 16 dB front-to-back ratio, thus being consistent with the default pattern used and shown in the picture above. Corrections welcome.&lt;br /&gt;
* usual localizer/glideslope/DME antenna types and gains for various aircraft, for usage by aircraft developers (most sources show V-type dipole).&lt;br /&gt;
&lt;br /&gt;
===Implementation details===&lt;br /&gt;
&lt;br /&gt;
In order to use the point-to-point routine of the Longley-Rice model, a terrain profile between the two radio stations is generated by sampling the terrain with a configurable distance between points (default is 90 meters, which is equal to SRTM 3 arcsec precision). This terrain profile is fed to the ITM routines, together with some other parameters: transmitter output power, receiver sensitivity, antenna heights above terrain. These routines are the core of the implementation, and incorporate improvements made by J. D. McDonald, John A. Magliacane and Holger Schurig to the original code.&lt;br /&gt;
&lt;br /&gt;
The result is signal attenuation in dB along the direct path. The ITM functions will determine for us if the radio propagation is line-of-sight, diffraction dominant or tropospheric scatter. For diffraction propagation, it also determines if it's single horizon or double horizon.&lt;br /&gt;
This information will further be used in calculating ground clutter obstruction for different terrain types. The most frequent obstructions that affect radio signals are built-up areas and tall vegetation. By calculating the interference of ground clutter inside the first Fresnel zone, we can determine signal losses with average precision. &lt;br /&gt;
In order to do so, we need two more numbers in the equations: clutter height above terrain, and clutter density. These are stored inside a plain text file located inside the Materials/ directory, allowing for more terrain types to be added and properties to be changed by the user. The aim is to make these two factors as configurable as possible to the user, in order to be able to adapt them to local measured conditions.&lt;br /&gt;
&lt;br /&gt;
The radio stations parameters are also completely configurable by the user, by setting internal properties, via Nasal scripting or otherwise.&lt;br /&gt;
For ATC comms, at the current state, some basic assumptions are made about transmitter power, receiver sensitivity and antenna heights: these are based on standard ATC interactions, but this will be changed in the future to support a wider variety of signals. It might even be possible to simulate realistic ACARS transmissions, as well as transponder responses with realistic range and signal quality (introduce errors based on signal quality etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Usage====&lt;br /&gt;
&lt;br /&gt;
To enable the radio code, use the following command line flags:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-radio=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the main radio code&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-clutter-attenuation=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the ground clutter attenuation calculations&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-antenna-pattern=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the antenna radiation patterns&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/itm-radio-performance=false &amp;lt;/pre&amp;gt;&lt;br /&gt;
:disables performance mode (useful for propagation study)&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/material-radio-database=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: use the Sqlite database for landcover types and radio properties. It is named '''material_radio_properties.sqlite''' and placed in '''$FGROOT'''&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/sampling-distance=90 &amp;lt;/pre&amp;gt;&lt;br /&gt;
: distance between terrain profile points. Defaults to 90 meters which is the accuracy of SRTM elevation grids. A smaller value coupled with disabling performance mode will have an impact on the performance and will only be useful in very high resolution terrain. Use a larger value to relieve performance issues.&lt;br /&gt;
&lt;br /&gt;
====Known limitations====&lt;br /&gt;
&lt;br /&gt;
* The loading distance of terrain. For stations which are beyond the maximum configured terrain loading distance, path profiles will not be accurate and some errors are likely to occur in the signal loss figures. The experimental [[Terrain_sampling | terrain sampler]] based on an elevation database attempts to get rid of tile loading distance as a factor in this. It is a work in progress though, while reliable it needs a separate toolset to generate the database. To be used only for very special purposes (ground radar?).&lt;br /&gt;
&lt;br /&gt;
* The current model does not take into account signal reflection from objects or terrain features, nor refraction caused by atmospheric conditions.&lt;br /&gt;
&lt;br /&gt;
* The diffraction calculations within the ITM library are not very precise and are likely to overestimate losses caused by diffraction over a sharp edge, or when take-off angles are beyond a certain limit. This has been corrected in the new ITWOM, which is available to the public with commercial restrictions. &amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/itwom3.0.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Clutter loss calculation are only estimative and should only be taken into account after careful calibration done with measurement equipment at the sites.&lt;br /&gt;
&lt;br /&gt;
====Currently implemented features within the Flightgear engine====&lt;br /&gt;
[[Image:Vor_no_itm.png|thumb|VOR received on ground 80 km away with no line of sight, using old code]]&lt;br /&gt;
[[Image:Vor_itm.png|thumb|VOR no longer received on ground 80 km away with no line of sight, using new radio code]]&lt;br /&gt;
[[Image:Vor-no-dme.png|thumb|VOR station received full signal, while DME is still unavailable 70 km out because of obstructions, using new radio code]]&lt;br /&gt;
[[Image:Vor-dme.png|thumb|VOR received full signal, and now DME received too, we have cleared the small obstruction. UHF propagation is fun!]]&lt;br /&gt;
&lt;br /&gt;
* the code has been transitioned to a more efficient and performance-friendly subsystem structure&lt;br /&gt;
* point-to-point path loss calculations over rough terrain using the ITM library for air traffic control stations to pilot communication. Also AI to pilot reception.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for VOR/Localizer and Glideslope stations &amp;lt;ref&amp;gt;http://www2.rohde-schwarz.com/file_15494/1MA193_0e.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for DME stations &amp;lt;ref&amp;gt;http://www.faa.gov/air_traffic/publications/atpubs/aim/aim0101.html&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for TACAN stations, including mobile stations (AI tankers etc.) &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Tactical_air_navigation_system&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* for VHF/UHF stations beyond a reasonable terrain loading distance, automatic transition to path loss calculation over a smooth round earth using alternative free space signal attenuation equations&lt;br /&gt;
* RF link budget calculations using transmitter power, receiver sensitivity, antenna gain and height above terrain, taking into account typical values from various specifications&lt;br /&gt;
* experimental feature: usage of detailed landcover in RF propagation prediction (ground clutter path loss)&lt;br /&gt;
* landcover radio properties are stored into an easy to read and modify txt file in the Materials/ directory, allowing for more terrain types and radio properties to be changed by the user&lt;br /&gt;
* signal loss due to polarization mismatch&lt;br /&gt;
* simple signal strength indicator (Instrument for signal level reading)&lt;br /&gt;
* far-field antenna radiation patterns generated with 4nec2&lt;br /&gt;
* radio transmitter beacons can be placed with the model tool inside 3D space, models placed with the UFO tool will use a separate tree to avoid conflicts with other types of models (weather, etc). In the future it will be possible to define and change properties for multiple beacons from the same panel instrument.&lt;br /&gt;
* using the property tree, a radio station can be defined with Nasal scripts&lt;br /&gt;
* support for multiple radio stations running at the same time: navaids, ATC comms, beacons&lt;br /&gt;
* efficiency mode: the number of terrain data points decrease proportionally with the distance to the station.&lt;br /&gt;
* calculation of electrical field strength in uV/m, received signal strength in uV and dBm, as required by official guidelines.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Features which still need to be implemented====&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI]]&lt;br /&gt;
* Figure out what to do about VOR/DME/TAC stations sunk into the ground? Possible bug affecting them, maybe only on custom terrain.&lt;br /&gt;
* reception of ACARS ground messages via VHF radios&lt;br /&gt;
* usage of weather simulation and atmospheric conditions which affect radio propagation: tropospheric ducting, cloud backscatter etc.&lt;br /&gt;
* simulate realistic transponder response&lt;br /&gt;
* realistic ground-to-air radar&lt;br /&gt;
* reliable toolchain for generating data used with the alternative terrain sampler.&lt;br /&gt;
&lt;br /&gt;
====Qt GUI control====&lt;br /&gt;
&lt;br /&gt;
* A Qt-based GUI with OSM map controls and sattelite imagery is available to control all aspects of Flightgear's RF planning features. See the main article, [[qFGRadio]]&lt;br /&gt;
&lt;br /&gt;
== Mailing list discussions ==&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33688.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg34983.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35010.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35921.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38839.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38901.html&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=67211</id>
		<title>Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=67211"/>
		<updated>2014-02-04T07:27:40Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{out of date}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is a project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; The source code will remain available and will be kept up to date with the main Flightgear project as long as possible, but without any warranty. &amp;lt;b&amp;gt;Also, this project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image =Radio-perf2.png&lt;br /&gt;
|name =Radio Propagation Subsystem&lt;br /&gt;
|started= 12/2011 &lt;br /&gt;
|status = Under active development as of 08/2013(project is separated from mainline source)&lt;br /&gt;
|description = Enabling real time realistic radio calculations depending on terrain, landcover, transmitter station, receivers station. Everything configurable via the property tree. Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool.&lt;br /&gt;
|maintainers  = Adrian&lt;br /&gt;
|developers = [[User:Adrian]] (since 09/2011), &lt;br /&gt;
|folders = $FG_SRC/Radio&lt;br /&gt;
|topic-fg= &lt;br /&gt;
|merge-requests = &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
|topic-sg= &lt;br /&gt;
|topic-fgdata= &lt;br /&gt;
|subforum= &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Implement a realistic radio propagation model inside FlightGear&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
The code and algorithms described below enable the following features in Flightgear, which to the author's knowledge are unique for a conventional flight simulator:&lt;br /&gt;
&lt;br /&gt;
* realistic radio reception of ATC and AI aircraft messages.&lt;br /&gt;
* realistic radio reception of VOR stations, making radio navigation more interesting and realistic in hilly/mountainous terrain.&lt;br /&gt;
* realistic range for DME equipment, reception is now very different to VOR signals due to the very high frequency used. You could have full deflection on the NAV display and no DME data until you pass a minor obstruction.&lt;br /&gt;
* realistic reception of TACAN stations, including mobile stations (AI tankers etc.). Conditions similar to DME.&lt;br /&gt;
* mostly realistic radio reception of localizer and glideslope signals, making landings more interesting for certain airports.&lt;br /&gt;
* configuration and realistic reception of radio beacons located anywhere in the 3D world, while presenting calculated signal values according to different official guidelines, including but not limited to the FAA.&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
&lt;br /&gt;
==Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to evaluate the possible usage of the Flightgear engine as a tool for RF signal loss prediction over a rough terrain, using geographical features embedded inside terrain data and well know propagation prediction algorithms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are currently a number of freeware and open-source applications that perform RF signal loss analysis using data available to the general public (elevation data, landcover etc.).&lt;br /&gt;
Well known and used are Radiomobile &amp;lt;ref&amp;gt;http://www.cplus.org/rmw/english1.html&amp;lt;/ref&amp;gt;, a Windows application by Roger Coud&amp;amp;eacute;, VE2DBE and Splat!&amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/splat.html&amp;lt;/ref&amp;gt; (multiple platform) by John A. Magliacane, KD2BD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A common point of these applications is the usage of the Irregular Terrain Model (also known as Longley-Rice)&amp;lt;ref&amp;gt;https://webcache.googleusercontent.com/search?q=cache:FqVjcDsXaPQJ:http://www.iucaf.org/sschool/darrel/propagat.ppt%2Blongley+rice+for+lower+frequencies&amp;amp;oe=utf-8&amp;amp;rls=org.mozilla%3Aen-US%3Aunofficial&amp;amp;hl=en&amp;amp;ct=clnk&amp;lt;/ref&amp;gt; which is a propagation model developed by the U.S. Department of Commerce NTIA/ITS - Institute for Telecommunication Sciences and improved by several others (notably ITWOM &amp;lt;ref&amp;gt;http://bts.ieee.org/ieee-broadcast-technology-society-newsletter.html&amp;lt;/ref&amp;gt; by Sidney E. Shumate, code available to the public on a limited usage license, copyright Givens-Bell &amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/isart/art08/slides08/shu_s-08.pdf&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
It is a general purpose model that can be applied to a large variety of engineering problems. The model, which is based on electromagnetic theory and on statistical analysis of both terrain features and radio measurements, predicts the median attenuation of a radio signal as a function of distance and the variability of the signal in time and in space.&amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/resources/radio-propagation-software/itm/itm.aspx&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;http://web.archive.org/web/20110721032828/http://flattop.its.bldrdoc.gov/itm.html&amp;lt;/ref&amp;gt; &lt;br /&gt;
It is currently used among others by NASA, Alcatel-Lucent, US Army, University of Massachusetts and amateur radio operators around the world, and  is widely considered the best propagation model for frequencies between 50 - 5000 Mhz freely available to the public.&lt;br /&gt;
One of the most active users of the Irregular Terrain Model is the US FCC (Federal Communications Commission), which is currently applying the updated version of this model for broadcast station regulations &amp;lt;ref&amp;gt;http://broadcastengineering.com/transmitters/fcc-proposes-updated-longley-rice-model-repack-tv-stations&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
[[Image:Signal-analysis.png|thumb|Radio signal analysis]]&lt;br /&gt;
[[Image:Antenna-polar.png|thumb|Antenna far-field gain plot]]&lt;br /&gt;
The implementation of radio propagation analysis is mostly finished inside Flightgear. Since the terrain used by this open-source flight simulator contains both elevation information and landcover data, it seems especially suited for a 3D tool to predict RF signal levels, both for aviation navigational aids and radio communications, and standalone as a point-to-point radio link analysis between two radio stations.&lt;br /&gt;
Flightgear allows the user to place models on the terrain at specific locations, and to setup internal properties via a simple XML format.&lt;br /&gt;
Rather complex radio receivers and transmitters can be simulated using the Nasal scripting language or via an external utility, as well as an UI to perform signal level reading and modify receiver and transmitter physical characteristics. The 3D aspect is also interesting, since it allows one to perform  predicted signal level reading at different locations while inside the simulator, using visual cues to place the radio equipment on the terrain.&lt;br /&gt;
Since this open-source flight simulator is capable of running on multiple platforms, including GNU/Linux, Microsoft Windows and MacOS, its availability is not limited to one operating system.&lt;br /&gt;
&lt;br /&gt;
===Data===&lt;br /&gt;
&lt;br /&gt;
Most of new generation Flightgear terrain uses NASA SRTM v3 &amp;lt;ref&amp;gt;http://www2.jpl.nasa.gov/srtm/&amp;lt;/ref&amp;gt; elevation data, which has a distance of 90 meters between elevation points. This is considered accurate enough for most signal analysis, although more detailed elevation data from topographical maps, ASTER DEM or other sources can be acquired. &lt;br /&gt;
Default landcover in Flightgear comes from VMAP0 &amp;lt;ref&amp;gt;http://earth-info.nga.mil/publications/vmap0.html&amp;lt;/ref&amp;gt; layers, with more accurate geodata being available from national and international programs, such as Europe's flagship program, the CLC2006 &amp;quot;Corine&amp;quot; landcover project.&amp;lt;ref&amp;gt;http://www.eea.europa.eu/publications/COR0-landcover/at_download/file&amp;lt;/ref&amp;gt;&lt;br /&gt;
Landcover data is used to analyse path loss and improve predicted signal levels over specific types of terrain, but should be cross-checked with real-world RF signal readings took at the same locations. &lt;br /&gt;
Antenna radiation patterns obtained using the free tool NEC2x can be used for both transmitters and receivers. Patterns obtained from other applications can be used too, as long as they are converte to the rather simple text format which is used by the Flightgear radio code.&lt;br /&gt;
Also, data from Flightgear's realistic atmospheric and weather simulation could be taken into account when path loss analysis is perfomed.&lt;br /&gt;
&lt;br /&gt;
===Request for information===&lt;br /&gt;
&lt;br /&gt;
If you are involved with maintenance or have detailed information about navaid transmitter capabilities, the author would appreciate if you listed in the discussion page the following information:&lt;br /&gt;
&lt;br /&gt;
* usual transmitter power for localizer (known to be between 15-25 W) and glideslope (known to be between 5-10 W ???) equipment.&lt;br /&gt;
* usual transmitter power for DME (not VOR) equipment: various source suggest from 50 W to 1 kW (I guess these values are ERP, since reported antenna gains are 8 dBi on vertical polarization) &amp;lt;ref&amp;gt;http://www.selex-si-uk.com/pdf/Distance%20Measuring%20Equipment%20(DME).pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* usual receiver sensitivity (in dBm) for DME equipment (-95 dBm taken from source).&lt;br /&gt;
* usual antenna types and gains for localizer and glideslope equipment: for localizer the ERP (effective radiated power) is known from various sources as approx 100 W, thus assuming 7-9 dBi antenna gain, glideslope antenna estimated gain 10 dBi &amp;lt;ref&amp;gt;http://www.dbsant.com/gsSpecs.php&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* most sources describe a 16 dB front-to-back ratio, thus being consistent with the default pattern used and shown in the picture above. Corrections welcome.&lt;br /&gt;
* usual localizer/glideslope/DME antenna types and gains for various aircraft, for usage by aircraft developers (most sources show V-type dipole).&lt;br /&gt;
&lt;br /&gt;
===Implementation details===&lt;br /&gt;
&lt;br /&gt;
In order to use the point-to-point routine of the Longley-Rice model, a terrain profile between the two radio stations is generated by sampling the terrain with a configurable distance between points (default is 90 meters, which is equal to SRTM 3 arcsec precision). This terrain profile is fed to the ITM routines, together with some other parameters: transmitter output power, receiver sensitivity, antenna heights above terrain. These routines are the core of the implementation, and incorporate improvements made by J. D. McDonald, John A. Magliacane and Holger Schurig to the original code.&lt;br /&gt;
&lt;br /&gt;
The result is signal attenuation in dB along the direct path. The ITM functions will determine for us if the radio propagation is line-of-sight, diffraction dominant or tropospheric scatter. For diffraction propagation, it also determines if it's single horizon or double horizon.&lt;br /&gt;
This information will further be used in calculating ground clutter obstruction for different terrain types. The most frequent obstructions that affect radio signals are built-up areas and tall vegetation. By calculating the interference of ground clutter inside the first Fresnel zone, we can determine signal losses with average precision. &lt;br /&gt;
In order to do so, we need two more numbers in the equations: clutter height above terrain, and clutter density. These are stored inside a plain text file located inside the Materials/ directory, allowing for more terrain types to be added and properties to be changed by the user. The aim is to make these two factors as configurable as possible to the user, in order to be able to adapt them to local measured conditions.&lt;br /&gt;
&lt;br /&gt;
The radio stations parameters are also completely configurable by the user, by setting internal properties, via Nasal scripting or otherwise.&lt;br /&gt;
For ATC comms, at the current state, some basic assumptions are made about transmitter power, receiver sensitivity and antenna heights: these are based on standard ATC interactions, but this will be changed in the future to support a wider variety of signals. It might even be possible to simulate realistic ACARS transmissions, as well as transponder responses with realistic range and signal quality (introduce errors based on signal quality etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Usage====&lt;br /&gt;
&lt;br /&gt;
To enable the radio code, use the following command line flags:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-radio=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the main radio code&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-sqlite=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enable the experimental [[Terrain_sampling | terrain sampler]] based on a terrain database. Not recommended unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-clutter-attenuation=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the ground clutter attenuation calculations&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-antenna-pattern=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the antenna radiation patterns&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/itm-radio-performance=false &amp;lt;/pre&amp;gt;&lt;br /&gt;
:disables performance mode (useful for propagation study)&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/material-radio-database=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: use the Sqlite database for landcover types and radio properties. It is named '''material_radio_properties.sqlite''' and placed in '''$FGROOT'''&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/sampling-distance=90 &amp;lt;/pre&amp;gt;&lt;br /&gt;
: distance between terrain profile points. Defaults to 90 meters which is the accuracy of SRTM elevation grids. A smaller value coupled with disabling performance mode will have an impact on the performance and will only be useful in very high resolution terrain. Use a larger value to relieve performance issues.&lt;br /&gt;
&lt;br /&gt;
====Known limitations====&lt;br /&gt;
&lt;br /&gt;
* The loading distance of terrain. For stations which are beyond the maximum configured terrain loading distance, path profiles will not be accurate and some errors are likely to occur in the signal loss figures. The experimental [[Terrain_sampling | terrain sampler]] based on an elevation database attempts to get rid of tile loading distance as a factor in this. It is a work in progress though, while reliable it needs a separate toolset to generate the database. To be used only for very special purposes (ground radar?).&lt;br /&gt;
&lt;br /&gt;
* The current model does not take into account signal reflection from objects or terrain features, nor refraction caused by atmospheric conditions.&lt;br /&gt;
&lt;br /&gt;
* The diffraction calculations within the ITM library are not very precise and are likely to overestimate losses caused by diffraction over a sharp edge, or when take-off angles are beyond a certain limit. This has been corrected in the new ITWOM, which is available to the public with commercial restrictions. &amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/itwom3.0.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Clutter loss calculation are only estimative and should only be taken into account after careful calibration done with measurement equipment at the sites.&lt;br /&gt;
&lt;br /&gt;
====Currently implemented features within the Flightgear engine====&lt;br /&gt;
[[Image:Vor_no_itm.png|thumb|VOR received on ground 80 km away with no line of sight, using old code]]&lt;br /&gt;
[[Image:Vor_itm.png|thumb|VOR no longer received on ground 80 km away with no line of sight, using new radio code]]&lt;br /&gt;
[[Image:Vor-no-dme.png|thumb|VOR station received full signal, while DME is still unavailable 70 km out because of obstructions, using new radio code]]&lt;br /&gt;
[[Image:Vor-dme.png|thumb|VOR received full signal, and now DME received too, we have cleared the small obstruction. UHF propagation is fun!]]&lt;br /&gt;
&lt;br /&gt;
* the code has been transitioned to a more efficient and performance-friendly subsystem structure&lt;br /&gt;
* point-to-point path loss calculations over rough terrain using the ITM library for air traffic control stations to pilot communication. Also AI to pilot reception.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for VOR/Localizer and Glideslope stations &amp;lt;ref&amp;gt;http://www2.rohde-schwarz.com/file_15494/1MA193_0e.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for DME stations &amp;lt;ref&amp;gt;http://www.faa.gov/air_traffic/publications/atpubs/aim/aim0101.html&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for TACAN stations, including mobile stations (AI tankers etc.) &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Tactical_air_navigation_system&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* for VHF/UHF stations beyond a reasonable terrain loading distance, automatic transition to path loss calculation over a smooth round earth using alternative free space signal attenuation equations&lt;br /&gt;
* RF link budget calculations using transmitter power, receiver sensitivity, antenna gain and height above terrain, taking into account typical values from various specifications&lt;br /&gt;
* experimental feature: usage of detailed landcover in RF propagation prediction (ground clutter path loss)&lt;br /&gt;
* landcover radio properties are stored into an easy to read and modify txt file in the Materials/ directory, allowing for more terrain types and radio properties to be changed by the user&lt;br /&gt;
* signal loss due to polarization mismatch&lt;br /&gt;
* simple signal strength indicator (Instrument for signal level reading)&lt;br /&gt;
* far-field antenna radiation patterns generated with 4nec2&lt;br /&gt;
* radio transmitter beacons can be placed with the model tool inside 3D space, models placed with the UFO tool will use a separate tree to avoid conflicts with other types of models (weather, etc). In the future it will be possible to define and change properties for multiple beacons from the same panel instrument.&lt;br /&gt;
* using the property tree, a radio station can be defined with Nasal scripts&lt;br /&gt;
* support for multiple radio stations running at the same time: navaids, ATC comms, beacons&lt;br /&gt;
* efficiency mode: the number of terrain data points decrease proportionally with the distance to the station.&lt;br /&gt;
* calculation of electrical field strength in uV/m, received signal strength in uV and dBm, as required by official guidelines.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Features which still need to be implemented====&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI]]&lt;br /&gt;
* Figure out what to do about VOR/DME/TAC stations sunk into the ground? Possible bug affecting them, maybe only on custom terrain.&lt;br /&gt;
* reception of ACARS ground messages via VHF radios&lt;br /&gt;
* usage of weather simulation and atmospheric conditions which affect radio propagation: tropospheric ducting, cloud backscatter etc.&lt;br /&gt;
* simulate realistic transponder response&lt;br /&gt;
* realistic ground-to-air radar&lt;br /&gt;
* reliable toolchain for generating data used with the alternative terrain sampler.&lt;br /&gt;
&lt;br /&gt;
====Qt GUI control====&lt;br /&gt;
&lt;br /&gt;
* A Qt-based GUI with OSM map controls and sattelite imagery is available to control all aspects of Flightgear's RF planning features. See the main article, [[qFGRadio]]&lt;br /&gt;
&lt;br /&gt;
== Mailing list discussions ==&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33688.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg34983.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35010.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35921.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38839.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38901.html&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=67210</id>
		<title>Talk:Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Radio_propagation&amp;diff=67210"/>
		<updated>2014-02-04T07:27:20Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Roadmap ==&lt;br /&gt;
We are currently looking into updating the code base, to ensure that things still work with FG 3.0+&lt;br /&gt;
Some of the steps involved are detailed below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* integrate with navaid/radio code[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38787.html]&lt;br /&gt;
* rebase against git HEAD (next) {{Not done}}&lt;br /&gt;
* rebase into a set of smaller self-contained patches [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38837.html] {{Not done}}&lt;br /&gt;
* modify build system to make the feature entirely optional via build-time option that defaults to disabled [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38797.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* Address issues pointed out by TorstenD on the devel list: {{Not done}}&lt;br /&gt;
** generalize/unify with terrain presampler code [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of huge conditionals, introduce helper functions/methods instead [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
** get rid of magic constants, use variables [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38927.html]&lt;br /&gt;
&lt;br /&gt;
* provide a startup option to enable/disable the system [https://www.mail-archive.com/search?l=flightgear-devel@lists.sourceforge.net&amp;amp;q=subject:%22Re%3A+%5BFlightgear-devel%5D+Real-Time+Radio+Propagation%22] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38826.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33722.html] [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38918.html] {{Done}} &lt;br /&gt;
* implement SGPropertyChangeListener to change the SGSubsystem and make the feature runtime-configurable [[Howto:Create new subsystems]] {{Not done}}&lt;br /&gt;
* add a setting to the realism dialog[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38825.html] {{Not done}}&lt;br /&gt;
* explore allowing aircraft developers to specify and customize a &amp;quot;radio equipment&amp;quot; profile for their aircraft (e.g. 747 vs. c172p antenna/power etc) [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38827.html] {{Not done}}&lt;br /&gt;
* support different propagation models by coming up with an interface:&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33692.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38798.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38907.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40534.html&lt;br /&gt;
** https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40537.html&lt;br /&gt;
* turn the whole thing into a dedicated SGSubsystem[https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33736.html]&lt;br /&gt;
* explore what is involved in allowing fgcom-standalone to use the same system [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33735.html]&lt;br /&gt;
* investigate potential threading/HLA benefits {{Not done}}&lt;br /&gt;
* investigate exposing a [[Nasal/CppBind]] interface for people working on features that benefit from having a radio propagation model [[Canvas Radar]] {{Not done}}&lt;br /&gt;
* add unit tests to the cmake build system {{Not done}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=66162</id>
		<title>Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=66162"/>
		<updated>2014-01-05T15:26:35Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{out of date}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is a project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; The source code will remain available and will be kept up to date with the main Flightgear project as long as possible, but without any warranty. &amp;lt;b&amp;gt;Also, this project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image =Radio-perf2.png&lt;br /&gt;
|name =Radio Propagation Subsystem&lt;br /&gt;
|started= 12/2011 &lt;br /&gt;
|status = Under active development as of 08/2013(project is separated from mainline source)&lt;br /&gt;
|description = Enabling real time realistic radio calculations depending on terrain, landcover, transmitter station, receivers station. Everything configurable via the property tree. Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool.&lt;br /&gt;
|maintainers  = Adrian&lt;br /&gt;
|developers = [[User:Adrian]] (since 09/2011), &lt;br /&gt;
|folders = $FG_SRC/Radio&lt;br /&gt;
|topic-fg= &lt;br /&gt;
|merge-requests = &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
|topic-sg= &lt;br /&gt;
|topic-fgdata= &lt;br /&gt;
|subforum= &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
The code and algorithms described below enable the following features in Flightgear, which to the author's knowledge are unique for a conventional flight simulator:&lt;br /&gt;
&lt;br /&gt;
* realistic radio reception of ATC and AI aircraft messages.&lt;br /&gt;
* realistic radio reception of VOR stations, making radio navigation more interesting and realistic in hilly/mountainous terrain.&lt;br /&gt;
* realistic range for DME equipment, reception is now very different to VOR signals due to the very high frequency used. You could have full deflection on the NAV display and no DME data until you pass a minor obstruction.&lt;br /&gt;
* realistic reception of TACAN stations, including mobile stations (AI tankers etc.). Conditions similar to DME.&lt;br /&gt;
* mostly realistic radio reception of localizer and glideslope signals, making landings more interesting for certain airports.&lt;br /&gt;
* configuration and realistic reception of radio beacons located anywhere in the 3D world, while presenting calculated signal values according to different official guidelines, including but not limited to the FAA.&lt;br /&gt;
&lt;br /&gt;
==Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to evaluate the possible usage of the Flightgear engine as a tool for RF signal loss prediction over a rough terrain, using geographical features embedded inside terrain data and well know propagation prediction algorithms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are currently a number of freeware and open-source applications that perform RF signal loss analysis using data available to the general public (elevation data, landcover etc.).&lt;br /&gt;
Well known and used are Radiomobile &amp;lt;ref&amp;gt;http://www.cplus.org/rmw/english1.html&amp;lt;/ref&amp;gt;, a Windows application by Roger Coud&amp;amp;eacute;, VE2DBE and Splat!&amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/splat.html&amp;lt;/ref&amp;gt; (multiple platform) by John A. Magliacane, KD2BD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A common point of these applications is the usage of the Irregular Terrain Model (also known as Longley-Rice)&amp;lt;ref&amp;gt;https://webcache.googleusercontent.com/search?q=cache:FqVjcDsXaPQJ:http://www.iucaf.org/sschool/darrel/propagat.ppt%2Blongley+rice+for+lower+frequencies&amp;amp;oe=utf-8&amp;amp;rls=org.mozilla%3Aen-US%3Aunofficial&amp;amp;hl=en&amp;amp;ct=clnk&amp;lt;/ref&amp;gt; which is a propagation model developed by the U.S. Department of Commerce NTIA/ITS - Institute for Telecommunication Sciences and improved by several others (notably ITWOM &amp;lt;ref&amp;gt;http://bts.ieee.org/ieee-broadcast-technology-society-newsletter.html&amp;lt;/ref&amp;gt; by Sidney E. Shumate, code available to the public on a limited usage license, copyright Givens-Bell &amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/isart/art08/slides08/shu_s-08.pdf&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
It is a general purpose model that can be applied to a large variety of engineering problems. The model, which is based on electromagnetic theory and on statistical analysis of both terrain features and radio measurements, predicts the median attenuation of a radio signal as a function of distance and the variability of the signal in time and in space.&amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/resources/radio-propagation-software/itm/itm.aspx&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;http://web.archive.org/web/20110721032828/http://flattop.its.bldrdoc.gov/itm.html&amp;lt;/ref&amp;gt; &lt;br /&gt;
It is currently used among others by NASA, Alcatel-Lucent, US Army, University of Massachusetts and amateur radio operators around the world, and  is widely considered the best propagation model for frequencies between 50 - 5000 Mhz freely available to the public.&lt;br /&gt;
One of the most active users of the Irregular Terrain Model is the US FCC (Federal Communications Commission), which is currently applying the updated version of this model for broadcast station regulations &amp;lt;ref&amp;gt;http://broadcastengineering.com/transmitters/fcc-proposes-updated-longley-rice-model-repack-tv-stations&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
[[Image:Signal-analysis.png|thumb|Radio signal analysis]]&lt;br /&gt;
[[Image:Antenna-polar.png|thumb|Antenna far-field gain plot]]&lt;br /&gt;
The implementation of radio propagation analysis is mostly finished inside Flightgear. Since the terrain used by this open-source flight simulator contains both elevation information and landcover data, it seems especially suited for a 3D tool to predict RF signal levels, both for aviation navigational aids and radio communications, and standalone as a point-to-point radio link analysis between two radio stations.&lt;br /&gt;
Flightgear allows the user to place models on the terrain at specific locations, and to setup internal properties via a simple XML format.&lt;br /&gt;
Rather complex radio receivers and transmitters can be simulated using the Nasal scripting language or via an external utility, as well as an UI to perform signal level reading and modify receiver and transmitter physical characteristics. The 3D aspect is also interesting, since it allows one to perform  predicted signal level reading at different locations while inside the simulator, using visual cues to place the radio equipment on the terrain.&lt;br /&gt;
Since this open-source flight simulator is capable of running on multiple platforms, including GNU/Linux, Microsoft Windows and MacOS, its availability is not limited to one operating system.&lt;br /&gt;
&lt;br /&gt;
===Data===&lt;br /&gt;
&lt;br /&gt;
Most of new generation Flightgear terrain uses NASA SRTM v3 &amp;lt;ref&amp;gt;http://www2.jpl.nasa.gov/srtm/&amp;lt;/ref&amp;gt; elevation data, which has a distance of 90 meters between elevation points. This is considered accurate enough for most signal analysis, although more detailed elevation data from topographical maps, ASTER DEM or other sources can be acquired. &lt;br /&gt;
Default landcover in Flightgear comes from VMAP0 &amp;lt;ref&amp;gt;http://earth-info.nga.mil/publications/vmap0.html&amp;lt;/ref&amp;gt; layers, with more accurate geodata being available from national and international programs, such as Europe's flagship program, the CLC2006 &amp;quot;Corine&amp;quot; landcover project.&amp;lt;ref&amp;gt;http://www.eea.europa.eu/publications/COR0-landcover/at_download/file&amp;lt;/ref&amp;gt;&lt;br /&gt;
Landcover data is used to analyse path loss and improve predicted signal levels over specific types of terrain, but should be cross-checked with real-world RF signal readings took at the same locations. &lt;br /&gt;
Antenna radiation patterns obtained using the free tool NEC2x can be used for both transmitters and receivers. Patterns obtained from other applications can be used too, as long as they are converte to the rather simple text format which is used by the Flightgear radio code.&lt;br /&gt;
Also, data from Flightgear's realistic atmospheric and weather simulation could be taken into account when path loss analysis is perfomed.&lt;br /&gt;
&lt;br /&gt;
===Request for information===&lt;br /&gt;
&lt;br /&gt;
If you are involved with maintenance or have detailed information about navaid transmitter capabilities, the author would appreciate if you listed in the discussion page the following information:&lt;br /&gt;
&lt;br /&gt;
* usual transmitter power for localizer (known to be between 15-25 W) and glideslope (known to be between 5-10 W ???) equipment.&lt;br /&gt;
* usual transmitter power for DME (not VOR) equipment: various source suggest from 50 W to 1 kW (I guess these values are ERP, since reported antenna gains are 8 dBi on vertical polarization) &amp;lt;ref&amp;gt;http://www.selex-si-uk.com/pdf/Distance%20Measuring%20Equipment%20(DME).pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* usual receiver sensitivity (in dBm) for DME equipment (-95 dBm taken from source).&lt;br /&gt;
* usual antenna types and gains for localizer and glideslope equipment: for localizer the ERP (effective radiated power) is known from various sources as approx 100 W, thus assuming 7-9 dBi antenna gain, glideslope antenna estimated gain 10 dBi &amp;lt;ref&amp;gt;http://www.dbsant.com/gsSpecs.php&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* most sources describe a 16 dB front-to-back ratio, thus being consistent with the default pattern used and shown in the picture above. Corrections welcome.&lt;br /&gt;
* usual localizer/glideslope/DME antenna types and gains for various aircraft, for usage by aircraft developers (most sources show V-type dipole).&lt;br /&gt;
&lt;br /&gt;
===Implementation details===&lt;br /&gt;
&lt;br /&gt;
In order to use the point-to-point routine of the Longley-Rice model, a terrain profile between the two radio stations is generated by sampling the terrain with a configurable distance between points (default is 90 meters, which is equal to SRTM 3 arcsec precision). This terrain profile is fed to the ITM routines, together with some other parameters: transmitter output power, receiver sensitivity, antenna heights above terrain. These routines are the core of the implementation, and incorporate improvements made by J. D. McDonald, John A. Magliacane and Holger Schurig to the original code.&lt;br /&gt;
&lt;br /&gt;
The result is signal attenuation in dB along the direct path. The ITM functions will determine for us if the radio propagation is line-of-sight, diffraction dominant or tropospheric scatter. For diffraction propagation, it also determines if it's single horizon or double horizon.&lt;br /&gt;
This information will further be used in calculating ground clutter obstruction for different terrain types. The most frequent obstructions that affect radio signals are built-up areas and tall vegetation. By calculating the interference of ground clutter inside the first Fresnel zone, we can determine signal losses with average precision. &lt;br /&gt;
In order to do so, we need two more numbers in the equations: clutter height above terrain, and clutter density. These are stored inside a plain text file located inside the Materials/ directory, allowing for more terrain types to be added and properties to be changed by the user. The aim is to make these two factors as configurable as possible to the user, in order to be able to adapt them to local measured conditions.&lt;br /&gt;
&lt;br /&gt;
The radio stations parameters are also completely configurable by the user, by setting internal properties, via Nasal scripting or otherwise.&lt;br /&gt;
For ATC comms, at the current state, some basic assumptions are made about transmitter power, receiver sensitivity and antenna heights: these are based on standard ATC interactions, but this will be changed in the future to support a wider variety of signals. It might even be possible to simulate realistic ACARS transmissions, as well as transponder responses with realistic range and signal quality (introduce errors based on signal quality etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Usage====&lt;br /&gt;
&lt;br /&gt;
To enable the radio code, use the following command line flags:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-radio=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the main radio code&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-sqlite=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enable the experimental [[Terrain_sampling | terrain sampler]] based on a terrain database. Not recommended unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-clutter-attenuation=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the ground clutter attenuation calculations&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-antenna-pattern=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the antenna radiation patterns&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/itm-radio-performance=false &amp;lt;/pre&amp;gt;&lt;br /&gt;
:disables performance mode (useful for propagation study)&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/material-radio-database=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: use the Sqlite database for landcover types and radio properties. It is named '''material_radio_properties.sqlite''' and placed in '''$FGROOT'''&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/sampling-distance=90 &amp;lt;/pre&amp;gt;&lt;br /&gt;
: distance between terrain profile points. Defaults to 90 meters which is the accuracy of SRTM elevation grids. A smaller value coupled with disabling performance mode will have an impact on the performance and will only be useful in very high resolution terrain. Use a larger value to relieve performance issues.&lt;br /&gt;
&lt;br /&gt;
====Known limitations====&lt;br /&gt;
&lt;br /&gt;
* The loading distance of terrain. For stations which are beyond the maximum configured terrain loading distance, path profiles will not be accurate and some errors are likely to occur in the signal loss figures. The experimental [[Terrain_sampling | terrain sampler]] based on an elevation database attempts to get rid of tile loading distance as a factor in this. It is a work in progress though, while reliable it needs a separate toolset to generate the database. To be used only for very special purposes (ground radar?).&lt;br /&gt;
&lt;br /&gt;
* The current model does not take into account signal reflection from objects or terrain features, nor refraction caused by atmospheric conditions.&lt;br /&gt;
&lt;br /&gt;
* The diffraction calculations within the ITM library are not very precise and are likely to overestimate losses caused by diffraction over a sharp edge, or when take-off angles are beyond a certain limit. This has been corrected in the new ITWOM, which is available to the public with commercial restrictions. &amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/itwom3.0.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Clutter loss calculation are only estimative and should only be taken into account after careful calibration done with measurement equipment at the sites.&lt;br /&gt;
&lt;br /&gt;
====Currently implemented features within the Flightgear engine====&lt;br /&gt;
[[Image:Vor_no_itm.png|thumb|VOR received on ground 80 km away with no line of sight, using old code]]&lt;br /&gt;
[[Image:Vor_itm.png|thumb|VOR no longer received on ground 80 km away with no line of sight, using new radio code]]&lt;br /&gt;
[[Image:Vor-no-dme.png|thumb|VOR station received full signal, while DME is still unavailable 70 km out because of obstructions, using new radio code]]&lt;br /&gt;
[[Image:Vor-dme.png|thumb|VOR received full signal, and now DME received too, we have cleared the small obstruction. UHF propagation is fun!]]&lt;br /&gt;
&lt;br /&gt;
* the code has been transitioned to a more efficient and performance-friendly subsystem structure&lt;br /&gt;
* point-to-point path loss calculations over rough terrain using the ITM library for air traffic control stations to pilot communication. Also AI to pilot reception.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for VOR/Localizer and Glideslope stations &amp;lt;ref&amp;gt;http://www2.rohde-schwarz.com/file_15494/1MA193_0e.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for DME stations &amp;lt;ref&amp;gt;http://www.faa.gov/air_traffic/publications/atpubs/aim/aim0101.html&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for TACAN stations, including mobile stations (AI tankers etc.) &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Tactical_air_navigation_system&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* for VHF/UHF stations beyond a reasonable terrain loading distance, automatic transition to path loss calculation over a smooth round earth using alternative free space signal attenuation equations&lt;br /&gt;
* RF link budget calculations using transmitter power, receiver sensitivity, antenna gain and height above terrain, taking into account typical values from various specifications&lt;br /&gt;
* experimental feature: usage of detailed landcover in RF propagation prediction (ground clutter path loss)&lt;br /&gt;
* landcover radio properties are stored into an easy to read and modify txt file in the Materials/ directory, allowing for more terrain types and radio properties to be changed by the user&lt;br /&gt;
* signal loss due to polarization mismatch&lt;br /&gt;
* simple signal strength indicator (Instrument for signal level reading)&lt;br /&gt;
* far-field antenna radiation patterns generated with 4nec2&lt;br /&gt;
* radio transmitter beacons can be placed with the model tool inside 3D space, models placed with the UFO tool will use a separate tree to avoid conflicts with other types of models (weather, etc). In the future it will be possible to define and change properties for multiple beacons from the same panel instrument.&lt;br /&gt;
* using the property tree, a radio station can be defined with Nasal scripts&lt;br /&gt;
* support for multiple radio stations running at the same time: navaids, ATC comms, beacons&lt;br /&gt;
* efficiency mode: the number of terrain data points decrease proportionally with the distance to the station.&lt;br /&gt;
* calculation of electrical field strength in uV/m, received signal strength in uV and dBm, as required by official guidelines.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Features which still need to be implemented====&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI]]&lt;br /&gt;
* Figure out what to do about VOR/DME/TAC stations sunk into the ground? Possible bug affecting them, maybe only on custom terrain.&lt;br /&gt;
* reception of ACARS ground messages via VHF radios&lt;br /&gt;
* usage of weather simulation and atmospheric conditions which affect radio propagation: tropospheric ducting, cloud backscatter etc.&lt;br /&gt;
* simulate realistic transponder response&lt;br /&gt;
* realistic ground-to-air radar&lt;br /&gt;
* reliable toolchain for generating data used with the alternative terrain sampler.&lt;br /&gt;
&lt;br /&gt;
====Qt GUI control====&lt;br /&gt;
&lt;br /&gt;
* A Qt-based GUI with OSM map controls and sattelite imagery is available to control all aspects of Flightgear's RF planning features. See the main article, [[qFGRadio]]&lt;br /&gt;
&lt;br /&gt;
== Mailing list discussions ==&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33688.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg34983.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35010.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35921.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38839.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38901.html&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File_talk:Dornier_328_First_Prototype.jpg&amp;diff=64711</id>
		<title>File talk:Dornier 328 First Prototype.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File_talk:Dornier_328_First_Prototype.jpg&amp;diff=64711"/>
		<updated>2013-11-20T13:28:30Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Amazing! This is POTW material! [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 13:28, 20 November 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File_talk:Dornier_328_First_Prototype.jpg&amp;diff=64710</id>
		<title>File talk:Dornier 328 First Prototype.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File_talk:Dornier_328_First_Prototype.jpg&amp;diff=64710"/>
		<updated>2013-11-20T13:28:09Z</updated>

		<summary type="html">&lt;p&gt;Adrian: Created page with &amp;quot;Amazing! This is POTW material! ~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Amazing! This is POTW material! [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]])&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Nasal/CppBind&amp;diff=64458</id>
		<title>Talk:Nasal/CppBind</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Nasal/CppBind&amp;diff=64458"/>
		<updated>2013-11-13T14:54:01Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Perhaps it would be a good idea to start by explaining what cppbind is, what does it have to do with Nasal, and why anyone would need to use it. [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 14:53, 13 November 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Nasal/CppBind&amp;diff=64457</id>
		<title>Talk:Nasal/CppBind</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Nasal/CppBind&amp;diff=64457"/>
		<updated>2013-11-13T14:53:29Z</updated>

		<summary type="html">&lt;p&gt;Adrian: Created page with &amp;quot;Perhaps it would be a good idea to start by explaining what cppbind is, what does it have to do with Nasal, and why anyone would like to use it. ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Perhaps it would be a good idea to start by explaining what cppbind is, what does it have to do with Nasal, and why anyone would like to use it. [[User:Adrian|Adrian]] ([[User talk:Adrian|talk]]) 14:53, 13 November 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=64081</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=64081"/>
		<updated>2013-11-02T07:41:35Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
{{draft}}&lt;br /&gt;
{{mergeto|QRadioPredict|date=November 2013}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The replacement of qFGRadio, QRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* QRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio was replaced by QRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict requires GDAL in order to work with terrain shapefiles. More information can be found on the project page at [http://qradiopredict.sourceforge.net/ QRadioPredict]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=64080</id>
		<title>Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=64080"/>
		<updated>2013-11-02T07:40:49Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{out of date}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is a project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; The source code will remain available and will be kept up to date with the main Flightgear project as long as possible, but without any warranty. &amp;lt;b&amp;gt;Also, this project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image =Radio-perf2.png&lt;br /&gt;
|name =Radio Propagation Subsystem&lt;br /&gt;
|started= 12/2011 &lt;br /&gt;
|status = Under active development as of 08/2013(project is separated from mainline source)&lt;br /&gt;
|description = Enabling real time realistic radio calculations depending on terrain, landcover, transmitter station, receivers station. Everything configurable via the property tree. Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool.&lt;br /&gt;
|maintainers  = Adrian&lt;br /&gt;
|developers = [[User:Adrian]] (since 09/2011), &lt;br /&gt;
|folders = $FG_SRC/Radio&lt;br /&gt;
|topic-fg= &lt;br /&gt;
|merge-requests = &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
|topic-sg= &lt;br /&gt;
|topic-fgdata= &lt;br /&gt;
|subforum= &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
The code and algorithms described below enable the following features in Flightgear, which to the author's knowledge are unique for a conventional flight simulator:&lt;br /&gt;
&lt;br /&gt;
* realistic radio reception of ATC and AI aircraft messages.&lt;br /&gt;
* realistic radio reception of VOR stations, making radio navigation more interesting and realistic in hilly/mountainous terrain.&lt;br /&gt;
* realistic range for DME equipment, reception is now very different to VOR signals due to the very high frequency used. You could have full deflection on the NAV display and no DME data until you pass a minor obstruction.&lt;br /&gt;
* realistic reception of TACAN stations, including mobile stations (AI tankers etc.). Conditions similar to DME.&lt;br /&gt;
* mostly realistic radio reception of localizer and glideslope signals, making landings more interesting for certain airports.&lt;br /&gt;
* configuration and realistic reception of radio beacons located anywhere in the 3D world, while presenting calculated signal values according to different official guidelines, including but not limited to the FAA.&lt;br /&gt;
&lt;br /&gt;
==Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to evaluate the possible usage of the Flightgear engine as a tool for RF signal loss prediction over a rough terrain, using geographical features embedded inside terrain data and well know propagation prediction algorithms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are currently a number of freeware and open-source applications that perform RF signal loss analysis using data available to the general public (elevation data, landcover etc.).&lt;br /&gt;
Well known and used are Radiomobile &amp;lt;ref&amp;gt;http://www.cplus.org/rmw/english1.html&amp;lt;/ref&amp;gt;, a Windows application by Roger Coud&amp;amp;eacute;, VE2DBE and Splat!&amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/splat.html&amp;lt;/ref&amp;gt; (multiple platform) by John A. Magliacane, KD2BD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A common point of these applications is the usage of the Irregular Terrain Model (also known as Longley-Rice)&amp;lt;ref&amp;gt;https://webcache.googleusercontent.com/search?q=cache:FqVjcDsXaPQJ:http://www.iucaf.org/sschool/darrel/propagat.ppt%2Blongley+rice+for+lower+frequencies&amp;amp;oe=utf-8&amp;amp;rls=org.mozilla%3Aen-US%3Aunofficial&amp;amp;hl=en&amp;amp;ct=clnk&amp;lt;/ref&amp;gt; which is a propagation model developed by the U.S. Department of Commerce NTIA/ITS - Institute for Telecommunication Sciences and improved by several others (notably ITWOM &amp;lt;ref&amp;gt;http://bts.ieee.org/ieee-broadcast-technology-society-newsletter.html&amp;lt;/ref&amp;gt; by Sidney E. Shumate, code available to the public on a limited usage license, copyright Givens-Bell &amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/isart/art08/slides08/shu_s-08.pdf&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
It is a general purpose model that can be applied to a large variety of engineering problems. The model, which is based on electromagnetic theory and on statistical analysis of both terrain features and radio measurements, predicts the median attenuation of a radio signal as a function of distance and the variability of the signal in time and in space.&amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/resources/radio-propagation-software/itm/itm.aspx&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;http://web.archive.org/web/20110721032828/http://flattop.its.bldrdoc.gov/itm.html&amp;lt;/ref&amp;gt; &lt;br /&gt;
It is currently used among others by NASA, Alcatel-Lucent, US Army, University of Massachusetts and amateur radio operators around the world, and  is widely considered the best propagation model for frequencies between 50 - 5000 Mhz freely available to the public.&lt;br /&gt;
One of the most active users of the Irregular Terrain Model is the US FCC (Federal Communications Commission), which is currently applying the updated version of this model for broadcast station regulations &amp;lt;ref&amp;gt;http://broadcastengineering.com/transmitters/fcc-proposes-updated-longley-rice-model-repack-tv-stations&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
[[Image:Signal-analysis.png|thumb|Radio signal analysis]]&lt;br /&gt;
[[Image:Antenna-polar.png|thumb|Antenna far-field gain plot]]&lt;br /&gt;
The implementation of radio propagation analysis is mostly finished inside Flightgear. Since the terrain used by this open-source flight simulator contains both elevation information and landcover data, it seems especially suited for a 3D tool to predict RF signal levels, both for aviation navigational aids and radio communications, and standalone as a point-to-point radio link analysis between two radio stations.&lt;br /&gt;
Flightgear allows the user to place models on the terrain at specific locations, and to setup internal properties via a simple XML format.&lt;br /&gt;
Rather complex radio receivers and transmitters can be simulated using the Nasal scripting language or via an external utility, as well as an UI to perform signal level reading and modify receiver and transmitter physical characteristics. The 3D aspect is also interesting, since it allows one to perform  predicted signal level reading at different locations while inside the simulator, using visual cues to place the radio equipment on the terrain.&lt;br /&gt;
Since this open-source flight simulator is capable of running on multiple platforms, including GNU/Linux, Microsoft Windows and MacOS, its availability is not limited to one operating system.&lt;br /&gt;
&lt;br /&gt;
===Data===&lt;br /&gt;
&lt;br /&gt;
Most of new generation Flightgear terrain uses NASA SRTM v3 &amp;lt;ref&amp;gt;http://www2.jpl.nasa.gov/srtm/&amp;lt;/ref&amp;gt; elevation data, which has a distance of 90 meters between elevation points. This is considered accurate enough for most signal analysis, although more detailed elevation data from topographical maps, ASTER DEM or other sources can be acquired. &lt;br /&gt;
Default landcover in Flightgear comes from VMAP0 &amp;lt;ref&amp;gt;http://earth-info.nga.mil/publications/vmap0.html&amp;lt;/ref&amp;gt; layers, with more accurate geodata being available from national and international programs, such as Europe's flagship program, the CLC2006 &amp;quot;Corine&amp;quot; landcover project.&amp;lt;ref&amp;gt;http://www.eea.europa.eu/publications/COR0-landcover/at_download/file&amp;lt;/ref&amp;gt;&lt;br /&gt;
Landcover data is used to analyse path loss and improve predicted signal levels over specific types of terrain, but should be cross-checked with real-world RF signal readings took at the same locations. &lt;br /&gt;
Antenna radiation patterns obtained using the free tool NEC2x can be used for both transmitters and receivers. Patterns obtained from other applications can be used too, as long as they are converte to the rather simple text format which is used by the Flightgear radio code.&lt;br /&gt;
Also, data from Flightgear's realistic atmospheric and weather simulation could be taken into account when path loss analysis is perfomed.&lt;br /&gt;
&lt;br /&gt;
===Request for information===&lt;br /&gt;
&lt;br /&gt;
If you are involved with maintenance or have detailed information about navaid transmitter capabilities, the author would appreciate if you listed in the discussion page the following information:&lt;br /&gt;
&lt;br /&gt;
* usual transmitter power for localizer (known to be between 15-25 W) and glideslope (known to be between 5-10 W ???) equipment.&lt;br /&gt;
* usual transmitter power for DME (not VOR) equipment: various source suggest from 50 W to 1 kW (I guess these values are ERP, since reported antenna gains are 8 dBi on vertical polarization) &amp;lt;ref&amp;gt;http://www.selex-si-uk.com/pdf/Distance%20Measuring%20Equipment%20(DME).pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* usual receiver sensitivity (in dBm) for DME equipment (-95 dBm taken from source).&lt;br /&gt;
* usual antenna types and gains for localizer and glideslope equipment: for localizer the ERP (effective radiated power) is known from various sources as approx 100 W, thus assuming 7-9 dBi antenna gain, glideslope antenna estimated gain 10 dBi &amp;lt;ref&amp;gt;http://www.dbsant.com/gsSpecs.php&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* most sources describe a 16 dB front-to-back ratio, thus being consistent with the default pattern used and shown in the picture above. Corrections welcome.&lt;br /&gt;
* usual localizer/glideslope/DME antenna types and gains for various aircraft, for usage by aircraft developers (most sources show V-type dipole).&lt;br /&gt;
&lt;br /&gt;
===Implementation details===&lt;br /&gt;
&lt;br /&gt;
In order to use the point-to-point routine of the Longley-Rice model, a terrain profile between the two radio stations is generated by sampling the terrain with a configurable distance between points (default is 90 meters, which is equal to SRTM 3 arcsec precision). This terrain profile is fed to the ITM routines, together with some other parameters: transmitter output power, receiver sensitivity, antenna heights above terrain. These routines are the core of the implementation, and incorporate improvements made by J. D. McDonald, John A. Magliacane and Holger Schurig to the original code.&lt;br /&gt;
&lt;br /&gt;
The result is signal attenuation in dB along the direct path. The ITM functions will determine for us if the radio propagation is line-of-sight, diffraction dominant or tropospheric scatter. For diffraction propagation, it also determines if it's single horizon or double horizon.&lt;br /&gt;
This information will further be used in calculating ground clutter obstruction for different terrain types. The most frequent obstructions that affect radio signals are built-up areas and tall vegetation. By calculating the interference of ground clutter inside the first Fresnel zone, we can determine signal losses with average precision. &lt;br /&gt;
In order to do so, we need two more numbers in the equations: clutter height above terrain, and clutter density. These are stored inside a plain text file located inside the Materials/ directory, allowing for more terrain types to be added and properties to be changed by the user. The aim is to make these two factors as configurable as possible to the user, in order to be able to adapt them to local measured conditions.&lt;br /&gt;
&lt;br /&gt;
The radio stations parameters are also completely configurable by the user, by setting internal properties, via Nasal scripting or otherwise.&lt;br /&gt;
For ATC comms, at the current state, some basic assumptions are made about transmitter power, receiver sensitivity and antenna heights: these are based on standard ATC interactions, but this will be changed in the future to support a wider variety of signals. It might even be possible to simulate realistic ACARS transmissions, as well as transponder responses with realistic range and signal quality (introduce errors based on signal quality etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Usage====&lt;br /&gt;
&lt;br /&gt;
To enable the radio code, use the following command line flags:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-radio=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the main radio code&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-sqlite=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enable the experimental [[Terrain_sampling | terrain sampler]] based on a terrain database. Not recommended unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-clutter-attenuation=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the ground clutter attenuation calculations&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-antenna-pattern=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the antenna radiation patterns&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/itm-radio-performance=false &amp;lt;/pre&amp;gt;&lt;br /&gt;
:disables performance mode (useful for propagation study)&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/material-radio-database=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: use the Sqlite database for landcover types and radio properties. It is named '''material_radio_properties.sqlite''' and placed in '''$FGROOT'''&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/sampling-distance=90 &amp;lt;/pre&amp;gt;&lt;br /&gt;
: distance between terrain profile points. Defaults to 90 meters which is the accuracy of SRTM elevation grids. A smaller value coupled with disabling performance mode will have an impact on the performance and will only be useful in very high resolution terrain. Use a larger value to relieve performance issues.&lt;br /&gt;
&lt;br /&gt;
====Known limitations====&lt;br /&gt;
&lt;br /&gt;
* The loading distance of terrain. For stations which are beyond the maximum configured terrain loading distance, path profiles will not be accurate and some errors are likely to occur in the signal loss figures. The experimental [[Terrain_sampling | terrain sampler]] based on an elevation database attempts to get rid of tile loading distance as a factor in this. It is a work in progress though, while reliable it needs a separate toolset to generate the database. To be used only for very special purposes (ground radar?).&lt;br /&gt;
&lt;br /&gt;
* The current model does not take into account signal reflection from objects or terrain features, nor refraction caused by atmospheric conditions.&lt;br /&gt;
&lt;br /&gt;
* The diffraction calculations within the ITM library are not very precise and are likely to overestimate losses caused by diffraction over a sharp edge, or when take-off angles are beyond a certain limit. This has been corrected in the new ITWOM, which is available to the public with commercial restrictions. &amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/itwom3.0.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Clutter loss calculation are only estimative and should only be taken into account after careful calibration done with measurement equipment at the sites.&lt;br /&gt;
&lt;br /&gt;
====Currently implemented features within the Flightgear engine====&lt;br /&gt;
[[Image:Vor_no_itm.png|thumb|VOR received on ground 80 km away with no line of sight, using old code]]&lt;br /&gt;
[[Image:Vor_itm.png|thumb|VOR no longer received on ground 80 km away with no line of sight, using new radio code]]&lt;br /&gt;
[[Image:Vor-no-dme.png|thumb|VOR station received full signal, while DME is still unavailable 70 km out because of obstructions, using new radio code]]&lt;br /&gt;
[[Image:Vor-dme.png|thumb|VOR received full signal, and now DME received too, we have cleared the small obstruction. UHF propagation is fun!]]&lt;br /&gt;
&lt;br /&gt;
* the code has been transitioned to a more efficient and performance-friendly subsystem structure&lt;br /&gt;
* point-to-point path loss calculations over rough terrain using the ITM library for air traffic control stations to pilot communication. Also AI to pilot reception.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for VOR/Localizer and Glideslope stations &amp;lt;ref&amp;gt;http://www2.rohde-schwarz.com/file_15494/1MA193_0e.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for DME stations &amp;lt;ref&amp;gt;http://www.faa.gov/air_traffic/publications/atpubs/aim/aim0101.html&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for TACAN stations, including mobile stations (AI tankers etc.) &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Tactical_air_navigation_system&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* for VHF/UHF stations beyond a reasonable terrain loading distance, automatic transition to path loss calculation over a smooth round earth using alternative free space signal attenuation equations&lt;br /&gt;
* RF link budget calculations using transmitter power, receiver sensitivity, antenna gain and height above terrain, taking into account typical values from various specifications&lt;br /&gt;
* experimental feature: usage of detailed landcover in RF propagation prediction (ground clutter path loss)&lt;br /&gt;
* landcover radio properties are stored into an easy to read and modify txt file in the Materials/ directory, allowing for more terrain types and radio properties to be changed by the user&lt;br /&gt;
* signal loss due to polarization mismatch&lt;br /&gt;
* simple signal strength indicator (Instrument for signal level reading)&lt;br /&gt;
* far-field antenna radiation patterns generated with 4nec2&lt;br /&gt;
* radio transmitter beacons can be placed with the model tool inside 3D space, models placed with the UFO tool will use a separate tree to avoid conflicts with other types of models (weather, etc). In the future it will be possible to define and change properties for multiple beacons from the same panel instrument.&lt;br /&gt;
* using the property tree, a radio station can be defined with Nasal scripts&lt;br /&gt;
* support for multiple radio stations running at the same time: navaids, ATC comms, beacons&lt;br /&gt;
* efficiency mode: the number of terrain data points decrease proportionally with the distance to the station.&lt;br /&gt;
* calculation of electrical field strength in uV/m, received signal strength in uV and dBm, as required by official guidelines.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Features which still need to be implemented====&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI]]&lt;br /&gt;
* Figure out what to do about VOR/DME/TAC stations sunk into the ground? Possible bug affecting them, maybe only on custom terrain.&lt;br /&gt;
* reception of ACARS ground messages via VHF radios&lt;br /&gt;
* usage of weather simulation and atmospheric conditions which affect radio propagation: tropospheric ducting, cloud backscatter etc.&lt;br /&gt;
* simulate realistic transponder response&lt;br /&gt;
* realistic ground-to-air radar&lt;br /&gt;
* reliable toolchain for generating data used with the alternative terrain sampler.&lt;br /&gt;
&lt;br /&gt;
====Qt GUI control====&lt;br /&gt;
&lt;br /&gt;
* A Qt-based GUI with OSM map controls and sattelite imagery is available to control all aspects of Flightgear's RF planning features. See the main article, [[qFGRadio]]&lt;br /&gt;
&lt;br /&gt;
== Mailing list discussions ==&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33688.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg34983.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35010.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35921.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38839.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38901.html&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=64079</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=64079"/>
		<updated>2013-11-02T07:38:10Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
{{draft}}&lt;br /&gt;
{{mergeto|QRadioPredict|date=November 2013}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The replacement of qFGRadio, QRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* QRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio was replaced by QRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict requires GDAL in order to work with terrain shapefiles. More information can be found on the project page at [http://qradiopredict.sourceforge.net/ QRadioPredict]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=64078</id>
		<title>Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=64078"/>
		<updated>2013-11-02T07:34:48Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup}}&lt;br /&gt;
{{WIP}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is a project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; The source code will remain available and will be kept up to date with the main Flightgear project as long as possible, but without any warranty. &amp;lt;b&amp;gt;Also, this project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image =Radio-perf2.png&lt;br /&gt;
|name =Radio Propagation Subsystem&lt;br /&gt;
|started= 12/2011 &lt;br /&gt;
|status = Under active development as of 08/2013(project is separated from mainline source)&lt;br /&gt;
|description = Enabling real time realistic radio calculations depending on terrain, landcover, transmitter station, receivers station. Everything configurable via the property tree. Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool.&lt;br /&gt;
|maintainers  = Adrian&lt;br /&gt;
|developers = [[User:Adrian]] (since 09/2011), &lt;br /&gt;
|folders = $FG_SRC/Radio&lt;br /&gt;
|topic-fg= &lt;br /&gt;
|merge-requests = &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
|topic-sg= &lt;br /&gt;
|topic-fgdata= &lt;br /&gt;
|subforum= &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
The code and algorithms described below enable the following features in Flightgear, which to the author's knowledge are unique for a conventional flight simulator:&lt;br /&gt;
&lt;br /&gt;
* realistic radio reception of ATC and AI aircraft messages.&lt;br /&gt;
* realistic radio reception of VOR stations, making radio navigation more interesting and realistic in hilly/mountainous terrain.&lt;br /&gt;
* realistic range for DME equipment, reception is now very different to VOR signals due to the very high frequency used. You could have full deflection on the NAV display and no DME data until you pass a minor obstruction.&lt;br /&gt;
* realistic reception of TACAN stations, including mobile stations (AI tankers etc.). Conditions similar to DME.&lt;br /&gt;
* mostly realistic radio reception of localizer and glideslope signals, making landings more interesting for certain airports.&lt;br /&gt;
* configuration and realistic reception of radio beacons located anywhere in the 3D world, while presenting calculated signal values according to different official guidelines, including but not limited to the FAA.&lt;br /&gt;
&lt;br /&gt;
==Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to evaluate the possible usage of the Flightgear engine as a tool for RF signal loss prediction over a rough terrain, using geographical features embedded inside terrain data and well know propagation prediction algorithms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are currently a number of freeware and open-source applications that perform RF signal loss analysis using data available to the general public (elevation data, landcover etc.).&lt;br /&gt;
Well known and used are Radiomobile &amp;lt;ref&amp;gt;http://www.cplus.org/rmw/english1.html&amp;lt;/ref&amp;gt;, a Windows application by Roger Coud&amp;amp;eacute;, VE2DBE and Splat!&amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/splat.html&amp;lt;/ref&amp;gt; (multiple platform) by John A. Magliacane, KD2BD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A common point of these applications is the usage of the Irregular Terrain Model (also known as Longley-Rice)&amp;lt;ref&amp;gt;https://webcache.googleusercontent.com/search?q=cache:FqVjcDsXaPQJ:http://www.iucaf.org/sschool/darrel/propagat.ppt%2Blongley+rice+for+lower+frequencies&amp;amp;oe=utf-8&amp;amp;rls=org.mozilla%3Aen-US%3Aunofficial&amp;amp;hl=en&amp;amp;ct=clnk&amp;lt;/ref&amp;gt; which is a propagation model developed by the U.S. Department of Commerce NTIA/ITS - Institute for Telecommunication Sciences and improved by several others (notably ITWOM &amp;lt;ref&amp;gt;http://bts.ieee.org/ieee-broadcast-technology-society-newsletter.html&amp;lt;/ref&amp;gt; by Sidney E. Shumate, code available to the public on a limited usage license, copyright Givens-Bell &amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/isart/art08/slides08/shu_s-08.pdf&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
It is a general purpose model that can be applied to a large variety of engineering problems. The model, which is based on electromagnetic theory and on statistical analysis of both terrain features and radio measurements, predicts the median attenuation of a radio signal as a function of distance and the variability of the signal in time and in space.&amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/resources/radio-propagation-software/itm/itm.aspx&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;http://web.archive.org/web/20110721032828/http://flattop.its.bldrdoc.gov/itm.html&amp;lt;/ref&amp;gt; &lt;br /&gt;
It is currently used among others by NASA, Alcatel-Lucent, US Army, University of Massachusetts and amateur radio operators around the world, and  is widely considered the best propagation model for frequencies between 50 - 5000 Mhz freely available to the public.&lt;br /&gt;
One of the most active users of the Irregular Terrain Model is the US FCC (Federal Communications Commission), which is currently applying the updated version of this model for broadcast station regulations &amp;lt;ref&amp;gt;http://broadcastengineering.com/transmitters/fcc-proposes-updated-longley-rice-model-repack-tv-stations&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
[[Image:Signal-analysis.png|thumb|Radio signal analysis]]&lt;br /&gt;
[[Image:Antenna-polar.png|thumb|Antenna far-field gain plot]]&lt;br /&gt;
The implementation of radio propagation analysis is mostly finished inside Flightgear. Since the terrain used by this open-source flight simulator contains both elevation information and landcover data, it seems especially suited for a 3D tool to predict RF signal levels, both for aviation navigational aids and radio communications, and standalone as a point-to-point radio link analysis between two radio stations.&lt;br /&gt;
Flightgear allows the user to place models on the terrain at specific locations, and to setup internal properties via a simple XML format.&lt;br /&gt;
Rather complex radio receivers and transmitters can be simulated using the Nasal scripting language or via an external utility, as well as an UI to perform signal level reading and modify receiver and transmitter physical characteristics. The 3D aspect is also interesting, since it allows one to perform  predicted signal level reading at different locations while inside the simulator, using visual cues to place the radio equipment on the terrain.&lt;br /&gt;
Since this open-source flight simulator is capable of running on multiple platforms, including GNU/Linux, Microsoft Windows and MacOS, its availability is not limited to one operating system.&lt;br /&gt;
&lt;br /&gt;
===Data===&lt;br /&gt;
&lt;br /&gt;
Most of new generation Flightgear terrain uses NASA SRTM v3 &amp;lt;ref&amp;gt;http://www2.jpl.nasa.gov/srtm/&amp;lt;/ref&amp;gt; elevation data, which has a distance of 90 meters between elevation points. This is considered accurate enough for most signal analysis, although more detailed elevation data from topographical maps, ASTER DEM or other sources can be acquired. &lt;br /&gt;
Default landcover in Flightgear comes from VMAP0 &amp;lt;ref&amp;gt;http://earth-info.nga.mil/publications/vmap0.html&amp;lt;/ref&amp;gt; layers, with more accurate geodata being available from national and international programs, such as Europe's flagship program, the CLC2006 &amp;quot;Corine&amp;quot; landcover project.&amp;lt;ref&amp;gt;http://www.eea.europa.eu/publications/COR0-landcover/at_download/file&amp;lt;/ref&amp;gt;&lt;br /&gt;
Landcover data is used to analyse path loss and improve predicted signal levels over specific types of terrain, but should be cross-checked with real-world RF signal readings took at the same locations. &lt;br /&gt;
Antenna radiation patterns obtained using the free tool NEC2x can be used for both transmitters and receivers. Patterns obtained from other applications can be used too, as long as they are converte to the rather simple text format which is used by the Flightgear radio code.&lt;br /&gt;
Also, data from Flightgear's realistic atmospheric and weather simulation could be taken into account when path loss analysis is perfomed.&lt;br /&gt;
&lt;br /&gt;
===Request for information===&lt;br /&gt;
&lt;br /&gt;
If you are involved with maintenance or have detailed information about navaid transmitter capabilities, the author would appreciate if you listed in the discussion page the following information:&lt;br /&gt;
&lt;br /&gt;
* usual transmitter power for localizer (known to be between 15-25 W) and glideslope (known to be between 5-10 W ???) equipment.&lt;br /&gt;
* usual transmitter power for DME (not VOR) equipment: various source suggest from 50 W to 1 kW (I guess these values are ERP, since reported antenna gains are 8 dBi on vertical polarization) &amp;lt;ref&amp;gt;http://www.selex-si-uk.com/pdf/Distance%20Measuring%20Equipment%20(DME).pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* usual receiver sensitivity (in dBm) for DME equipment (-95 dBm taken from source).&lt;br /&gt;
* usual antenna types and gains for localizer and glideslope equipment: for localizer the ERP (effective radiated power) is known from various sources as approx 100 W, thus assuming 7-9 dBi antenna gain, glideslope antenna estimated gain 10 dBi &amp;lt;ref&amp;gt;http://www.dbsant.com/gsSpecs.php&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* most sources describe a 16 dB front-to-back ratio, thus being consistent with the default pattern used and shown in the picture above. Corrections welcome.&lt;br /&gt;
* usual localizer/glideslope/DME antenna types and gains for various aircraft, for usage by aircraft developers (most sources show V-type dipole).&lt;br /&gt;
&lt;br /&gt;
===Implementation details===&lt;br /&gt;
&lt;br /&gt;
In order to use the point-to-point routine of the Longley-Rice model, a terrain profile between the two radio stations is generated by sampling the terrain with a configurable distance between points (default is 90 meters, which is equal to SRTM 3 arcsec precision). This terrain profile is fed to the ITM routines, together with some other parameters: transmitter output power, receiver sensitivity, antenna heights above terrain. These routines are the core of the implementation, and incorporate improvements made by J. D. McDonald, John A. Magliacane and Holger Schurig to the original code.&lt;br /&gt;
&lt;br /&gt;
The result is signal attenuation in dB along the direct path. The ITM functions will determine for us if the radio propagation is line-of-sight, diffraction dominant or tropospheric scatter. For diffraction propagation, it also determines if it's single horizon or double horizon.&lt;br /&gt;
This information will further be used in calculating ground clutter obstruction for different terrain types. The most frequent obstructions that affect radio signals are built-up areas and tall vegetation. By calculating the interference of ground clutter inside the first Fresnel zone, we can determine signal losses with average precision. &lt;br /&gt;
In order to do so, we need two more numbers in the equations: clutter height above terrain, and clutter density. These are stored inside a plain text file located inside the Materials/ directory, allowing for more terrain types to be added and properties to be changed by the user. The aim is to make these two factors as configurable as possible to the user, in order to be able to adapt them to local measured conditions.&lt;br /&gt;
&lt;br /&gt;
The radio stations parameters are also completely configurable by the user, by setting internal properties, via Nasal scripting or otherwise.&lt;br /&gt;
For ATC comms, at the current state, some basic assumptions are made about transmitter power, receiver sensitivity and antenna heights: these are based on standard ATC interactions, but this will be changed in the future to support a wider variety of signals. It might even be possible to simulate realistic ACARS transmissions, as well as transponder responses with realistic range and signal quality (introduce errors based on signal quality etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Usage====&lt;br /&gt;
&lt;br /&gt;
To enable the radio code, use the following command line flags:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-radio=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the main radio code&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-sqlite=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enable the experimental [[Terrain_sampling | terrain sampler]] based on a terrain database. Not recommended unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-clutter-attenuation=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the ground clutter attenuation calculations&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-antenna-pattern=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the antenna radiation patterns&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/itm-radio-performance=false &amp;lt;/pre&amp;gt;&lt;br /&gt;
:disables performance mode (useful for propagation study)&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/material-radio-database=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: use the Sqlite database for landcover types and radio properties. It is named '''material_radio_properties.sqlite''' and placed in '''$FGROOT'''&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/sampling-distance=90 &amp;lt;/pre&amp;gt;&lt;br /&gt;
: distance between terrain profile points. Defaults to 90 meters which is the accuracy of SRTM elevation grids. A smaller value coupled with disabling performance mode will have an impact on the performance and will only be useful in very high resolution terrain. Use a larger value to relieve performance issues.&lt;br /&gt;
&lt;br /&gt;
====Known limitations====&lt;br /&gt;
&lt;br /&gt;
* The loading distance of terrain. For stations which are beyond the maximum configured terrain loading distance, path profiles will not be accurate and some errors are likely to occur in the signal loss figures. The experimental [[Terrain_sampling | terrain sampler]] based on an elevation database attempts to get rid of tile loading distance as a factor in this. It is a work in progress though, while reliable it needs a separate toolset to generate the database. To be used only for very special purposes (ground radar?).&lt;br /&gt;
&lt;br /&gt;
* The current model does not take into account signal reflection from objects or terrain features, nor refraction caused by atmospheric conditions.&lt;br /&gt;
&lt;br /&gt;
* The diffraction calculations within the ITM library are not very precise and are likely to overestimate losses caused by diffraction over a sharp edge, or when take-off angles are beyond a certain limit. This has been corrected in the new ITWOM, which is available to the public with commercial restrictions. &amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/itwom3.0.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Clutter loss calculation are only estimative and should only be taken into account after careful calibration done with measurement equipment at the sites.&lt;br /&gt;
&lt;br /&gt;
====Currently implemented features within the Flightgear engine====&lt;br /&gt;
[[Image:Vor_no_itm.png|thumb|VOR received on ground 80 km away with no line of sight, using old code]]&lt;br /&gt;
[[Image:Vor_itm.png|thumb|VOR no longer received on ground 80 km away with no line of sight, using new radio code]]&lt;br /&gt;
[[Image:Vor-no-dme.png|thumb|VOR station received full signal, while DME is still unavailable 70 km out because of obstructions, using new radio code]]&lt;br /&gt;
[[Image:Vor-dme.png|thumb|VOR received full signal, and now DME received too, we have cleared the small obstruction. UHF propagation is fun!]]&lt;br /&gt;
&lt;br /&gt;
* the code has been transitioned to a more efficient and performance-friendly subsystem structure&lt;br /&gt;
* point-to-point path loss calculations over rough terrain using the ITM library for air traffic control stations to pilot communication. Also AI to pilot reception.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for VOR/Localizer and Glideslope stations &amp;lt;ref&amp;gt;http://www2.rohde-schwarz.com/file_15494/1MA193_0e.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for DME stations &amp;lt;ref&amp;gt;http://www.faa.gov/air_traffic/publications/atpubs/aim/aim0101.html&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for TACAN stations, including mobile stations (AI tankers etc.) &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Tactical_air_navigation_system&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* for VHF/UHF stations beyond a reasonable terrain loading distance, automatic transition to path loss calculation over a smooth round earth using alternative free space signal attenuation equations&lt;br /&gt;
* RF link budget calculations using transmitter power, receiver sensitivity, antenna gain and height above terrain, taking into account typical values from various specifications&lt;br /&gt;
* experimental feature: usage of detailed landcover in RF propagation prediction (ground clutter path loss)&lt;br /&gt;
* landcover radio properties are stored into an easy to read and modify txt file in the Materials/ directory, allowing for more terrain types and radio properties to be changed by the user&lt;br /&gt;
* signal loss due to polarization mismatch&lt;br /&gt;
* simple signal strength indicator (Instrument for signal level reading)&lt;br /&gt;
* far-field antenna radiation patterns generated with 4nec2&lt;br /&gt;
* radio transmitter beacons can be placed with the model tool inside 3D space, models placed with the UFO tool will use a separate tree to avoid conflicts with other types of models (weather, etc). In the future it will be possible to define and change properties for multiple beacons from the same panel instrument.&lt;br /&gt;
* using the property tree, a radio station can be defined with Nasal scripts&lt;br /&gt;
* support for multiple radio stations running at the same time: navaids, ATC comms, beacons&lt;br /&gt;
* efficiency mode: the number of terrain data points decrease proportionally with the distance to the station.&lt;br /&gt;
* calculation of electrical field strength in uV/m, received signal strength in uV and dBm, as required by official guidelines.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Features which still need to be implemented====&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI]]&lt;br /&gt;
* Figure out what to do about VOR/DME/TAC stations sunk into the ground? Possible bug affecting them, maybe only on custom terrain.&lt;br /&gt;
* reception of ACARS ground messages via VHF radios&lt;br /&gt;
* usage of weather simulation and atmospheric conditions which affect radio propagation: tropospheric ducting, cloud backscatter etc.&lt;br /&gt;
* simulate realistic transponder response&lt;br /&gt;
* realistic ground-to-air radar&lt;br /&gt;
* reliable toolchain for generating data used with the alternative terrain sampler.&lt;br /&gt;
&lt;br /&gt;
====Qt GUI control====&lt;br /&gt;
&lt;br /&gt;
* A Qt-based GUI with OSM map controls and sattelite imagery is available to control all aspects of Flightgear's RF planning features. See the main article, [[qFGRadio]]&lt;br /&gt;
&lt;br /&gt;
== Mailing list discussions ==&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33688.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg34983.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35010.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35921.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38839.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38901.html&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FGCom_(before_3.0)&amp;diff=63470</id>
		<title>FGCom (before 3.0)</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FGCom_(before_3.0)&amp;diff=63470"/>
		<updated>2013-10-21T09:31:59Z</updated>

		<summary type="html">&lt;p&gt;Adrian: Undo revision 63466 by Jomo (talk) F-JJTH is maintainer of FGcom, please don't mess with his edits.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Software&lt;br /&gt;
| title                  = FGCom&lt;br /&gt;
| logo                   = &lt;br /&gt;
| image                  = &lt;br /&gt;
| alt                    = &lt;br /&gt;
| developedby            = Holger Wirtz, Martin Spott, Csaba Halasz&lt;br /&gt;
| hostedby              = tgreer @ tsone . info&lt;br /&gt;
| initialrelease         = &lt;br /&gt;
| latestrelease          = &lt;br /&gt;
| writtenin              = &lt;br /&gt;
| os                     = &lt;br /&gt;
| platform               = &lt;br /&gt;
| developmentstatus      = Active (2007-)&lt;br /&gt;
| type                   = &lt;br /&gt;
| license                = [[GNU General Public License]]&lt;br /&gt;
| website                = http://sourceforge.net/projects/fgcom/&lt;br /&gt;
}}&lt;br /&gt;
'''FGCom''' is an addon for [[FlightGear]]. With FGCom (and the infrastructure behind it), FlightGear now has a realtime voice communication system which enriches the FlightGear capabilities, especially for [[Howto: Multiplayer|multiplayer]] events, like:&lt;br /&gt;
&lt;br /&gt;
* Flying in groups, see the [http://www.flightgear.org/forums/viewforum.php?f=10 multiplayer events forum]&lt;br /&gt;
** Invite friends to a guided sightseeing tour in your most beloved area or do “Fly In's”&lt;br /&gt;
** Do military training like [[Howto: Air-Air Refueling|“Air-Air-Refuelling”]], “Dog fights”, “Escort flights”, etc. &lt;br /&gt;
* Offering additional services at an airport like [[Air traffic control|ATC]], [[Vehicle|snowplows, pushbacks]], [[FlightGear Race|racing-events]] etc.&lt;br /&gt;
* Have a [[Dual control|real time flighttraining]] (e.g. pilot in Hongkong, teacher in Sydney), do [[Soaring|Glider-towing]], ask for on-line support during flight or just ask somebody flying a plane of interest about specifics.&lt;br /&gt;
* Or just sit in a cockpit in Germany while sightseeing San Francisco in a [[Cessna C172|C172]], voice-chat with a Texan in a plane I dreamed of as a boy ([[Lockheed Constellation|Super Constellation]]) and both getting information from a New Zealand guy (it shall be a wonderful island – but do real people live there? He said: Yes!!).&lt;br /&gt;
* And much more!&lt;br /&gt;
&lt;br /&gt;
You can even use it in models without radios - just use the standard FlightGear [[menu]] (&amp;lt;tt&amp;gt;Equipment &amp;gt; Radio Settings&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
In the future FGCom surely will extend further and surely will get a “Speech to Text” capability in order to also integrate the text-based automated ATC-routines inside FlightGear, for details see previous discussions summarized at [[Integrating FGCom]], which also has a section on embedded TTS support through flite, which was previously discussed on the devel list by some core developers.&lt;br /&gt;
&lt;br /&gt;
== The Client installation ==&lt;br /&gt;
=== Prequisites ===&lt;br /&gt;
==== Hardware Requirements ====&lt;br /&gt;
If you are satisfied with the operation and response times of your current FlightGear installation, then you should see no significant difference after adding the FGCom. If your FlightGear installation runs already a little marginal, then you might experience some delays when many new airplane-models etc. must be loaded. This may happen  when starting up at a busy airport. You can monitor/verify such a &amp;quot;short-time overload&amp;quot; in the FlightGear command-window.&lt;br /&gt;
&lt;br /&gt;
For details see the [http://www.flightgear.org/hardwarereq.html common hardware and driver requirements].&lt;br /&gt;
&lt;br /&gt;
Of course you will also need a connection to the internet for this real-time, worldwide voice communication.&lt;br /&gt;
&lt;br /&gt;
==== Software requirements ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;90px&amp;quot; |'''FlightGear''' ||The basic [[FlightGear]] Flight Simulation installation. This must be installed prior to installing FGCom ''(except if installing the Linux &amp;quot;Git complete&amp;quot; version which can install FGCom and FlightGear concurrently)''.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |'''Multiplayer'''||[[Howto: Multiplayer|“Multiplayer”]] is not an installable program but an integrated function of FGFS. As the name says, it enables communication of several players via a chat-function (until now per keyboard - now also with this vocal interface: FGCom).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Nice to have ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;90px&amp;quot; | '''FGrun'''||This [[FlightGear Launch Control]] (also known as FG Wizard), is a graphical front end to start the FGFS. This makes it very easy to startup the FGFS with all its possible options. In some newer distributions this is already part of the basic FGFS installation package.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |'''MPMap'''||[[MPMap]] is a pure browser application based on Google Maps, so it does not need any installation, except a Web-Browser. With MPMap you can watch all Multiuser-planes worldwide on a road-map, satellite picture or a composite of both. It includes most of the airports, navigational aids, and current weather information. So it can be used for preflight planning, without having the FGFS started or even installed. But it needs a constant connection to the Internet - on the other hand you can do your preflight planning anywhere where there is a PC, connected to the Internet.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |'''SkyVector'''||[http://skyvector.com/ SkyVector] is a standalone Browser-Application. It does present a fantastic Fight-Planning tool, showing similar aspects like the &amp;quot;MPMap&amp;quot; - but is based on a an real Aeronatical map (&amp;quot;Sectional&amp;quot;). On it you can graphically plan your routes - see the &amp;quot;Help Video&amp;quot; icon in the Top-Menubar.&lt;br /&gt;
But it does not directly link into FGFS, MPMap or Multiplayer -- and it covers only the domestic USA.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |'''Atlas'''||[[Atlas]] displays the current position of your airplane on an landscape type of map together with navigational information. It derives its data direct out of the installed FGFS databases. So you do not need any connections to the Internet.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |'''Festival'''||[http://www.flightgear.org/Docs/getstart/getstartch5.html#x10-1080005.7 Festival] is a TTS (Text To Speech) system that can convert all in the FGFS displayed written text (ATC, Chat, etc.) into speech and put it in your loudspeakers. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installing FGCom ===&lt;br /&gt;
{{note| This section is deprecated because FGCom is now (Oct. 2013) integrated to FlightGear and FGCom standalone is built with FlightGear}}&lt;br /&gt;
==== Install on Linux ====&lt;br /&gt;
For Linux-Systems there are various ways to install:&lt;br /&gt;
&lt;br /&gt;
# '''Scripted Installation''' (recommended)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir fgcom&lt;br /&gt;
cd fgcom&lt;br /&gt;
wget http://www.gitorious.org/fg/fgmeta/raw/download_and_compile.sh&lt;br /&gt;
chmod +x ./download_and_compile.sh &lt;br /&gt;
./download_and_compile.sh PLIB FGCOM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... it will ask 2 x for the root password&lt;br /&gt;
then it looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ 95%] Building CXX object CMakeFiles/fgcom.dir/src/fgcom.cpp.o&lt;br /&gt;
[ 97%] Building CXX object CMakeFiles/fgcom.dir/src/fgcom_init.cpp.o&lt;br /&gt;
[ 98%] Building CXX object CMakeFiles/fgcom.dir/src/position.cpp.o&lt;br /&gt;
[100%] Building CXX object CMakeFiles/fgcom.dir/src/utils.cpp.o&lt;br /&gt;
Linking CXX executable fgcom&lt;br /&gt;
&lt;br /&gt;
[100%] Built target fgcom&lt;br /&gt;
-- Install configuration: &amp;quot;Release&amp;quot;&lt;br /&gt;
-- Installing: /big/home/mherweg/flightgear/fgcom/try/install/fgcom/bin/fgcom&lt;br /&gt;
-- Installing: /big/home/mherweg/flightgear/fgcom/try/install/fgcom/share/fgcom/positions.txt&lt;br /&gt;
-- Installing: /big/home/mherweg/flightgear/fgcom/try/install/fgcom/share/fgcom/special_frequencies.txt&lt;br /&gt;
To start fgfs, run the run_fgfs.sh file&lt;br /&gt;
To start terrasync, run the run_terrasync.sh file&lt;br /&gt;
To start fgrun, run the run_fgrun.sh file&lt;br /&gt;
To start fgcom, run the run_fgcom.sh file&lt;br /&gt;
To start fgcom GUI, run the run_fgcomgui.sh file&lt;br /&gt;
To start atlas, run the run_atlas.sh file&lt;br /&gt;
Usage: ./download_and_compile.sh -h&lt;br /&gt;
for help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then you can start fgcom like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./run_fgcom.sh -Sdelta384.server4you.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# '''Downloading from the “Distributor” (Debian, Ubuntu, Red Hat, Suse, etc.).''' &lt;br /&gt;
#* '''Advantage:''' This is the easiest way and ensures that maintenance and services for this package and all concurrencies to it are provided automatically for a reasonable time-frame.&lt;br /&gt;
#* '''Disadvantage:''' The availability of those packages is usually very late and most Distributors do not cover all FGFS-features. To our knowledge none of the Distributors has an FGCom package available as of March 2009.&lt;br /&gt;
#* '''Installation:''' Follow the usual procedures of your distributer on how to install additional packages.&lt;br /&gt;
# '''Installing a “Git complete”''' &lt;br /&gt;
#* '''Advantage:''' It is the very easiest form of installation and installs in one step all prerequisite/companion modules (FGFS, FGrun, FGcom, PLIB, OSG, Simgear, AT). Also it can be added and removed from the system without disturbing the rest of the system (Libraries, Menus, Structures, etc.). It was tested on several Ubuntu and Debian systems.&lt;br /&gt;
#* '''Disadvantage:''' No automated maintenance available. The handling is a little different from the standard Menu-driven practice.&lt;br /&gt;
#* '''Installation:''' [[Scripted Compilation on Linux Debian/Ubuntu]]&lt;br /&gt;
# '''Compiling it locally:'''&lt;br /&gt;
#* '''Advantage:''' After a successful installation it is integrated into the system like a package from the distributor.&lt;br /&gt;
#* '''Disadvantage:''' No automated maintenance available. Also the user should have some basic knowledge of his system and its devices.&lt;br /&gt;
#* '''Installation:''' [http://code.google.com/p/fgcomgui/wiki/Linux_Installation instructions]&lt;br /&gt;
&lt;br /&gt;
Then continue with testing on [[FGCOM Testing]].&lt;br /&gt;
&lt;br /&gt;
==== Install on Mac ====&lt;br /&gt;
&lt;br /&gt;
'''MacFlightGear 1.9.1/2.0.0'''&amp;lt;br /&amp;gt;&lt;br /&gt;
You can download the &amp;quot;MacFlightGear&amp;quot;-Application from the [http://www.flightgear.org/Downloads/binary.shtml#mac FlightGear download-center]. The current version 2.0.0 of the code does contain the FGCom and works for OSX &amp;gt;= 10.5. (with OSX versions &amp;lt; 10.5 you will end up with a generic &amp;quot;bus error&amp;quot; message).&lt;br /&gt;
&lt;br /&gt;
==== Install on Windows ====&lt;br /&gt;
Please use the Windows installation description, available through [[FGCOM for Windows]].&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
During testing we will test/adjust:&lt;br /&gt;
# the basic FGCom functions without FlightGear&lt;br /&gt;
# FGCom together with FlightGear&lt;br /&gt;
# the microphone and loudspeaker system&lt;br /&gt;
&lt;br /&gt;
For these tests please refer to [[FGCOM Testing]].&lt;br /&gt;
&lt;br /&gt;
=== Functional test &amp;amp; user briefing ===&lt;br /&gt;
Experiences pointed out, that the cooperation between FGCom and FlightGear works more reliable, if FlightGear is started first. So we will start with setting up a flight-test-environment:&lt;br /&gt;
&lt;br /&gt;
==== Start FlightGear ====&lt;br /&gt;
{{note|All of this has nothing to do with FGCom until the &amp;quot;--generic&amp;quot; paragraph (which is deprecated, see Talk page) }}&lt;br /&gt;
We suggest to use [[FGRun]] to define required and/or proposed settings, in order to avoid typo-errors etc. If you keep the “Show command line” active (compare item 3 following), you also get the correct writing for all the command-options (in case you later want to start from a command-line and/or out of a script). In the following we will just point out those commands which are significant for FGCom-operation:&lt;br /&gt;
&lt;br /&gt;
If you don't have an icon available to start FGrun, then start FlightGear manually:&lt;br /&gt;
&lt;br /&gt;
# Start a [[Command line|command-window]]&lt;br /&gt;
# Change into the directory in which FGFS was installed&lt;br /&gt;
# Execute the following command or something similar&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Linux&lt;br /&gt;
|fgrun&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Linux Git:&lt;br /&gt;
|cd ~/fgfs&amp;lt;br /&amp;gt;sh ./run_fgrun.sh &lt;br /&gt;
|-	&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Windows&lt;br /&gt;
|C:&amp;lt;br /&amp;gt;cd 'C:\Program Files\Flightgear\win32'&amp;lt;br /&amp;gt;fgrun.exe&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wait for the program window to start and then define:&lt;br /&gt;
&lt;br /&gt;
# Start by '''choosing an airplane'''. For this first try we suggest the [[Cessna C172]]P, so we have a common understanding in the following. Also be aware of some airplane-designers reassigning keyboard-keys (e.g. the “space-bar”), thus you may not have the PTT-key (“Push To Talk”) available. See [[FGCOM#Tips and Tricks]].&amp;lt;br /&amp;gt;→ Click &amp;quot;Next&amp;quot;.&lt;br /&gt;
# As '''starting place''' please define the [[airport]] KPAO (Palo Alto) runway 13, so we all see the same messages in the following reports. A second reason for KPAO is of course that KPAO comes already with the basic scenery-package, and thus is available for everybody.&amp;lt;br /&amp;gt;→ Click &amp;quot;Next&amp;quot;.[[File:FGrun_base.jpg|thumb|Basic &amp;amp; multiplayer options]]&lt;br /&gt;
# Define the '''Multiplayer options:''' (see [[Howto: Multiplayer]] for details).&lt;br /&gt;
#* “AI models” must be activated in order to see all traffic&lt;br /&gt;
#* “Multiplayer” must be activated&lt;br /&gt;
#* type “'''mpserverXX.flightgear.org'''” into the field “Hostname:”, replace “XX” with the server number nearest you - select it in http://pigeond.net/flightgear/mpstatus/. Actually it does not matter which server you take (as long as it is online and not as overcrowded as mpserver02) - you might try which server gives you the best response-times.&lt;br /&gt;
#* Insert your “Callsign:” (max. 7 characters)&lt;br /&gt;
#* define the “in” and “out” ports both with the standard “5000”&lt;br /&gt;
#* With &amp;quot;Load/Save as&amp;quot; you may build up yourself a library of settings for different airports.&amp;lt;br /&amp;gt;→ Click &amp;quot;Advanced&amp;quot;.[[File:FGrun_IP.jpg|thumb|Advanced: Initial Position]]&lt;br /&gt;
# In the “'''Advanced Options'''” check the following sections (click/select them in the left column):&lt;br /&gt;
#* General: Those settings were defined before. Check “Control”, if needed select your input device (Joystick, Keyboard, or Mouse).&lt;br /&gt;
#* Features: “AI Traffic” should be activated already&lt;br /&gt;
#* Initial Position: You may define here an unique “starting/parking” position outside a runway. Thus you could avoid starting on top of another player, because most of them pile up at the end of a runway. You can look up a position in the MPMap: ''(see next item)''&lt;br /&gt;
#** ''Be aware that any data defined here override already predefined data (e.g. also an airport and runway). So '''do not forget''' to change/delete the here defined positions if some time you want to start from another airport.'' Of course you may save/reload settings for different airports, see &amp;quot;Load/save as&amp;quot; on the main window.[[File:MPmap.jpg|thumb|[[MPMap]]]]&lt;br /&gt;
# Open the '''[http://mpmap01.flightgear.org MPMap]'''&lt;br /&gt;
#* if the control-panel is not visible click onto &amp;quot;FGMap | mpserver01:5000 | pilots: 7”&lt;br /&gt;
#* click on “nav”&lt;br /&gt;
#* disable all options except “apt code”&lt;br /&gt;
#* type “KPAO” into the filed “Navaids lookup”&lt;br /&gt;
#* hit ENTER or click onto the reading-glass symbol&lt;br /&gt;
#* click onto the appearing line “Airport KPAO Palo Alto Arpt Of Santa Clara Co”&lt;br /&gt;
#* now you could/should support your preflight planning by clicking onto the wedge in the upper right corner after the airport name and then analyze all data given under “info”, “atc”, metar”, and “links” &lt;br /&gt;
#* then zoom into the airport&lt;br /&gt;
#* set the mouse over the wanted “Parking lot” and read that position in the upper right corner of the screen&lt;br /&gt;
#* type those long/lat values into the field below and also the wanted heading of the plane while parking[[File:FGrun_net.jpg|thumb|Advanced: Network]]&lt;br /&gt;
# '''Network:''' Those data you have already predefined on the Base-Page. But in case you have network-problems (may be due to many PC's on a home-network with even more LAN-cards) you may specify here your actual IP-Adress.&lt;br /&gt;
#* WARNING: When saving these settings and reloading them again, FGRun might replace the given IP-Nr. by the PC-name. As of March 2009 you then have to replace that again with the IP-Nr. So use it only if you have to - first try it by adding nothing between the &amp;quot;,,&amp;quot;. Keep it as &amp;quot;in,10,,5000&amp;quot;.&lt;br /&gt;
#* If you need to '''define the unique IP-Address''', open a [[Command line|command-window]] and type&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | OS&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | to type&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | cap.&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | returned values&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Linux &lt;br /&gt;
|ifconfig &lt;br /&gt;
|eth0&lt;br /&gt;
|Link encap:Ethernet  HWaddr 00:1d:92:80:a6:ab&amp;lt;br /&amp;gt;inet addr:'''192.168.178.23'''  Bcast:192.168.178.255  Mask:255.255.255.0 &lt;br /&gt;
|-	&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Windows&lt;br /&gt;
|ipconfig /all &lt;br /&gt;
|et &lt;br /&gt;
|Physikalische Adresse . . . . . . : 00-16-E6-40-AB-BF&lt;br /&gt;
&amp;lt;br /&amp;gt;DHCP aktiviert. . . . . . . . . . : Ja &lt;br /&gt;
&amp;lt;br /&amp;gt;Autokonfiguration aktiviert . . . : Ja &lt;br /&gt;
&amp;lt;br /&amp;gt;IP-Adresse. . . . . . . . . . . . : '''192.168.178.20''' &lt;br /&gt;
&amp;lt;br /&amp;gt;Subnetzmaske. . . . . . . . . . . : 255.255.255.0 &lt;br /&gt;
&amp;lt;br /&amp;gt;IP-Adresse. . . . . . . . . . . . : fe80::216:e6ff:fe40:abbf%4&lt;br /&gt;
|}&lt;br /&gt;
#* '''192.168.178.23''' (or '''20''') is the number you would have to input between the two commas. Be very careful and double-check that you do not mistype “.” and “,”!![[File:FGrun_IO.jpg|thumb|Advanced: Input/Output]]&lt;br /&gt;
# '''Input/Output:''' &lt;br /&gt;
#* You do need a &amp;quot;generic&amp;quot; line as shown, because '''this defines the interface between FlightGear and FGCom'''.&lt;br /&gt;
#** To input a new line: Start by selecting “generic” in the field “Protocol”. Then hit “New” and define the rest as shown.&lt;br /&gt;
#** Editing an existing line: Start by clicking onto the existing one, then change as required.&lt;br /&gt;
#** Deleting an existing line: Click onto the line to be deleted, then hit &amp;quot;Delete&amp;quot;&lt;br /&gt;
#* For fgo or the command line add --generic=socket,out,10,localhost,16661,udp,fgcom to the command line options&lt;br /&gt;
# '''Avionics:''' let us define:		&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Nav1:&lt;br /&gt;
| 114.10 &lt;br /&gt;
| San Jose VOR&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Nav2: &lt;br /&gt;
| 115.80 &lt;br /&gt;
| SF VOR&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | ADF: &lt;br /&gt;
| 379 &lt;br /&gt;
| Brijj, beacon at SF&lt;br /&gt;
|}&lt;br /&gt;
#* And activate DME to Nav1&lt;br /&gt;
#* There is no field to input COM-radios, but remember them for setting them later manually:&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Com1&lt;br /&gt;
| 118.60 &lt;br /&gt;
| Paolo Alto&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; | Com2 &lt;br /&gt;
| 120.50	&lt;br /&gt;
| San Francisco&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# '''Properties:''' &lt;br /&gt;
#* Here you can define any presetting for any values in the FGFS. See e.g.: &amp;lt;tt&amp;gt;File &amp;gt; Browse Internal Properties&amp;lt;/tt&amp;gt; in the FlightGear [[menu]].[[File:FGrun_prop.jpg|thumb|Advanced: Properties]]&lt;br /&gt;
#* I personally do not want the plane to start rolling without me telling it to. So I set the parking break as default at startup.&lt;br /&gt;
#** Input a new line: Just hit “New” and type your string.&lt;br /&gt;
#** Edit a line: Be sure first to click onto an existing item and then edit this “Property”&lt;br /&gt;
#** Delete a line: Click onto the line to be deleted then hit &amp;quot;Delete&amp;quot;&lt;br /&gt;
# Hit “OK” → “Run” and watch FlightGear starting. If screen-place allows you may want to pull the shown &amp;quot;FGFS Report-Window&amp;quot; to the side and watch how busy your PC is while loading the other multi-player models.&lt;br /&gt;
&lt;br /&gt;
==== Start FGCom ====&lt;br /&gt;
Open a [[Command line|command-window]] and change into the directory in which FGCom was installed (probably the same as FlightGear) and start FGCom. You must decide what server you want to use! Since Oct.2012 there are 2 FGCOM-servers available:&lt;br /&gt;
# The original: '''fgcom.flightgear.org'''&lt;br /&gt;
# A new one: '''delta384.server4you.de'''&lt;br /&gt;
Due to technicalities it is not possible to speak from 1 server to the other - so try one and change if you notice that your friends are using the other.&lt;br /&gt;
&lt;br /&gt;
So insert the server-address after a &amp;quot;-S&amp;quot; (watch: The &amp;quot;S&amp;quot; must be a capital!):&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; |Linux &lt;br /&gt;
|fgcom -Sfgcom.flightgear.org &lt;br /&gt;
|&amp;quot;-Sfgcom...&amp;quot; with capital &amp;quot;S&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; |Linux Git&lt;br /&gt;
| cd ~/fgfs&amp;lt;br /&amp;gt;sh ./run_fgcom.sh &lt;br /&gt;
| for this “Git complete” you do not need to specify the server address, because it is embedded in the script-file.&lt;br /&gt;
|-	&lt;br /&gt;
! style=&amp;quot;background:#efefef&amp;quot; |Windows &lt;br /&gt;
|cd 'C:\Program Files\Flightgear\win32'&amp;lt;br /&amp;gt;fgcom.exe -Sfgcom.flightgear.org &lt;br /&gt;
|&amp;quot;-Sfgcom...&amp;quot; with capital &amp;quot;S&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
For the following test position this command-window somewhere, where you can monitor it throughout the test.&lt;br /&gt;
&lt;br /&gt;
The first response should be:&lt;br /&gt;
   /fgcom - a communication radio based on VoIP with IAX/Asterisk &lt;br /&gt;
   (c)2007 by H. Wirtz &amp;lt;wirtz@dfn.de&amp;gt; &lt;br /&gt;
   Version 1.2.2 build 206M &lt;br /&gt;
   Using iaxclient library Version SVN 206M &lt;br /&gt;
   &lt;br /&gt;
   Successfully parsed command-line options. &lt;br /&gt;
   Reading list of airports...done. &lt;br /&gt;
   Initializing IAX client as guest:xxxxxxxxxxx@fgcom.flightgear.org&lt;br /&gt;
If your printout up to that line is different go back to chapter [[FGCOM#Test the basic function|Test the basic function]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;300&amp;quot;| ||&lt;br /&gt;
|-&lt;br /&gt;
|1) If, due to a prior flight, COM1 was set to anything else but 118.600 (e.g. to 119.650) you will see the following 2 lines added to the initialization of the FGCom-window: ||&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Selected frequency: 119.650 &lt;br /&gt;
 Call rejected by remote&lt;br /&gt;
|&lt;br /&gt;
Instead of  “119.650” there will be shown the last used frequency. In this case the source of the nearest ATC-Freq. 119.650 is more than 50km away from your actual position of the airplane, so FGCom rejects a connection to it. If the last frequency used would have been within 50 km you get an indication very similar to the next item.&lt;br /&gt;
|-&lt;br /&gt;
|2) Switch COM1 to 118.60 (needed at Palo Alto):&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Selected frequency: 118.600 &lt;br /&gt;
 Hanging up call 0 &lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 0.6 km) &lt;br /&gt;
 Call 0 accepted &lt;br /&gt;
 Call 0 answered &lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 0.6 km) &lt;br /&gt;
|This last line will be repeated according the to time span you defined in the “Input/Output” command “--generic=socket,in,'''10''',,5500,tcp”, you may change that value later according to your preferences.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;br /&amp;gt;3) Press your PTT (PushToTalk on space-bar and joystick, as available):&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 [SPEAK] unmute mic, mute speaker &lt;br /&gt;
 [LISTEN] mute mic, unmute speaker &lt;br /&gt;
 [SPEAK] unmute mic, mute speaker &lt;br /&gt;
 [LISTEN] mute mic, unmute speaker &lt;br /&gt;
|Only in between “SPEAK” and “LISTEN” you are able to talk to others.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;br /&amp;gt;Now lets set/verify the other Radios:&lt;br /&gt;
* COM2 = 120.50	San Francisco&lt;br /&gt;
* NAV1  = 114.10	San Jose&lt;br /&gt;
* NAV2  = 115.80	San Francisco&lt;br /&gt;
4) Pressing Upper+Space will switch to the next radio: '''NAV1'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Radio-Select: NAV1 &lt;br /&gt;
 Selected frequency: 114.100 &lt;br /&gt;
 Hanging up call 0 &lt;br /&gt;
 Call rejected by remote &lt;br /&gt;
 [LISTEN] mute mic, unmute speaker &lt;br /&gt;
|Compare this to the NAV2 indication 2 steps later: something is wrong – and it wasn't your fault: Although this NAV is valid (see ...FGFS/data/Airports/apt.dat.gz), it is missing in the FGCom listing .../FGCom/positions.txt. I encountered this problem several times, as well for Airports as also for VOR's. If this happens with your most beloved airport you can add those missing data with a text-editor. But before changing be sure to save the original data somewhere - just in case!&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;br /&amp;gt;5) Pressing Upper+Space once more switches to '''COM2'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Radio-Select: COM2 &lt;br /&gt;
 Selected frequency: 120.500 &lt;br /&gt;
 Airport San Francisco Intl (KSFO TWR at 120.500 MHz) is in range (29.1 km) &lt;br /&gt;
 [LISTEN] mute mic, unmute speaker &lt;br /&gt;
 Call 0 accepted &lt;br /&gt;
 Call 0 answered&lt;br /&gt;
|That looks OK: San Francisco is about 29 km away&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;watch the “km” instead of miles!&amp;lt;br /&amp;gt;'''10 km''' = '''6.2137 mi'''&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;br /&amp;gt;6) Pressing Upper+Space once more switches to '''NAV2'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Radio-Select: NAV2 &lt;br /&gt;
 Selected frequency: 115.800 &lt;br /&gt;
 Hanging up call 0 &lt;br /&gt;
 Airport SAN FRANCISCO VOR-DME (SFO VOR at 115.800 MHz) is in range (28.5 km) &lt;br /&gt;
 Call 0 accepted &lt;br /&gt;
 Call 0 answered &lt;br /&gt;
 [LISTEN] mute mic, unmute speaker &lt;br /&gt;
|And Yes: The SF VOR is just a little closer than the airport(center)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;br /&amp;gt;7) Pressing Upper+Space once more brings back '''COM1''':&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Radio-Select: COM1 &lt;br /&gt;
 Selected frequency: 118.600 &lt;br /&gt;
 Hanging up call 0 &lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 0.6 km) &lt;br /&gt;
 Call 0 accepted &lt;br /&gt;
 Call 0 answered &lt;br /&gt;
 [LISTEN] mute mic, unmute speaker &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;br /&amp;gt;8) Lets us start and continue flying in the direction about 130°:&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 0.4 km) &lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 0.2 km) &lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 0.7 km) &lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 1.3 km) &lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 1.9 km) &lt;br /&gt;
 Airport Palo Alto (KPAO Tower at 118.600 MHz) is in range ( 2.4 km) &lt;br /&gt;
|notice that you first come closer (to the center of the airport) and after that getting away&lt;br /&gt;
|-		&lt;br /&gt;
|&amp;lt;br /&amp;gt;9) Let's switch to '''COM2''' (San Francisco) and watch: &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Radio-Select: COM2 &lt;br /&gt;
 Selected frequency: 120.500 &lt;br /&gt;
 Airport San Francisco Intl (KSFO TWR at 120.500 MHz) is in range (37.8 km) &lt;br /&gt;
 Call 0 accepted &lt;br /&gt;
 Call 0 answered &lt;br /&gt;
 [LISTEN] mute mic, unmute speaker &lt;br /&gt;
 Airport San Francisco Intl (KSFO TWR at 120.500 MHz) is in range (38.6 km) &lt;br /&gt;
 Airport San Francisco Intl (KSFO TWR at 120.500 MHz) is in range (39.5 km) &lt;br /&gt;
 .. &lt;br /&gt;
 Airport San Francisco Intl (KSFO TWR at 120.500 MHz) is in range (49.7 km) &lt;br /&gt;
 Hanging up call 0 &lt;br /&gt;
 Radio-Select: NAV2 &lt;br /&gt;
 Selected frequency: 115.800 &lt;br /&gt;
 Call rejected by remote &lt;br /&gt;
 [LISTEN] mute mic, unmute speaker &lt;br /&gt;
|That means: at about 50KM we are getting out of range and thus the on COM2 active SF getts terminated. Notice that also the inactive NAV2 gets terminated, because it exceeded the allowable range at about the same time!&lt;br /&gt;
|}&lt;br /&gt;
10) You could turn now and watch the opposite: At about the same distance those two will become active again (automatically, if you did not change the settings).&lt;br /&gt;
&lt;br /&gt;
If you got here without any (technical) problems your FGCom is fully functional. Have fun when using it.&lt;br /&gt;
&lt;br /&gt;
=== Using FGCom ===&lt;br /&gt;
There are basically three types of FGCom-usage:&lt;br /&gt;
* '''Normal usage at airports:''' i.e. You set your radio to the airport as usual. Thus you are set up for the usual ATC-(keyboard)-procedures (either through the &amp;quot;'&amp;quot; (UpperCase#) and/or the Chat-Menus). In addition you then can talk to anybody in a radius of about 100 km (about 54 miles) around the airport, may that be friends, a maintained FGCOM-ATC/Twr-Operator, airport utilities, etc.. Be aware that as of April 2009 only very few planes are using the FGCOM for ATC-purposes - thus you should always use the ATC-Chat &amp;quot;keyboard&amp;quot;-procedures to announce arrivals/departures/taxiing etc. in addition. (We hope that may change in some future!)&lt;br /&gt;
* The '''AirToAir frequencies (122.75 and 123.45)''' are ideal for all Multiplayer events. They are without any range-limitations - and not yet &amp;quot;overcrowded!). Also when traveling you might want to listen on the 122.75 for others who want to contact you (or reverse). When there is much &amp;quot;talk&amp;quot; on the 122.75 you might just arrange with your partner to switch to 123.45 - and return to 122.75 afterward. As of April 2009 the 122.75 is already operational for this application, the 123.45 will follow soon. You may try from time to time if this limitations still exist.&lt;br /&gt;
* The Echo-Test frequency 910.00 to test your sound settings&lt;br /&gt;
* Finally you can manipulate the frequency-tables (positions.txt in your FGFS/FGCOM local directory) and '''define an own frequency for special events'''. e.g. a Flight-School at one airport with maybe multiple student-groups. Of course those are local manipulations on your own PC, which you have to agree on with your (planned to be) partners in advance.&lt;br /&gt;
&lt;br /&gt;
=== Supplemantery Information ===&lt;br /&gt;
==== Tips and Tricks ====&lt;br /&gt;
===== Airport missing in FGCom: =====&lt;br /&gt;
In case your favorite airport does not show up in the FGCOM (command-window), although you can tune your COMM to it, you can add it to your data-file “'''positions.txt'''” in your fgcom directory. See e.g. the line &lt;br /&gt;
   KSFO,120.500,37.616630,-122.385478,TWR,San Francisco Intl&lt;br /&gt;
You can add extra lines for any locations you want. e.g.: (watch the separation comas)&lt;br /&gt;
 apt-code = DUMY   (a &amp;quot;dummy&amp;quot; or your favorite, but missing, airport code)&lt;br /&gt;
 KHz      = take it out of your “FGFS-home/data/Airports/apt.dat.gz”&lt;br /&gt;
            or just take one of which you are sure that you do not need it in the FGFS-reality&lt;br /&gt;
            (notice that several Airports (far apart) use same frequencies!&lt;br /&gt;
 long/lat = take out of the Mpmap (or Google Map)&lt;br /&gt;
 type     = whatever&lt;br /&gt;
 name     = whatever&lt;br /&gt;
''(of course those definition are only known to your own PC and last only until the next data update!)''&lt;br /&gt;
&lt;br /&gt;
===== Editing FGCOM-Data-Files =====&lt;br /&gt;
If you edit Textfiles (e.g. Radio-listings) or xml-files you might not see line-endings when using your standard editor.&lt;br /&gt;
* For windows you can use &amp;quot;WordPad&amp;quot;&lt;br /&gt;
* For Linux the &amp;quot;gedit&amp;quot; works fine&lt;br /&gt;
&lt;br /&gt;
===== Copying-Printing this WIKI-Page''' =====&lt;br /&gt;
If you absolutely want to have a local copy of this on your PC or need a hard-copy, then:&lt;br /&gt;
&lt;br /&gt;
* to copy:&lt;br /&gt;
** select in the Browser-Menu: &amp;quot;File&amp;quot; --&amp;gt; &amp;quot;Save Page as.. &amp;quot;&lt;br /&gt;
* to print:&lt;br /&gt;
** go to the [http://wiki.flightgear.org/index.php?title=FGCOM&amp;amp;printable=yes printable version].&lt;br /&gt;
** Then I suggest: Menu --&amp;gt; File --&amp;gt; &amp;quot;Page Setup&amp;quot;: Set to &amp;quot;Landscape&amp;quot; --&amp;gt; &amp;quot;Apply&amp;quot;&lt;br /&gt;
** before printing I recommend: Menu --&amp;gt; File --&amp;gt; &amp;quot;Print Preview&amp;quot; and you see those many many pages!&lt;br /&gt;
** If you really want to wast that paper: Menu --&amp;gt; &amp;quot;File&amp;quot; --&amp;gt; &amp;quot;Print&amp;quot; and it will print on your favorite printer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Joystick compatibility between Operating Systems: =====&lt;br /&gt;
{{Main article|Joystick}}&lt;br /&gt;
&lt;br /&gt;
You may use the same joystick-definitions across all Operating-Systems: But you may need to change the assigned numbers - your joystick-vendor might have done that for you already. Check e.g. (Unix, Mac, Win having assigned different &amp;quot;numbers&amp;quot;):&lt;br /&gt;
 &amp;lt;axis&amp;gt;        (instead of the usual &amp;lt;axis n=”3”&amp;gt; )&lt;br /&gt;
  &amp;lt;desc&amp;gt;Mixture&amp;lt;/desc&amp;gt; &lt;br /&gt;
  &amp;lt;number&amp;gt; &lt;br /&gt;
   &amp;lt;unix&amp;gt;3&amp;lt;/unix&amp;gt; &lt;br /&gt;
   &amp;lt;mac&amp;gt;5&amp;lt;/mac&amp;gt; &lt;br /&gt;
   &amp;lt;windows&amp;gt;5&amp;lt;/windows&amp;gt; &lt;br /&gt;
  &amp;lt;/number&amp;gt; &lt;br /&gt;
  &amp;lt;binding&amp;gt; &lt;br /&gt;
   &amp;lt;command&amp;gt;nasal&amp;lt;/command&amp;gt; &lt;br /&gt;
   &amp;lt;script&amp;gt;controls.mixtureAxis()&amp;lt;/script&amp;gt; &lt;br /&gt;
  &amp;lt;/binding&amp;gt; &lt;br /&gt;
 &amp;lt;/axis&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Assign PTT to joystick =====&lt;br /&gt;
If you want to assign the PushToTalk function to your joystick, add the following (for n you have to find your own number!)&lt;br /&gt;
 &amp;lt;button n=&amp;quot;x&amp;quot;&amp;gt; &lt;br /&gt;
  &amp;lt;desc&amp;gt;PTT - Push To Talk&amp;lt;/desc&amp;gt; &lt;br /&gt;
  &amp;lt;binding&amp;gt; &lt;br /&gt;
   &amp;lt;command&amp;gt;nasal&amp;lt;/command&amp;gt; &lt;br /&gt;
   &amp;lt;script&amp;gt;controls.ptt(1)&amp;lt;/script&amp;gt; &lt;br /&gt;
  &amp;lt;/binding&amp;gt; &lt;br /&gt;
  &amp;lt;mod-up&amp;gt; &lt;br /&gt;
   &amp;lt;binding&amp;gt; &lt;br /&gt;
    &amp;lt;command&amp;gt;nasal&amp;lt;/command&amp;gt; &lt;br /&gt;
    &amp;lt;script&amp;gt;controls.ptt(0)&amp;lt;/script&amp;gt; &lt;br /&gt;
   &amp;lt;/binding&amp;gt; &lt;br /&gt;
  &amp;lt;/mod-up&amp;gt; &lt;br /&gt;
 &amp;lt;/button&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Helpful internet adresses ====&lt;br /&gt;
'''World-Time:''' &lt;br /&gt;
* [http://www.timeanddate.com/worldclock/custom.html?sort=1 standard deviations]&lt;br /&gt;
* [http://www.timezoneconverter.com/cgi-bin/tzc.tzc direct conversions]&lt;br /&gt;
&lt;br /&gt;
Especially for multiplayer events you should define all times in the internationally used GMT (Greenwich Meantime). Just pick up your deviation from GMT and memorize it. If everybody does it, we could avoid a lot of misunderstandings.&lt;br /&gt;
&lt;br /&gt;
* '''Decimal to Degree''' http://www.hbnweb.de/mathematik/grad-dezimal.html &amp;lt;br /&amp;gt;&lt;br /&gt;
*: Some programs need Decimal Lon/Lat values, others the Degrees/Minutes/Sec. Just convert it.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Miles, km, feet, etc. etc. ...''': http://www.convertunits.com/&lt;br /&gt;
*: If like to avoid troubles (like NASA lost a satellite because of it) just look it up.&lt;br /&gt;
&lt;br /&gt;
'''Ports needed'''&lt;br /&gt;
&lt;br /&gt;
In case of problems over the internet you might check that the the following ports are allowed:&lt;br /&gt;
 1314	TCP	if the Festival-Server is used for Text/Sound &lt;br /&gt;
 2005	UDP	Vcp-Stream&lt;br /&gt;
 4569	UDP	FGCom  VoIP, (Inter-Asterisk eXchange)&lt;br /&gt;
 5000	UDP	in/out Multiplayer    (VPN Sftw.)&lt;br /&gt;
 5001	UDP	Enable HTTP-server&lt;br /&gt;
 5002	UDP	Enable property server&lt;br /&gt;
 5003	UDP	Enable Screen-Shot services&lt;br /&gt;
 5004   UDP     (may be used as a spare)&lt;br /&gt;
 5505	UDP	Terra Sync&lt;br /&gt;
 16661	UDP	FGCom listening to FGFS, usually “local host” only&lt;br /&gt;
Also consider that some modern modems do already provide a firewall. If in addition to that you use a local firewall in your PC, than you might expect an unhealthy competition between those two concurrent firewalls. In case of problems you should deactivate one of those (usually the one inside the PC, especially if several PCs are connected via that modem).&lt;br /&gt;
&lt;br /&gt;
==== Commandline Parameters ====&lt;br /&gt;
 fgcom --help&lt;br /&gt;
returns the following useful info&lt;br /&gt;
    fgcom - a communication radio based on VoIP with IAX/Asterisk&lt;br /&gt;
    (c)2007 by H. Wirtz &amp;lt;wirtz@dfn.de&amp;gt;&lt;br /&gt;
    Version 1.2.2 build 163M&lt;br /&gt;
    Using iaxclient library Version SVN 163M&lt;br /&gt;
  &lt;br /&gt;
  OPTION                                        DESCRIPTION&lt;br /&gt;
  &lt;br /&gt;
  -d, -debug, --debug=                          show debugging information&lt;br /&gt;
  -S, -voipserver, --voipserver=                voip server to connect to (default: 'fgcom.flightgear.org')&lt;br /&gt;
  -s, -fgserver, --fgserver=                    network device to connect to  (default: 'localhost')&lt;br /&gt;
  -p, -port, --port=                            where we should listen to FG (default: '16661')&lt;br /&gt;
  -a, -airport, --airport=                      airport-id (ICAO) for ATC-mode&lt;br /&gt;
  -f, -frequency, --frequency=                  frequency for ATC-mode&lt;br /&gt;
  -U, -user, --user=                            username for VoIP account (default: 'guest')&lt;br /&gt;
  -P, -password, --password=                    password for VoIP account (default: 'guest')&lt;br /&gt;
  -i, -mic, --mic=                              mic input level (0.0 - 1.0)&lt;br /&gt;
  -o, -speaker, --speaker=                      speaker output level (0.0 - 1.0)&lt;br /&gt;
  -b, -mic-boost, --mic-boost=                  enable mic boost&lt;br /&gt;
  -l, -list-audio, --list-audio=                list audio devices&lt;br /&gt;
  -r, -set-audio-in, --set-audio-in=            use &amp;lt;devicename&amp;gt; as audio input&lt;br /&gt;
  -k, -set-audio-out, --set-audio-out=          use &amp;lt;devicename&amp;gt; as audio output&lt;br /&gt;
  -c, -codec, --codec=                          use codec &amp;lt;codec&amp;gt; as transfer codec (default: 'u')&lt;br /&gt;
  &lt;br /&gt;
  Available codecs:&lt;br /&gt;
        u - ulaw (default and best codec because the mixing is based onto ulaw)&lt;br /&gt;
        a - alaw&lt;br /&gt;
        g - gsm&lt;br /&gt;
        s - speex&lt;br /&gt;
        7 - G.723&lt;br /&gt;
  &lt;br /&gt;
  Mode 1: client for COM1 of flightgear:&lt;br /&gt;
        $ fgcom&lt;br /&gt;
  - connects fgcom to fgfs at localhost:16661&lt;br /&gt;
        $ fgcom -sother.host.tld -p23456&lt;br /&gt;
  - connects fgcom to fgfs at other.host.tld:23456&lt;br /&gt;
  &lt;br /&gt;
  Mode 2: client for an ATC at &amp;lt;airport&amp;gt; on &amp;lt;frequency&amp;gt;:&lt;br /&gt;
        $ fgcom -aKSFO -f120.500&lt;br /&gt;
  - sets up fgcom for an ATC radio at KSFO 120.500 MHz&lt;br /&gt;
  &lt;br /&gt;
    Note that /home/hcs/src/fgcom/trunk/src/fgcom starts with a guest account unless you use -U and -P!&lt;br /&gt;
&lt;br /&gt;
Also note that the current server (fgcom.flightgear.co) works with guest account, so '''do not use -U or -P'''&lt;br /&gt;
&lt;br /&gt;
== Server installation ==&lt;br /&gt;
{{Main article|Howto: Set up a FGCom server}}&lt;br /&gt;
Main FGCom server fgcom.flightgear.org hosted by F-JJTH (contact on forum, IRC, mailing list)&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://sourceforge.net/projects/fgcom/ fgcom(SourceForge-Project)] Subversion is [http://fgcom.svn.sourceforge.net/ available here]. If you haven't used Subversion before, you might find it easier to fetch a [http://fgcom.svn.sourceforge.net/viewvc/fgcom/?view=tar archive] instead.&lt;br /&gt;
* latest source available here (?): http://code.google.com/p/fgcomgui/&lt;br /&gt;
&lt;br /&gt;
=== Deprecated or broken links ===&lt;br /&gt;
* [http://squonk.abacab.org/dokuwiki/fgcom Old Official website] &lt;br /&gt;
* [http://squonk.abacab.org/dokuwiki/fgcom-manual Manual]&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
* '''October, 2013:'''&lt;br /&gt;
FGCom standalone is now part of FlightGear release ( two release per year, same version number policy)&lt;br /&gt;
&lt;br /&gt;
FGCom standalone is available at http://fgcom.flightgear.org/download&lt;br /&gt;
&lt;br /&gt;
* '''August, 2013:'''&lt;br /&gt;
FGCom has been integrated into FlightGear&lt;br /&gt;
&lt;br /&gt;
'''New FGCom server : fgcom.flightgear.org''' ( ATIS message record, backward compatibility with old/wrong frequencies, ready for 8.33KHz spacing frequency, new dialplan using last data from X-Plane)&lt;br /&gt;
&lt;br /&gt;
* '''March, 2009:'''&lt;br /&gt;
Adding User-Information for installing, using, maintaining FGCOM on different platforms.&lt;br /&gt;
&lt;br /&gt;
* '''18 November, 2008:'''&lt;br /&gt;
Latest SVN (rev 163) has the compile problems fixed. Also we have a new server: fgcom.flightgear.org.uk. User accounts not required (ie. do '''not''' use -U or -P)&lt;br /&gt;
&lt;br /&gt;
* '''31 October, 2008:''' &lt;br /&gt;
&lt;br /&gt;
The latest SVN release at this time is the '''r149''' which does not compile due to a constant that is not defined (STL_STRING). Such constant appears at line 57 in the file ''src/fgcom_init.cpp'' which is:&lt;br /&gt;
''#include STL_STRING''&lt;br /&gt;
&lt;br /&gt;
I guess that such constant must point to the STL library include file but I am not sure.&lt;br /&gt;
I revert to the '''r148''' SVN version which successfully compiles.&lt;br /&gt;
&lt;br /&gt;
Command to get such version is: ''svn co -r148 svn://svn.dfn.de:/fgcom/trunk fgcom-r148''&lt;br /&gt;
&lt;br /&gt;
* '''19 June, 2008:''' Currently the server is &amp;lt;u&amp;gt;down&amp;lt;/u&amp;gt; due to hardware problems. It is unknown when the service comes back because he currently has no time to fix the problems.&lt;br /&gt;
&lt;br /&gt;
* '''22 November 2007:''' Due to heavy development at this time there may be some differences between the information on the web pages and the installation. Please follow the discussions on the FlightGear development list!&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[FlightGear related projects]]&lt;br /&gt;
* [[FGComGui]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FGCom| ]]&lt;br /&gt;
[[Category:Multiplayer]]&lt;br /&gt;
&lt;br /&gt;
[[fr:FGCom]]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=63375</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=63375"/>
		<updated>2013-10-16T09:21:07Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The replacement of qFGRadio, QRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* QRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio was replaced by QRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict requires GDAL in order to work with terrain shapefiles. More information can be found on the project page at [http://qradiopredict.sourceforge.net/ QRadioPredict]&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Syntax_highlighting_for_Nasal&amp;diff=63264</id>
		<title>Howto:Syntax highlighting for Nasal</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Syntax_highlighting_for_Nasal&amp;diff=63264"/>
		<updated>2013-10-10T14:18:11Z</updated>

		<summary type="html">&lt;p&gt;Adrian: jEdit syntax file was not available anymore, re-uploaded on another server&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There's '''[[Nasal]] syntax-highlighting''' support available for some editors, which is a big advantage, as it makes Nasal coding much easier. It can often point to syntax errors and so reduce the number of tedious time-consuming and unproductive [[FlightGear]] runs.&lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
http://dl.dropbox.com/u/1463693/nasal.xml&lt;br /&gt;
&lt;br /&gt;
Instructions are here: http://superuser.com/questions/62474/notepad-custom-syntax-highlighting-setting-where-to-look-for-it&lt;br /&gt;
&lt;br /&gt;
== jEdit ==&lt;br /&gt;
There's a syntax highlighting mode for jEdit, programmer's text editor&lt;br /&gt;
&lt;br /&gt;
Included are some of Nasal's internal functions and those functions currently implemented in NasalSys.cxx&lt;br /&gt;
To use, add the content of the catalog inside your own catalog (do NOT overwrite the file) and nasal.xml in /home/USER/.jedit/modes&lt;br /&gt;
&lt;br /&gt;
Restart jEdit and you can use it. Current extension is .nas, you can add your own extension and functions.&lt;br /&gt;
This mode is heavily based on the Javascript mode.&lt;br /&gt;
&lt;br /&gt;
Get it here: https://sourceforge.net/projects/fgscheduleview/files/jedit/catalog.zip/download&lt;br /&gt;
&lt;br /&gt;
==gEdit==&lt;br /&gt;
&lt;br /&gt;
[[File:Philosopher's nasal highlighting in gEdit.jpeg|400px|thumb|Screen shot illustrating syntax highlighting in gEdit]]&lt;br /&gt;
&lt;br /&gt;
'''Philosopher''' on the FlightGear Forum has created a syntax highlighter for gEdit- a popular and simple Text Editor for Mac OSX and Linux.&lt;br /&gt;
&lt;br /&gt;
http://theomegahangar.flymerlion.com/downloads/nasal.lang&lt;br /&gt;
&lt;br /&gt;
Download the ''nasal.lang'' file from the link above or from the first post of this forum topic http://www.flightgear.org/forums/viewtopic.php?f=30&amp;amp;t=17265 and:&lt;br /&gt;
&lt;br /&gt;
If you use Mac, move it into your ''Applications/gedit/Contents/Resources/share/gtksourceview-2.0/language specs'' folder.&lt;br /&gt;
And for linux, move it into your ''/usr/share/gtksourceview-X.0/language-specs'' folder.&lt;br /&gt;
nasal.xml has to be moved into ''/usr/share/gedit/plugins/snippets/'' folder and edit ''/usr/share/gtksourceview-X.0/language-specs/xml.lang'' to add the embedded xml content support.&lt;br /&gt;
&lt;br /&gt;
== Vim ==&lt;br /&gt;
It also makes understanding other people's code easier. One such editor is the free vim or its gui variant gvim. &lt;br /&gt;
&lt;br /&gt;
It's not for everyone but it's free, and testing it doesn't hurt: http://www.vim.org/. &lt;br /&gt;
&lt;br /&gt;
The syntax definition file comes with the FlightGear code (http://gitorious.org/fg/flightgear/blobs/next/scripts/syntax/nasal.vim). Highlighting works even for Nasal embedded in XML files (type &amp;quot;:set ft=nasal&amp;quot;, where ft stands for file-type)&lt;br /&gt;
&lt;br /&gt;
Here's an example, which demonstrates a short code segment with three syntax errors as well as the highlighting of a matching pair of parentheses (yellow) and trailing spaces (blue x). (The leading blue dots aren't on by default. They help to spot tab crimes.)&lt;br /&gt;
&lt;br /&gt;
[[File:Vim-nasal-syntax-highlighting.png|400px|thumb|Screen shot illustrating syntax highlighting in Vim]]&lt;br /&gt;
&lt;br /&gt;
==KDE Editors==&lt;br /&gt;
There's a highlighting definition for nasal available at '''kde-files.org''' (http://kde-files.org/content/show.php/Nasal+highlighting?content=154555)&lt;br /&gt;
&lt;br /&gt;
Download the file and copy it into ~/.kde4/share/apps/katepart/syntax/ (you can create the folders if they don't exist yet).&lt;br /&gt;
&lt;br /&gt;
Note that the syntax highlighting in KDE doesn't set colors, it just identifies structural elements, colors are defined by the '''schemas''' used by each editor, thus you get consistent highlighting between different languages.&lt;br /&gt;
&lt;br /&gt;
The highlighting file should work with all editors based on the katepart: KWrite, Kate, and the editor component of KDevelop.&lt;br /&gt;
&lt;br /&gt;
== Sublime Text 2 ==&lt;br /&gt;
Scripts and installation instructions are here: https://github.com/freevryheid/nasal&lt;br /&gt;
[[File:Sublime Text 2 syntax highlighting.png|400px|thumb|Sublime Text 2 syntax highlighting]]&lt;br /&gt;
&lt;br /&gt;
== Other editors ==&lt;br /&gt;
Nasal being syntactically very close to other programming languages like C, Php or JavaScript, you can get some usable highlighting even without real Nasal support:&lt;br /&gt;
&lt;br /&gt;
* TextMate [http://flightgear.org/forums/viewtopic.php?f=30&amp;amp;t=12495&amp;amp;p=128116&amp;amp;hilit=syntax+nasal#p127828]&lt;br /&gt;
* SciTe [http://flightgear.org/forums/viewtopic.php?f=30&amp;amp;t=9260&amp;amp;p=94521&amp;amp;hilit=syntax+nasal#p94521]&lt;br /&gt;
&lt;br /&gt;
== FlightGear Wiki ==&lt;br /&gt;
A common approach in code examples on the wiki is to use php syntax highlighting beween &amp;lt;code&amp;gt;&amp;amp;lt;syntaxhighlight&amp;amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
# hello.nas&lt;br /&gt;
print('Hello World!');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which renders into:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
# hello.nas&lt;br /&gt;
print('Hello World!');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Nasal howto]]&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* http://www.flightgear.org/forums/viewtopic.php?f=30&amp;amp;t=17265&amp;amp;p=164155#p164155&lt;br /&gt;
* http://www.flightgear.org/forums/viewtopic.php?f=30&amp;amp;t=12495&lt;br /&gt;
* http://www.flightgear.org/forums/viewtopic.php?f=30&amp;amp;t=15972&lt;br /&gt;
* http://www.flightgear.org/forums/viewtopic.php?f=30&amp;amp;t=9812&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=63080</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=63080"/>
		<updated>2013-10-02T08:31:48Z</updated>

		<summary type="html">&lt;p&gt;Adrian: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The bigger brother of qFGRadio, qRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* qRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* A 2D plot model showing signal quality in colours. This works in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
[[Image:qradiopredict.png|thumb|Plot mode]]&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
* Part of this code will be used to contribute to integrated FGCom realistic radios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio is going to be replaced by qRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict will require though GDAL. A video showing the operation of qFGRadio can be seen [http://vimeo.com/73569298 here].&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Qradiopredict.png&amp;diff=63079</id>
		<title>File:Qradiopredict.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Qradiopredict.png&amp;diff=63079"/>
		<updated>2013-10-02T08:15:20Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{self|GFDL|cc-by-3.0|migration=redundant}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=62941</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=62941"/>
		<updated>2013-09-24T09:36:28Z</updated>

		<summary type="html">&lt;p&gt;Adrian: qRadioPredict becomes the main project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qradiopredict1.png|thumb|Qt GUI for FGradio, standalone and APRS]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
* The bigger brother of qFGRadio, qRadioPredict, is capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear still remains the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone.&lt;br /&gt;
* qRadioPredict is also capable of using more than three fixed radio stations.&lt;br /&gt;
* APRS stations are displayed on map in real time, and also saved in history, with a configurable view filter. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map will perhaps be sent to Flightgear for signal analysis in real time.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* A 2D plot model showing signal quality in colours is going to be added to the program. This will function in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
* Improving performance of clutter calculations in standalone mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio is going to be replaced by qRadioPredict, which has standalone operation capabilities. Most of its issues are being ironed out. It is intended to be portable across different operating systems, with dependencies kept to a reasonable minimum. qRadioPredict will require though GDAL. A video showing the operation of qFGRadio can be seen [http://vimeo.com/73569298 here].&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Qradiopredict1.png&amp;diff=62940</id>
		<title>File:Qradiopredict1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Qradiopredict1.png&amp;diff=62940"/>
		<updated>2013-09-24T09:28:08Z</updated>

		<summary type="html">&lt;p&gt;Adrian: qRadioPredict, the bigger brother of qFGradio&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
qRadioPredict, the bigger brother of qFGradio&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|GFDL|cc-by-3.0|migration=redundant}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=62781</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=62781"/>
		<updated>2013-09-20T11:11:13Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
[[Image:qfgradio2.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map, and perhaps sent to Flightgear for signal analysis in real time. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* More than three fixed stations, with the only limit imposed by the user hardware.&lt;br /&gt;
* The bigger brother of qFGRadio, qRadioPredict, will be capable of running standalone, without a Flightgear connection, using the same data which is used to generate Flightgear terrain. Interfacing with Flightgear will still remain the preferred mode of operation, but this change implies that terrain loading limits which have placed limitations on maximum reliable prediction range will be gone. &lt;br /&gt;
* A 2D plot model showing signal quality in colours is going to be added to the program. This will function in a similar way to the Splat! and Radiomobile 2D plot generation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio has not yet reached a state where it can be readily made available. It is beta software for now, in testing. Most of its issues are being ironed out. The bigger brother of qFGRadio, qRadioPredict, will replace it, having standalone operation capabilities. It is intended to be portable across different operating systems. A video showing the operation of the software can be seen [http://vimeo.com/73569298 here].&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=62780</id>
		<title>Radio propagation</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Radio_propagation&amp;diff=62780"/>
		<updated>2013-09-20T11:02:37Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is a project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; The source code will remain available and will be kept up to date with the main Flightgear project as long as possible, but without any warranty. &amp;lt;b&amp;gt;Also, this project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image =Radio-perf2.png&lt;br /&gt;
|name =Radio Propagation Subsystem&lt;br /&gt;
|started= 12/2011 &lt;br /&gt;
|status = Under active development as of 08/2013(project is separated from mainline source)&lt;br /&gt;
|description = Enabling real time realistic radio calculations depending on terrain, landcover, transmitter station, receivers station. Everything configurable via the property tree. Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool.&lt;br /&gt;
|maintainers  = Adrian&lt;br /&gt;
|developers = [[User:Adrian]] (since 09/2011), &lt;br /&gt;
|folders = $FG_SRC/Radio&lt;br /&gt;
|topic-fg= &lt;br /&gt;
|merge-requests = &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
|topic-sg= &lt;br /&gt;
|topic-fgdata= &lt;br /&gt;
|subforum= &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
The code and algorithms described below enable the following features in Flightgear, which to the author's knowledge are unique for a conventional flight simulator:&lt;br /&gt;
&lt;br /&gt;
* realistic radio reception of ATC and AI aircraft messages.&lt;br /&gt;
* realistic radio reception of VOR stations, making radio navigation more interesting and realistic in hilly/mountainous terrain.&lt;br /&gt;
* realistic range for DME equipment, reception is now very different to VOR signals due to the very high frequency used. You could have full deflection on the NAV display and no DME data until you pass a minor obstruction.&lt;br /&gt;
* realistic reception of TACAN stations, including mobile stations (AI tankers etc.). Conditions similar to DME.&lt;br /&gt;
* mostly realistic radio reception of localizer and glideslope signals, making landings more interesting for certain airports.&lt;br /&gt;
* configuration and realistic reception of radio beacons located anywhere in the 3D world, while presenting calculated signal values according to different official guidelines, including but not limited to the FAA.&lt;br /&gt;
&lt;br /&gt;
==Using Flightgear as a general purpose, 3D, radio signal propagation and terrain analysis tool==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to evaluate the possible usage of the Flightgear engine as a tool for RF signal loss prediction over a rough terrain, using geographical features embedded inside terrain data and well know propagation prediction algorithms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are currently a number of freeware and open-source applications that perform RF signal loss analysis using data available to the general public (elevation data, landcover etc.).&lt;br /&gt;
Well known and used are Radiomobile &amp;lt;ref&amp;gt;http://www.cplus.org/rmw/english1.html&amp;lt;/ref&amp;gt;, a Windows application by Roger Coud&amp;amp;eacute;, VE2DBE and Splat!&amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/splat.html&amp;lt;/ref&amp;gt; (multiple platform) by John A. Magliacane, KD2BD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A common point of these applications is the usage of the Irregular Terrain Model (also known as Longley-Rice)&amp;lt;ref&amp;gt;https://webcache.googleusercontent.com/search?q=cache:FqVjcDsXaPQJ:http://www.iucaf.org/sschool/darrel/propagat.ppt%2Blongley+rice+for+lower+frequencies&amp;amp;oe=utf-8&amp;amp;rls=org.mozilla%3Aen-US%3Aunofficial&amp;amp;hl=en&amp;amp;ct=clnk&amp;lt;/ref&amp;gt; which is a propagation model developed by the U.S. Department of Commerce NTIA/ITS - Institute for Telecommunication Sciences and improved by several others (notably ITWOM &amp;lt;ref&amp;gt;http://bts.ieee.org/ieee-broadcast-technology-society-newsletter.html&amp;lt;/ref&amp;gt; by Sidney E. Shumate, code available to the public on a limited usage license, copyright Givens-Bell &amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/isart/art08/slides08/shu_s-08.pdf&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
It is a general purpose model that can be applied to a large variety of engineering problems. The model, which is based on electromagnetic theory and on statistical analysis of both terrain features and radio measurements, predicts the median attenuation of a radio signal as a function of distance and the variability of the signal in time and in space.&amp;lt;ref&amp;gt;http://www.its.bldrdoc.gov/resources/radio-propagation-software/itm/itm.aspx&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;http://web.archive.org/web/20110721032828/http://flattop.its.bldrdoc.gov/itm.html&amp;lt;/ref&amp;gt; &lt;br /&gt;
It is currently used among others by NASA, Alcatel-Lucent, US Army, University of Massachusetts and amateur radio operators around the world, and  is widely considered the best propagation model for frequencies between 50 - 5000 Mhz freely available to the public.&lt;br /&gt;
One of the most active users of the Irregular Terrain Model is the US FCC (Federal Communications Commission), which is currently applying the updated version of this model for broadcast station regulations &amp;lt;ref&amp;gt;http://broadcastengineering.com/transmitters/fcc-proposes-updated-longley-rice-model-repack-tv-stations&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
[[Image:Signal-analysis.png|thumb|Radio signal analysis]]&lt;br /&gt;
[[Image:Antenna-polar.png|thumb|Antenna far-field gain plot]]&lt;br /&gt;
The implementation of radio propagation analysis is mostly finished inside Flightgear. Since the terrain used by this open-source flight simulator contains both elevation information and landcover data, it seems especially suited for a 3D tool to predict RF signal levels, both for aviation navigational aids and radio communications, and standalone as a point-to-point radio link analysis between two radio stations.&lt;br /&gt;
Flightgear allows the user to place models on the terrain at specific locations, and to setup internal properties via a simple XML format.&lt;br /&gt;
Rather complex radio receivers and transmitters can be simulated using the Nasal scripting language or via an external utility, as well as an UI to perform signal level reading and modify receiver and transmitter physical characteristics. The 3D aspect is also interesting, since it allows one to perform  predicted signal level reading at different locations while inside the simulator, using visual cues to place the radio equipment on the terrain.&lt;br /&gt;
Since this open-source flight simulator is capable of running on multiple platforms, including GNU/Linux, Microsoft Windows and MacOS, its availability is not limited to one operating system.&lt;br /&gt;
&lt;br /&gt;
===Data===&lt;br /&gt;
&lt;br /&gt;
Most of new generation Flightgear terrain uses NASA SRTM v3 &amp;lt;ref&amp;gt;http://www2.jpl.nasa.gov/srtm/&amp;lt;/ref&amp;gt; elevation data, which has a distance of 90 meters between elevation points. This is considered accurate enough for most signal analysis, although more detailed elevation data from topographical maps, ASTER DEM or other sources can be acquired. &lt;br /&gt;
Default landcover in Flightgear comes from VMAP0 &amp;lt;ref&amp;gt;http://earth-info.nga.mil/publications/vmap0.html&amp;lt;/ref&amp;gt; layers, with more accurate geodata being available from national and international programs, such as Europe's flagship program, the CLC2006 &amp;quot;Corine&amp;quot; landcover project.&amp;lt;ref&amp;gt;http://www.eea.europa.eu/publications/COR0-landcover/at_download/file&amp;lt;/ref&amp;gt;&lt;br /&gt;
Landcover data is used to analyse path loss and improve predicted signal levels over specific types of terrain, but should be cross-checked with real-world RF signal readings took at the same locations. &lt;br /&gt;
Antenna radiation patterns obtained using the free tool NEC2x can be used for both transmitters and receivers. Patterns obtained from other applications can be used too, as long as they are converte to the rather simple text format which is used by the Flightgear radio code.&lt;br /&gt;
Also, data from Flightgear's realistic atmospheric and weather simulation could be taken into account when path loss analysis is perfomed.&lt;br /&gt;
&lt;br /&gt;
===Request for information===&lt;br /&gt;
&lt;br /&gt;
If you are involved with maintenance or have detailed information about navaid transmitter capabilities, the author would appreciate if you listed in the discussion page the following information:&lt;br /&gt;
&lt;br /&gt;
* usual transmitter power for localizer (known to be between 15-25 W) and glideslope (known to be between 5-10 W ???) equipment.&lt;br /&gt;
* usual transmitter power for DME (not VOR) equipment: various source suggest from 50 W to 1 kW (I guess these values are ERP, since reported antenna gains are 8 dBi on vertical polarization) &amp;lt;ref&amp;gt;http://www.selex-si-uk.com/pdf/Distance%20Measuring%20Equipment%20(DME).pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* usual receiver sensitivity (in dBm) for DME equipment (-95 dBm taken from source).&lt;br /&gt;
* usual antenna types and gains for localizer and glideslope equipment: for localizer the ERP (effective radiated power) is known from various sources as approx 100 W, thus assuming 7-9 dBi antenna gain, glideslope antenna estimated gain 10 dBi &amp;lt;ref&amp;gt;http://www.dbsant.com/gsSpecs.php&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* most sources describe a 16 dB front-to-back ratio, thus being consistent with the default pattern used and shown in the picture above. Corrections welcome.&lt;br /&gt;
* usual localizer/glideslope/DME antenna types and gains for various aircraft, for usage by aircraft developers (most sources show V-type dipole).&lt;br /&gt;
&lt;br /&gt;
===Implementation details===&lt;br /&gt;
&lt;br /&gt;
In order to use the point-to-point routine of the Longley-Rice model, a terrain profile between the two radio stations is generated by sampling the terrain with a configurable distance between points (default is 90 meters, which is equal to SRTM 3 arcsec precision). This terrain profile is fed to the ITM routines, together with some other parameters: transmitter output power, receiver sensitivity, antenna heights above terrain. These routines are the core of the implementation, and incorporate improvements made by J. D. McDonald, John A. Magliacane and Holger Schurig to the original code.&lt;br /&gt;
&lt;br /&gt;
The result is signal attenuation in dB along the direct path. The ITM functions will determine for us if the radio propagation is line-of-sight, diffraction dominant or tropospheric scatter. For diffraction propagation, it also determines if it's single horizon or double horizon.&lt;br /&gt;
This information will further be used in calculating ground clutter obstruction for different terrain types. The most frequent obstructions that affect radio signals are built-up areas and tall vegetation. By calculating the interference of ground clutter inside the first Fresnel zone, we can determine signal losses with average precision. &lt;br /&gt;
In order to do so, we need two more numbers in the equations: clutter height above terrain, and clutter density. These are stored inside a plain text file located inside the Materials/ directory, allowing for more terrain types to be added and properties to be changed by the user. The aim is to make these two factors as configurable as possible to the user, in order to be able to adapt them to local measured conditions.&lt;br /&gt;
&lt;br /&gt;
The radio stations parameters are also completely configurable by the user, by setting internal properties, via Nasal scripting or otherwise.&lt;br /&gt;
For ATC comms, at the current state, some basic assumptions are made about transmitter power, receiver sensitivity and antenna heights: these are based on standard ATC interactions, but this will be changed in the future to support a wider variety of signals. It might even be possible to simulate realistic ACARS transmissions, as well as transponder responses with realistic range and signal quality (introduce errors based on signal quality etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Usage====&lt;br /&gt;
&lt;br /&gt;
To enable the radio code, use the following command line flags:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-radio=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the main radio code&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-sqlite=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enable the experimental [[Terrain_sampling | terrain sampler]] based on a terrain database. Not recommended unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-clutter-attenuation=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the ground clutter attenuation calculations&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/use-antenna-pattern=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: enables the antenna radiation patterns&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/itm-radio-performance=false &amp;lt;/pre&amp;gt;&lt;br /&gt;
:disables performance mode (useful for propagation study)&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/material-radio-database=true &amp;lt;/pre&amp;gt;&lt;br /&gt;
: use the Sqlite database for landcover types and radio properties. It is named '''material_radio_properties.sqlite''' and placed in '''$FGROOT'''&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;--prop:/sim/radio/sampling-distance=90 &amp;lt;/pre&amp;gt;&lt;br /&gt;
: distance between terrain profile points. Defaults to 90 meters which is the accuracy of SRTM elevation grids. A smaller value coupled with disabling performance mode will have an impact on the performance and will only be useful in very high resolution terrain. Use a larger value to relieve performance issues.&lt;br /&gt;
&lt;br /&gt;
====Known limitations====&lt;br /&gt;
&lt;br /&gt;
* The loading distance of terrain. For stations which are beyond the maximum configured terrain loading distance, path profiles will not be accurate and some errors are likely to occur in the signal loss figures. The experimental [[Terrain_sampling | terrain sampler]] based on an elevation database attempts to get rid of tile loading distance as a factor in this. It is a work in progress though, while reliable it needs a separate toolset to generate the database. To be used only for very special purposes (ground radar?).&lt;br /&gt;
&lt;br /&gt;
* The current model does not take into account signal reflection from objects or terrain features, nor refraction caused by atmospheric conditions.&lt;br /&gt;
&lt;br /&gt;
* The diffraction calculations within the ITM library are not very precise and are likely to overestimate losses caused by diffraction over a sharp edge, or when take-off angles are beyond a certain limit. This has been corrected in the new ITWOM, which is available to the public with commercial restrictions. &amp;lt;ref&amp;gt;http://www.qsl.net/kd2bd/itwom3.0.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Clutter loss calculation are only estimative and should only be taken into account after careful calibration done with measurement equipment at the sites.&lt;br /&gt;
&lt;br /&gt;
====Currently implemented features within the Flightgear engine====&lt;br /&gt;
[[Image:Vor_no_itm.png|thumb|VOR received on ground 80 km away with no line of sight, using old code]]&lt;br /&gt;
[[Image:Vor_itm.png|thumb|VOR no longer received on ground 80 km away with no line of sight, using new radio code]]&lt;br /&gt;
[[Image:Vor-no-dme.png|thumb|VOR station received full signal, while DME is still unavailable 70 km out because of obstructions, using new radio code]]&lt;br /&gt;
[[Image:Vor-dme.png|thumb|VOR received full signal, and now DME received too, we have cleared the small obstruction. UHF propagation is fun!]]&lt;br /&gt;
&lt;br /&gt;
* the code has been transitioned to a more efficient and performance-friendly subsystem structure&lt;br /&gt;
* point-to-point path loss calculations over rough terrain using the ITM library for air traffic control stations to pilot communication. Also AI to pilot reception.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for VOR/Localizer and Glideslope stations &amp;lt;ref&amp;gt;http://www2.rohde-schwarz.com/file_15494/1MA193_0e.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for DME stations &amp;lt;ref&amp;gt;http://www.faa.gov/air_traffic/publications/atpubs/aim/aim0101.html&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* point-to-point path loss calculations using the ITM library for TACAN stations, including mobile stations (AI tankers etc.) &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Tactical_air_navigation_system&amp;lt;/ref&amp;gt;. Can be affected by some issues with stations sunk in the ground (request test info).&lt;br /&gt;
* for VHF/UHF stations beyond a reasonable terrain loading distance, automatic transition to path loss calculation over a smooth round earth using alternative free space signal attenuation equations&lt;br /&gt;
* RF link budget calculations using transmitter power, receiver sensitivity, antenna gain and height above terrain, taking into account typical values from various specifications&lt;br /&gt;
* experimental feature: usage of detailed landcover in RF propagation prediction (ground clutter path loss)&lt;br /&gt;
* landcover radio properties are stored into an easy to read and modify txt file in the Materials/ directory, allowing for more terrain types and radio properties to be changed by the user&lt;br /&gt;
* signal loss due to polarization mismatch&lt;br /&gt;
* simple signal strength indicator (Instrument for signal level reading)&lt;br /&gt;
* far-field antenna radiation patterns generated with 4nec2&lt;br /&gt;
* radio transmitter beacons can be placed with the model tool inside 3D space, models placed with the UFO tool will use a separate tree to avoid conflicts with other types of models (weather, etc). In the future it will be possible to define and change properties for multiple beacons from the same panel instrument.&lt;br /&gt;
* using the property tree, a radio station can be defined with Nasal scripts&lt;br /&gt;
* support for multiple radio stations running at the same time: navaids, ATC comms, beacons&lt;br /&gt;
* efficiency mode: the number of terrain data points decrease proportionally with the distance to the station.&lt;br /&gt;
* calculation of electrical field strength in uV/m, received signal strength in uV and dBm, as required by official guidelines.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Features which still need to be implemented====&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI]]&lt;br /&gt;
* Figure out what to do about VOR/DME/TAC stations sunk into the ground? Possible bug affecting them, maybe only on custom terrain.&lt;br /&gt;
* reception of ACARS ground messages via VHF radios&lt;br /&gt;
* usage of weather simulation and atmospheric conditions which affect radio propagation: tropospheric ducting, cloud backscatter etc.&lt;br /&gt;
* simulate realistic transponder response&lt;br /&gt;
* realistic ground-to-air radar&lt;br /&gt;
* reliable toolchain for generating data used with the alternative terrain sampler.&lt;br /&gt;
&lt;br /&gt;
====Qt GUI control====&lt;br /&gt;
&lt;br /&gt;
* A Qt-based GUI with OSM map controls and sattelite imagery is available to control all aspects of Flightgear's RF planning features. See the main article, [[qFGRadio]]&lt;br /&gt;
&lt;br /&gt;
== Mailing list discussions ==&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg33688.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg34983.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35010.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35921.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38839.html&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38901.html&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=62592</id>
		<title>QRadioPredict</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=QRadioPredict&amp;diff=62592"/>
		<updated>2013-09-03T19:13:27Z</updated>

		<summary type="html">&lt;p&gt;Adrian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{|&amp;lt;/noinclude&amp;gt;class=&amp;quot;layouttemplate licensetpl&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;width:100%; clear:both; margin:0.5em auto; background-color:#FCFF9F; border:2px solid #acce79;&amp;quot;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;This project is an external project related to Flightgear.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;b&amp;gt;This project is dedicated to humanitarian and radio amateur usage, as well as for increased realism for those who use Flightgear as a training tool.&amp;lt;/b&amp;gt; Support for any other type of usage will be granted by the author on a case by case basis.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
[[Image:qfgradio1.png|thumb|Qt GUI for FGradio]]&lt;br /&gt;
This GUI tool exploits the tremendous connectivity and capabilities of Flightgear.&lt;br /&gt;
By running the telnet server of Flightgear at 100 Hz, we are pushing the limits of the props server, with great results.&lt;br /&gt;
Analysis of radio path for site planning and simulation purposes is thus possible by using one mobile station, positioned anywhere in the Flightgear world, and up to three fixed stations, each of them having the principal characteristics like transmit power, antenna gain, antenna height etc. configurable via the interface.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
[[Image:qfgradio3.png|thumb|Showing APRS stations]]&lt;br /&gt;
[[Image:qfgradio2.png|thumb|Showing APRS stations]]&lt;br /&gt;
* Placing the mobile station on a 2D map provided by OpenStreetMap, or by open sattelite imagery.&lt;br /&gt;
* Placing and configuring up to three fixed stations, which will transmit a signal to the mobile station.&lt;br /&gt;
* Setting the path that the mobile station will follow, via waypoints placed on the map.&lt;br /&gt;
* Signal and transmission analysis for the radio links, running at the rate at which the simulator itself is running.&lt;br /&gt;
* The mobile station will always follow the terrain, if the waypoints have no altitude specified.&lt;br /&gt;
* Radio parameters are: transmit power, receiver sensitivity, antenna gain on both parts, cable losses, antenna heights above surrounding terrain, polarization, antenna type (provides radiation patterns, see the main FGRadio article).&lt;br /&gt;
* The results are displayed both graphically and as real numbers, on a different tab for each station.&lt;br /&gt;
* The Irregular Terrain Model is used with some modifications, as well as the new algorithm designed to calculate losses caused by terrain type (wooded area, city, town, coniferous, mixed forests etc.)&lt;br /&gt;
&lt;br /&gt;
===Planned features===&lt;br /&gt;
&lt;br /&gt;
* APRS stations displayed on map, and perhaps sent to Flightgear for signal analysis in real time. This should allow practical tests of the algorithm for clutter loss.&lt;br /&gt;
* More than one mobile station, as well as messaging between fixed-mobile, fixed-fixed, mobile-mobile.&lt;br /&gt;
* More than three fixed stations, with the only limit imposed by the user hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Availability===&lt;br /&gt;
&lt;br /&gt;
QFGRadio has not yet reached a state where it can be readily made available. It is beta software for now, in testing. Some issues are known and have to be eliminated. Its function is related to Flightgear, and the program cannot operate by itself, but it is still an external tool. It is intended to be portable across different operating systems. A video showing the operation of the software can be seen [http://vimeo.com/73569298 here].&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Qfgradio3.png&amp;diff=62591</id>
		<title>File:Qfgradio3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Qfgradio3.png&amp;diff=62591"/>
		<updated>2013-09-03T19:12:33Z</updated>

		<summary type="html">&lt;p&gt;Adrian: with APRS stations DE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
with APRS stations DE&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|cc-by-sa-3.0}}&lt;/div&gt;</summary>
		<author><name>Adrian</name></author>
	</entry>
</feed>