<?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=Nia</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=Nia"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Nia"/>
	<updated>2026-05-01T11:39:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_Reality&amp;diff=140808</id>
		<title>Virtual Reality</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_Reality&amp;diff=140808"/>
		<updated>2024-10-20T11:33:43Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Experimental|disclaimer=VR support in flightgear still comes with a number of caveats.}}&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = VR screenshot c182s.png&lt;br /&gt;
|name        = Virtual Reality&lt;br /&gt;
|started     = 07/2021&lt;br /&gt;
|description = Virtual Reality support using osgXR / OpenXR&lt;br /&gt;
|status      = Active&lt;br /&gt;
|developers  = James Hogan &amp;lt;ref&amp;gt;https://sourceforge.net/u/amalon/profile/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|changelog = https://sourceforge.net/u/amalon/profile/feed.rss&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''Virtual Reality''' project aims to add immersive VR support to FlightGear. This is done using the OpenXR&amp;lt;ref&amp;gt;{{cite web |url=https://www.khronos.org/OpenXR/ |title=OpenXR Overview |publisher=The Khronos Group Inc}}&amp;lt;/ref&amp;gt; API, via an external library called osgXR&amp;lt;ref name=&amp;quot;github-osgXR&amp;quot;&amp;gt;{{github source |user=amalon |repo=osgXR |full=1}}&amp;lt;/ref&amp;gt; for handling OpenXR and OpenSceneGraph specifics, which is being developed in parallel.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
A previous attempt to support some form of VR is described in [[OculusImplementation]].&lt;br /&gt;
&lt;br /&gt;
The portable OpenXR API now seems to be getting widespread adoption, which will allow FlightGear to support a variety of VR devices across multiple platforms.&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
* osgXR source can be found on github&amp;lt;ref name=&amp;quot;github-osgXR&amp;quot;/&amp;gt;, or the version included in the flightgear 3rdparty directory can be used.&lt;br /&gt;
** On ArchLinux, you can install the osgxr AUR package &amp;lt;ref&amp;gt;https://aur.archlinux.org/packages/osgxr/&amp;lt;/ref&amp;gt; to get the version needed by FlightGear's next branches.&lt;br /&gt;
* Some VR code can now be found in FlightGear's next branches (see below for details).&lt;br /&gt;
** On ArchLinux, you can use the -git AUR packages, i.e. flightgear-git, simgear-git, flightgear-data-git.&lt;br /&gt;
** On Windows, you can use the [[Nightly Build#Windows|Windows nightly builds]].&lt;br /&gt;
* More FlightGear changes can be found on James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=flightgear |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=flightgear |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased). A mirror is available on github for issue tracking&amp;lt;ref&amp;gt;{{github source |user=amalon |repo=flightgear-vr}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* More SimGear changes can be found in James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=simgear |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=simgear |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased).&lt;br /&gt;
* More FGData changes can be found on James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=fgdata |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=fgdata |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased).&lt;br /&gt;
&lt;br /&gt;
== Building &amp;amp; Packaging Notes ==&lt;br /&gt;
&lt;br /&gt;
When CMake runs for FlightGear (next or osgxr/osgxr_clean branches), by default it will attempt to enable VR on Windows and Linux (same as &amp;lt;code&amp;gt;-DENABLE_VR=ON&amp;lt;/code&amp;gt;). It will do the following:&lt;br /&gt;
# Look for the osgXR library, and if found it will link against that (same as &amp;lt;code&amp;gt;-DSYSTEM_OSGXR=ON&amp;lt;/code&amp;gt;).&lt;br /&gt;
# If no osgXR library is found it will check for OpenXR and if found it will build its own static built-in copy of osgXR to use.&lt;br /&gt;
# If no OpenXR is found it will disable VR support.&lt;br /&gt;
&lt;br /&gt;
In any case it will print a message along the lines of &amp;lt;code&amp;gt;-- VR support enabled/disabled...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To avoid implicit dependencies when packaging, packagers may need to do ONE of the following:&lt;br /&gt;
* preferably depend upon an osgXR package providing the osgXR dynamic library&lt;br /&gt;
* OR depend on OpenXR and GLX, and explicitly pass `-DSYSTEM_OSGXR=OFF` to CMake so the built-in osgXR is built statically&lt;br /&gt;
* OR explicitly pass `-DENABLE_VR=OFF` to CMake to disable VR support altogether&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
'''Last updated: 31st March 2024'''&lt;br /&gt;
&lt;br /&gt;
Highly experimental, partially in next, partly out of tree. Development in progress.&lt;br /&gt;
&lt;br /&gt;
Working in next branch (e.g. [[Nightly Build#Windows|Windows nightly builds]]):&lt;br /&gt;
* Enable/disable at startup via --enable-vr / --disable-vr command line options, or from GUI (View-&amp;gt;VR Options).&lt;br /&gt;
* VR friendly splash screen.&lt;br /&gt;
* Displaying stereo images on the HMD.&lt;br /&gt;
* Motion tracking updates HMD views (but doesn't move main camera).&lt;br /&gt;
* Configurable VR mirror (see View-&amp;gt;VR Settings) shown in default camera view (blank, left, right, side-by-side left &amp;amp; right).&lt;br /&gt;
* Visibility mask support.&lt;br /&gt;
&lt;br /&gt;
Working in osgxr/osgxr_clean branch:&lt;br /&gt;
* Controller support for flight (helicopter collective in left hand, helicopter cyclic in right).&lt;br /&gt;
* Controller pointing support with some mouse emulation.&lt;br /&gt;
* Rendering of controllers (as basic cuboids).&lt;br /&gt;
&lt;br /&gt;
Current priorities:&lt;br /&gt;
* Support [[HDR Pipeline]] and accelerated multiview rendering.&lt;br /&gt;
* Continue to polish controller flight support, add haptics etc.&lt;br /&gt;
* Get started on other controller interaction and controller rendering.&lt;br /&gt;
&lt;br /&gt;
=== Known issues ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;Splash screen is rendered directly onto the left eye viewport which isn't very pleasant in VR.&amp;lt;/s&amp;gt;&lt;br /&gt;
* Performance could be better so crank down the graphics if frame rate is low.&lt;br /&gt;
* Shadows are broken:&lt;br /&gt;
** When shadows are enabled, the FlightGear window doesn't appear to refresh even though buffers are swapped, but VR output works.&lt;br /&gt;
** Sun position is fixed relative to head, presumably because shadow maps are rendered based on master camera, but osgXR only moves slave cams.&lt;br /&gt;
* Spotlights (taxi/landing lights) are relative to camera in default mode&lt;br /&gt;
** Affects default / scene view mode (&amp;lt;code&amp;gt;--prop:/sim/vr/mode=AUTOMATIC&amp;lt;/code&amp;gt;), as stereo callbacks position cameras&lt;br /&gt;
** Doesn't affect slave cameras mode (&amp;lt;code&amp;gt;--prop:/sim/vr/mode=SLAVE_CAMERAS&amp;lt;/code&amp;gt;), as slave cameras are positioned correctly&lt;br /&gt;
* ALS filters appear to operate in screen space but don't take into account side by side rendering&lt;br /&gt;
* [[HDR Pipeline]] is unsupported, but work to support it is in progress&lt;br /&gt;
* Still some Monado issues:&lt;br /&gt;
** &amp;lt;s&amp;gt;Saturated output due to not using SRGB textures&amp;lt;/s&amp;gt; (use osgXR 0.3.8)&lt;br /&gt;
** &amp;lt;s&amp;gt;Suboptimal depth format used&amp;lt;/s&amp;gt; (osgXR 0.3.8 should end up using GL_DEPTH32F_STENCIL8)&lt;br /&gt;
** Warnings about suggesting bindings of attached action sets when restarting VR (looks like a monado issue at first glance)&lt;br /&gt;
* Multiple SteamVR issues on Linux:&lt;br /&gt;
** If it doesn't close cleanly on Linux it may be due to a SteamVR bug&amp;lt;ref name=&amp;quot;github-SteamVR-422&amp;quot;/&amp;gt;, but a ctrl+c / SIGINT on the command line should close it.&lt;br /&gt;
* osgXR doesn't support Direct3D graphics bindings for WMR (it isn't a priority for me). Contributions welcome.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
VR has been tested with the following hardware &amp;amp; software configurations:&lt;br /&gt;
* HTC Vive, SteamVR, Linux/X11 (ArchLinux), nVidia proprietary -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 21:43, 27 August 2021 (UTC)&lt;br /&gt;
* Oculus Quest 2, SteamVR (ALVR), Linux/X11 (Fedora 34) -- [[User:vezza|vezza]] ([[User talk:vezza|talk]]) 16:30 27 August 2021 (UTC)&lt;br /&gt;
* Oculus Quest 2, Oculus App, Windows 10 --[[User:Necolatis|Necolatis]] ([[User talk:Necolatis|talk]]) 13:22, 7 June 2023 (UTC)&lt;br /&gt;
** Works fine, shadows gets rendered, but move when turning the head.&lt;br /&gt;
** Eye view point is about 0.2 meter above where the view is defined, so I have to duck my head to look out through the HUD and stuff.&lt;br /&gt;
* Oculus Quest 2, SteamVR via Virtual Streamer App, Windows 10, Nightly build --[[User:Skyclmbr]]  18:17, 11 October 2023 (UTC)&lt;br /&gt;
** Head tracking works fine, but right eye screen flickers constantly throughout flight&lt;br /&gt;
** Starting head position is off, depending on how much I move around while it's loading on the SteamVR page.&lt;br /&gt;
* HTC Vive, Monado (to window), Linux/X11 (ArchLinux), nVidia proprietary -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 22:36, 17 December 2021 (UTC)&lt;br /&gt;
** only basic display to window tested&lt;br /&gt;
** osgXR master&lt;br /&gt;
* Monado dummy driver, Linux/X11 (ArchLinux), Intel mesa -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 22:36, 17 December 2021 (UTC)&lt;br /&gt;
** only basic display to window tested&lt;br /&gt;
** osgXR master&lt;br /&gt;
** /sim/vr/depth-info=false&lt;br /&gt;
* Monado Dummy HMD, Linux/X11 (Debian), AMD Mesa Drivers [[User:nia|Nia]] ([[User talk:nia|talk]]) 23:27, 17 December 2021 (UTC)&lt;br /&gt;
** Applying the following patch: &amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/src/XRState.cpp b/src/XRState.cpp&lt;br /&gt;
index ce09bcd..5bcbbca 100644&lt;br /&gt;
--- a/src/XRState.cpp&lt;br /&gt;
+++ b/src/XRState.cpp&lt;br /&gt;
@@ -1017,7 +1017,7 @@ XRState::UpResult XRState::upSession()&lt;br /&gt;
         unsigned int thisDepthBits = 0;&lt;br /&gt;
         switch (format)&lt;br /&gt;
         {&lt;br /&gt;
-            case GL_RGBA16:&lt;br /&gt;
+            case GL_RGB10_A2:&lt;br /&gt;
                 // FIXME This one will do for now...&lt;br /&gt;
                 if (!chosenSwapchainFormat)&lt;br /&gt;
                     chosenSwapchainFormat = format;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* HP Reverb G2, Gigabyte (AMD) RX 6700 XT, Windows 10, SteamVR -- [[User:Gastcan|Gastcan]] ([[User talk:Gastcan|talk]]) 02:15, 09 July 2023 (UTC)&lt;br /&gt;
** (Using the Windows nightly build 08-Jul-23)&lt;br /&gt;
** The view follows the direction of the headset, but the image stutters; outside scenery and within the cockpit&lt;br /&gt;
&lt;br /&gt;
* HP Reverb G2, Gigabyte (AMD) RX 6700 XT, Debian (Trixie), Monado -- [[User:Gastcan|Gastcan]] ([[User talk:Gastcan|talk]]) 16:15, 14 August 2023 (UTC)&lt;br /&gt;
** Compiled from sources: OpenXR-SDK-Source, Monado, osgXR (amalon), SimGear (amalon), FlightGear (amalon)&lt;br /&gt;
** The view follows the direction of the headset with minor stuttering.&lt;br /&gt;
**&amp;lt;s&amp;gt;The viewpoint/perspective drifts clockwise, to the right.&amp;lt;/s&amp;gt; &amp;lt;- Drifting is virtually eliminated by adding '[https://gitlab.freedesktop.org/mateosss/basalt Basalt for Monado]' (provides 6DoF).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you've got VR working, feel free to add your configuration above.&lt;br /&gt;
&lt;br /&gt;
The following testing is desired:&lt;br /&gt;
*SteamVR, Linux, AMD graphics:&lt;br /&gt;
**Test that motion smoothing works (its unsupported on NVidia)&lt;br /&gt;
** moving head side to side should reproject using depth buffer&lt;br /&gt;
**try suspending fgfs with Ctrl+Z in terminal (resume with fg) to force reprojection&lt;br /&gt;
*Monado, Linux:&lt;br /&gt;
** May be awkward to test as it crashes in latest NVidia proprietary drivers&amp;lt;ref&amp;gt;https://gitlab.freedesktop.org/monado/monado/-/issues/122&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***There's now a workaround mentioned in that ticket that allows for basic testing&lt;br /&gt;
** Use at least osgXR 0.3.6 for monado workaround, or &amp;lt;code&amp;gt;--disable-vr&amp;lt;/code&amp;gt; and enable VR with GUI&lt;br /&gt;
*SteamVR, Windows, with a headset (I've only attempted to null driver, and it at least partly worked):&lt;br /&gt;
**Needs building with at least osgXR 0.3.7 for Windows bindings, and my osgxr/osgxr_clean branch of flightgear/fgdata/simgear&lt;br /&gt;
**May need --disable-sentry&lt;br /&gt;
**Test headset output and controllers&lt;br /&gt;
&lt;br /&gt;
Issues can be reported:&lt;br /&gt;
* On the flightgear-devel [[Mailing lists|mailing list]]&lt;br /&gt;
* To the {{tickets|FlightGear bug tracker}} if the issue is reproducible on the next branch&lt;br /&gt;
* To the [{{github issues url |user=amalon |repo=flightgear-vr}} flightgear-vr issue tracker]&lt;br /&gt;
* To the [{{github issues url |user=amalon |repo=osgXR}} osgXR issue tracker] if it is known to be a non-flightgear specific bug in osgXR&lt;br /&gt;
&lt;br /&gt;
But please be aware of the known caveats mentioned above, and the roadmap below.&lt;br /&gt;
&lt;br /&gt;
==Performance==&lt;br /&gt;
&lt;br /&gt;
Here are some pointers to get the best VR experience.&lt;br /&gt;
* Ensure your runtime supports asynchronous reprojection, which may alleviate the nausea induced by lower frame rates.&lt;br /&gt;
**On Linux / SteamVR / NVidia proprietary driver, ensure you have at least driver version 270.&lt;br /&gt;
*If your frame rate is being capped at the refresh rate of your desktop monitor, try disabling VSync in both flightgear settings and your driver settings&lt;br /&gt;
**On Linux / NVidia proprietary driver, its found in OpenGL settings in nvidia-settings.&lt;br /&gt;
*If FlightGear is getting throttled by SteamVR (to try and ensure a consistent, if slow, frame rate), consider switching to fixed throttling (in per-application video settings) and playing with the sliders. You may prefer no frame rate throttling but a higher predicted frame time.&lt;br /&gt;
*Enabling multithreading may get you better performance, e.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/multithreading-mode=CullThreadPerCameraDrawThreadPerContext&amp;lt;/code&amp;gt;&lt;br /&gt;
*If using an AMD GPU, use [https://gitlab.com/corectrl/corectrl CoreCtrl] and set the GPU to the &amp;quot;Virtual Reality&amp;quot; power profile with GPU and memory clocked to max. You may also benefit from changing the CPU frequency governor to Performance.&lt;br /&gt;
&lt;br /&gt;
==Implementation Details==&lt;br /&gt;
&lt;br /&gt;
===Concepts===&lt;br /&gt;
&lt;br /&gt;
====Interaction Modes====&lt;br /&gt;
&lt;br /&gt;
Interaction modes are a way of describing (via XML) how a VR controller should look and behave in a particular context. It roughly corresponds to a virtual control you can hold (and let go of), for example:&lt;br /&gt;
*When you're holding a helicopter collective control, the pitch angle of the controller should control the collective pitch (and look like a collective in your hand).&lt;br /&gt;
*When you're pointing the controller at a GUI or cockpit controls it should pick along a line, rendered in a specific way, and emulate mouse events to those controls (and look like a small laser pointer control or a pointing hand/glove).&lt;br /&gt;
*When you're teleporting around, it should pick along a parabolic arc, rendered a specific way, and teleport there when the button is released.&lt;br /&gt;
*When you're using the flight recorder it should treat the controller trackpad as a rewind/fast forward (and look like a fancy TV remote or something).&lt;br /&gt;
&lt;br /&gt;
The definition of interaction modes should be generic enough that custom ones can be provided with aircraft, or defined separately and work with any aircraft, but also powerful enough that a complex and intuitive control can be defined with a minimum of Nasal scripting.&lt;br /&gt;
&lt;br /&gt;
==Roadmap==&lt;br /&gt;
&lt;br /&gt;
===Development targets===&lt;br /&gt;
*Merge stable &amp;amp; minimally functional code into next ({{Merge-request |project=flightgear |id=253}}, {{Merge-request |project=fgdata |id=238}}) {{done}}&lt;br /&gt;
**Bare functionality {{done}}&lt;br /&gt;
**Stability {{done}}&lt;br /&gt;
*Merge some form of desktop mirroring of VR view ({{Merge-request |project=flightgear |id=260}}, {{Merge-request |project=fgdata |id=241}}) {{done}}&lt;br /&gt;
*Merge visibility mask support ({{Merge-request |project=simgear |id=98}}, {{Merge-request |project=flightgear |id=264}}, {{Merge-request |project=fgdata |id=244}}) {{done}}&lt;br /&gt;
* Polish {{not done}}&lt;br /&gt;
**Make launcher accessible to VR user {{not done}}&lt;br /&gt;
**Make splash screen VR friendly {{done}}&lt;br /&gt;
**Make GUI accessible to VR user {{not done}}&lt;br /&gt;
**Make aircraft center accessible to VR user {{not done}}&lt;br /&gt;
*Functionality {{progressbar|40}}&lt;br /&gt;
**Controller flight support {{progressbar|80}}&lt;br /&gt;
*** Haptic feedback {{not done}}&lt;br /&gt;
**Controller interaction support {{progressbar|40}}&lt;br /&gt;
** Walker locomotion / room scale {{not done}}&lt;br /&gt;
&lt;br /&gt;
===General tasks ===&lt;br /&gt;
&lt;br /&gt;
*Stability {{done}}&lt;br /&gt;
**Clean shutdown {{done}}&lt;br /&gt;
***SteamVR for Linux hangs on OpenXR app shutdown&amp;lt;ref name=&amp;quot;github-SteamVR-422&amp;quot;&amp;gt;{{github issues url|ValveSoftware|SteamVR-for-Linux|number=422}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
** Handle OpenXR stopping {{done}}&lt;br /&gt;
***SteamVR for Linux kills running app even if it ends session&amp;lt;ref&amp;gt;{{github issues url|ValveSoftware|SteamVR-for-Linux|number=461}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
*Resolve questions around VR mirror switching {{done}}&lt;br /&gt;
*Performance {{progressbar|10}}&lt;br /&gt;
** Handle shouldRender=false by somehow disabling VR cameras (maybe setting cull mask to 0) {{not done}}&lt;br /&gt;
**SceneView mode: Combine culling traversal {{not done}}&lt;br /&gt;
**Check why update isn't proceeding in parallel with multithreading {{not done}}&lt;br /&gt;
**Use OpenXR visibility mask extension to avoid rendering to invisible fragments {{done}}&lt;br /&gt;
*Sound {{progressbar|0}}&lt;br /&gt;
** Ensure surround sound is relative to user's head {{not done}}&lt;br /&gt;
**Investigate a way to use appropriate OpenAL binaural mode automatically {{not done}}&lt;br /&gt;
**Specify separate sound device for VR so it switches automatically? {{not done}}&lt;br /&gt;
&lt;br /&gt;
===User facing features ===&lt;br /&gt;
&lt;br /&gt;
*Display {{progressbar|60}}&lt;br /&gt;
**Show views on HMD {{done}}&lt;br /&gt;
**Configurable mirror on desktop window {{done}}&lt;br /&gt;
***Left, Right, Left &amp;amp; Right {{done}}&lt;br /&gt;
***Composited mirror mode (combine &amp;amp; blend views and allow zooming) {{paused}}&lt;br /&gt;
**General [[HDR Pipeline]] Support {{progressbar|50}}&lt;br /&gt;
**Geometry shader multi viewport ([[HDR Pipeline]]) {{progressbar|50}}&lt;br /&gt;
**OVR_multiview2 with OSG branch ([[HDR Pipeline]]) {{progressbar|20}}&lt;br /&gt;
* Motion tracking {{progressbar|50}}&lt;br /&gt;
** Follow motion of HMD {{done}}&lt;br /&gt;
**Move master camera instead of scene slave cameras (presumably would fix surround sound) {{not done}}&lt;br /&gt;
*Settings {{progressbar|20}}&lt;br /&gt;
** Mirror settings {{done}}&lt;br /&gt;
**Dynamic toggling of VR {{done}}&lt;br /&gt;
**Sound settings? {{not done}}&lt;br /&gt;
***Sound reference frame (user's head or room)? {{not done}}&lt;br /&gt;
**Advanced VR settings {{not done}}&lt;br /&gt;
***validation layer {{not done}}&lt;br /&gt;
*** submit depth information {{done}} but needs testing (SteamVR+Linux+nVidia doesn't do motion smoothing yet)&lt;br /&gt;
***osgXR VR mode {{not done}}&lt;br /&gt;
****Fix slave cameras mode clearing {{not done}}&lt;br /&gt;
***osgXR swapchain mode {{not done}}&lt;br /&gt;
*Platform support {{progressbar|70}}&lt;br /&gt;
**Linux/X11/OpenGL graphics bindings {{done}}&lt;br /&gt;
** Monado support {{progressbar|60}}&lt;br /&gt;
**Windows/OpenGL graphics bindings {{done}}&lt;br /&gt;
**Windows Mixed Reality render via DirectX bindings {{not done}}&lt;br /&gt;
* Splash screen {{progressbar|80}}&lt;br /&gt;
**Show splash screen as quad layer for runtime to composite {{done}}&lt;br /&gt;
**Cube map/quads background provided by aircraft {{progressbar|20}}&lt;br /&gt;
*GUI {{progressbar|10}} {{priority|2}}&lt;br /&gt;
**Shown over mirror on desktop window {{done}}&lt;br /&gt;
** Expose a menubar &amp;amp; GUI, rendered to a quad or cylinder in front of VR user when they activate {{not done}}&lt;br /&gt;
**Interact with GUI buttons etc using controllers as lasers {{not done}}&lt;br /&gt;
*Launcher {{not done}}&lt;br /&gt;
**Show launcher in VR similar to GUI when enabled via command line or launcher option {{not done}}&lt;br /&gt;
**Transition to flightgear {{not done}}&lt;br /&gt;
**Transition to aircraft center with VR already started {{not done}}&lt;br /&gt;
**Transition back to flightgear from aircraft center {{not done}}&lt;br /&gt;
**More VR friendly environment&lt;br /&gt;
***A simple background cubemap, shared with splash {{not done}}&lt;br /&gt;
***A hanger (like xplane11)? {{not done}}&lt;br /&gt;
*Controller support {{progressbar|50}}&lt;br /&gt;
**Basic action support in osgXR API {{done}}&lt;br /&gt;
**Tie osgXR actions into FG's input system {{done}}&lt;br /&gt;
**Helicopter flight controls (can use for planes too) {{done}}&lt;br /&gt;
**Plane flight controls {{not done}}&lt;br /&gt;
** Render controllers {{progressbar|20}}&lt;br /&gt;
**Hand tracking (robot hand) {{progressbar|90}}&lt;br /&gt;
** Render skinned hand {{not done}}&lt;br /&gt;
**Basic interaction with controls {{progressbar|80}}&lt;br /&gt;
***Grasp surfaces {{{progressbar|90}}&lt;br /&gt;
***Force feedback for haptic gloves {{not done}}&lt;br /&gt;
**Advanced interaction with animated controls {{progressbar|90}}&lt;br /&gt;
*** Direct manipulation mouse mode for testing without VR {{progressbar|90}}&lt;br /&gt;
***Inverse kinematics of translate and rotate animations {{done}}&lt;br /&gt;
***Ability to specify frictions {{not done}}&lt;br /&gt;
***Ability to specify ranges (where can't be deduced) {{not done}}&lt;br /&gt;
***Ability to hint what aircraft processes/filters/kinematics should be reversible {{progressbar|10}}&lt;br /&gt;
** Haptic feedback {{not done}}&lt;br /&gt;
* Walker VR locomotion / Room scale {{progressbar|0}}&lt;br /&gt;
** Walker follows user {{not done}}&lt;br /&gt;
**Parabolic arc teleport {{not done}}&lt;br /&gt;
**Snap into seats {{not done}}&lt;br /&gt;
**Easy turning around {{not done}}&lt;br /&gt;
&lt;br /&gt;
===Aircraft compatibility===&lt;br /&gt;
&lt;br /&gt;
This section is largely about how usable controls are in VR with direct manipulation.&lt;br /&gt;
&lt;br /&gt;
====[[Cessna 172P]] ====&lt;br /&gt;
*Controls&lt;br /&gt;
**Flaps {{progressbar|90}}&lt;br /&gt;
***kinematic needs to be reversible {{progressbar|90}}&lt;br /&gt;
** Visors {{progressbar|70}}&lt;br /&gt;
***correct relative friction {{not done}}&lt;br /&gt;
**Opening of doors {{not done}}&lt;br /&gt;
***reversing of gain expression {{not done}}&lt;br /&gt;
&lt;br /&gt;
====[[Eurocopter EC130 B4]] ====&lt;br /&gt;
* Engine start&lt;br /&gt;
** Engine cutoff lever reversing (Alt+C required) {{not done}}&lt;br /&gt;
**External power on (GUI required) {{not done}}&lt;br /&gt;
**External power off (GUI required) {{not done}}&lt;br /&gt;
**Throttle roll (middle mouse drag required) {{not done}}&lt;br /&gt;
*Take off &amp;amp; flight&lt;br /&gt;
** Arms &amp;amp; hands get a bit in the way {{not done}}&lt;br /&gt;
*Controls&lt;br /&gt;
** Engine cutoff lever {{not done}}&lt;br /&gt;
***Uses nasal, needs pick animation binding of some sort&lt;br /&gt;
**ELT {{progressbar|50}}&lt;br /&gt;
***Both /ELT/test and /ELT/armed can be set to bool&lt;br /&gt;
***Both can get set though&lt;br /&gt;
**Doors &amp;amp; hatches {{not done}}&lt;br /&gt;
***Add limits&lt;br /&gt;
&lt;br /&gt;
====[[McDonnell Douglas F-15 Eagle]] ====&lt;br /&gt;
*Model&lt;br /&gt;
**Floating switches are very noticeable {{not done}}&lt;br /&gt;
**HUD should be at infinity {{not done}}&lt;br /&gt;
&lt;br /&gt;
====[[Robinson R22]] ====&lt;br /&gt;
*Controls&lt;br /&gt;
**Tilting T-bar {{progressbar|90}}&lt;br /&gt;
***limit range? {{not done}}&lt;br /&gt;
**Collective awkward to get at {{not done}}&lt;br /&gt;
**Throttle roll &amp;amp; governor switch? {{not done}}&lt;br /&gt;
&lt;br /&gt;
====[[Robinson R44]] ====&lt;br /&gt;
*Controls&lt;br /&gt;
**Tilting T-bar {{not done}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Core development projects]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=140124</id>
		<title>World Scenery 3.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=140124"/>
		<updated>2024-07-18T21:17:16Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Airports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
World Scenery 3.0 is a project to replace the tiled single-mesh World Scenery 2.0 with an LoD-based approach using a regular elevation mesh, landclass texture and vector line features.&lt;br /&gt;
&lt;br /&gt;
This leverages OSG's Virtual Planet Builder and OpenStreetmap APIs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For further information:&lt;br /&gt;
&lt;br /&gt;
* [[World Scenery 3.0 roadmap]]&lt;br /&gt;
* [[World Scenery 3.0 rendering]]&lt;br /&gt;
* [[World Scenery 3.0 coastlines]]&lt;br /&gt;
* [[WS3.0 Performance Testing]]&lt;br /&gt;
* [[Howto:Create WS3.0 terrain]]&lt;br /&gt;
* [[Virtual Planet Builder]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Currently Available Scenery ==&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
Scenery is currently not distributed using the official Terrasync, Nia provides a terrasync compatible download, point your terrasync client to https://de1mirror.flightgear.org/ws3/ to make use of it. As of writing (2024-01-15) it contains all of the sceneries below (duplicates removed) and will get updated when a new Airports package is made and when Wayne provides her with new US scenery. If you don't wanna deal with changing your terrasync settings, you can always download sections of scenery via the links individually and added to your [[FG SCENERY|scenery path]].  If you set these in your scenery path ahead of any other scenery, it will pick up osm2city, scenery objects etc. from the underlying scenery as well.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Currently Available World Scenery 3.0&lt;br /&gt;
!Scenery&lt;br /&gt;
!Area&lt;br /&gt;
!Size &lt;br /&gt;
!Bottom Left&lt;br /&gt;
!Top Right&lt;br /&gt;
!Area (degrees^2)&lt;br /&gt;
!Landclass Source&lt;br /&gt;
!Landclass Resolution (m)&lt;br /&gt;
!Raster format&lt;br /&gt;
!Comments&lt;br /&gt;
!Osm2city Scenery for WS3&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1EapHG6qEYU6CWdXnp0_aqjUaX61Lk5EL/view?usp=sharing WS30_UK]&lt;br /&gt;
|UK and Eire&lt;br /&gt;
|1.5GB&lt;br /&gt;
| -11,49&lt;br /&gt;
|1,60&lt;br /&gt;
|121&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG&lt;br /&gt;
|Includes detailed roads and water features.  &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/120QOxfTWEm6EBmjK0eCNb07hrm3clavi/view?usp=sharing NL (terrain only)]&lt;br /&gt;
|Amsterdam and Lelystad&lt;br /&gt;
|716MB (ca. 8GB uncompressed)&lt;br /&gt;
|2,50&lt;br /&gt;
|10,53&lt;br /&gt;
|24&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG&lt;br /&gt;
|Includes high resolution water raster from OpenStreetMap.  Check out the canals!&lt;br /&gt;
|[https://drive.google.com/file/d/13inL4UqSyvRh5FVq62quVOYXnlEhxU1G/view?usp=sharing contains osm2city stuff incl. trees etc. also contains the static objects from Terrascync]. NB: contains also the terrain - no need to download the terrain seperatly (as per first column). Use with the new airport download and do NOT run on top of WS2.0 scenery.&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1MrYuDKbMl4WhCEq9gnnt8Tz61lTAScvD/view?usp=share_link WS_Alps]&lt;br /&gt;
|&lt;br /&gt;
|49MB&lt;br /&gt;
|6,45&lt;br /&gt;
|8,47&lt;br /&gt;
|4&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1x-kuCTfyMWddTi0fbr_nl41LR41Ylvwb/view?usp=share_link WS30_MTQ]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG&lt;br /&gt;
|Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|[https://drive.google.com/file/d/1QtojSTbnAAfkMzirQHnDJWbBDGOtnwIK/view?usp=sharing osm2city buildings, trees, maritime, pylons etc.] (ca. 40 MB).&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/14kbbgXbofDmqxho-bMCfOG4jDwcDqwBd/view?usp=share_link WS30_MTQ_25m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|PNG&lt;br /&gt;
|Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1-LS3yQZ0OkWX38Ne89n69wtrT7SreV69/view?usp=sharing WS_MTQ_5m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|8MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG&lt;br /&gt;
|Includes high resolution water raster from OpenStreetMap. Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1Um7WC8h8Y4BlwgoVSd2xoVO5gTd3E-bI/view?usp=sharing Switzerland_5m]&lt;br /&gt;
|Switzerland plus small border&lt;br /&gt;
|1.4 GB (ca. 7 GB unzipped)&lt;br /&gt;
| 5.75,45.75&lt;br /&gt;
| 10.75,48&lt;br /&gt;
|10&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG&lt;br /&gt;
|By mistake taken default airports. If you are using Nia's updated airports, then it will most often work fine, but there might be residuals with osm2city (e.g. tree on APRON).&lt;br /&gt;
|included&lt;br /&gt;
|-&lt;br /&gt;
|[https://de1mirror.flightgear.org/hosting/wayne/ WS3.0 USA]&lt;br /&gt;
|USA&lt;br /&gt;
|200 to 400 KB (zipped)&lt;br /&gt;
| 125,48&lt;br /&gt;
| 81,24&lt;br /&gt;
|&lt;br /&gt;
|NLCD, Tree Canopy Data&lt;br /&gt;
|30&lt;br /&gt;
|&lt;br /&gt;
|by state&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/SP-NTX/PolandWS30/ Poland]&lt;br /&gt;
|Poland&lt;br /&gt;
|1.2GiB&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Airports ===&lt;br /&gt;
In addition to the selected areas above, global up-to-date WS3.0 airports have been built. You can find them [https://de1mirror.flightgear.org/ws3/ here]&lt;br /&gt;
&lt;br /&gt;
=== Scenery Files Placement ===&lt;br /&gt;
Uncompress the downloaded scenery files into a folder of your choice, such as E:\MySceneryFolder. To be recognized by FlightGear, the selected scenery (from the table above) must be located in a folder with a &amp;quot;vpb&amp;quot; subfolder, such as (EX: C:\mysceneryfolder\hawaii\vpb). The scenery files above are compressed and include the &amp;quot;vpb&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
Using the FlightGear [[FlightGear_Qt_launcher]] both the terrain and the airport are &amp;quot;installed&amp;quot; by going to tab &amp;quot;Add-ons&amp;quot; and then add the respective folders to &amp;quot;Additional scenery folders&amp;quot;. When adding an additional scenery folder, you need to point to the folder immediately above the &amp;quot;vpb&amp;quot; subfolder. &lt;br /&gt;
&lt;br /&gt;
If you add the airports the first time you might have to close the launcher and reopen it again to get the navigation data loaded properly into the session.&lt;br /&gt;
&lt;br /&gt;
== Running World Scenery 3.0 ==&lt;br /&gt;
To run WS3.0 you need to set the &amp;lt;code&amp;gt;/scenery/use-vpb&amp;lt;/code&amp;gt; property to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; at startup.  Either set &amp;lt;code&amp;gt;--prop:/scenery/use-vpb=true&amp;lt;/code&amp;gt; on your command-line, or in the Launcher in &amp;quot;Settings&amp;quot; -&amp;gt; &amp;quot;Rendering&amp;quot; (you might need to click on &amp;quot;Show more&amp;quot; on the right side to see the choice for &amp;quot;Scenery version&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
WS3.0 can use a lot of memory - significantly more than WS2.0.  You can control the memory usage with the following properties:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/sim/rendering/max-paged-lod&amp;lt;/code&amp;gt; controls the minimum number of objects that will be kept in memory.  The default setting is 200.&lt;br /&gt;
* &amp;lt;code&amp;gt;/sim/rendering/plod-minimum-expiry-time-secs&amp;lt;/code&amp;gt; controls how long objects remain loaded for after they are no-longer in view.  The default value is 180 (3 minutes).&lt;br /&gt;
&lt;br /&gt;
Reducing these properties will reduce the memory footprint of WS3.0.&lt;br /&gt;
&lt;br /&gt;
If you have lots of spare cores, you can run multiple threads to load scenery by setting &amp;lt;code&amp;gt;/sim/rendering/database-pager/threads&amp;lt;/code&amp;gt; to a number greater than 4 on startup.  E.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/database-pager/threads=8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== WS 2.0 scenery might still be needed ===&lt;br /&gt;
To have airports displayed plus some of the default scenery objects, you might still want to have the WS 2.0 scenery for the same area installed.&lt;br /&gt;
&lt;br /&gt;
However, if you want updated airports, checkout the global WS3.0 airports above. To avoid collisions you need to not have any WS2.0 airports enabled if you use these.&lt;br /&gt;
&lt;br /&gt;
=== Using osm2city ===&lt;br /&gt;
WS3.0 has built-in support for OpenStreetMap roads, so you should not have it enabled in rendering settings.&lt;br /&gt;
&lt;br /&gt;
You have 2 options:&lt;br /&gt;
&lt;br /&gt;
* If you have WS2.0 world scenery, then it already contains osm2city buildings etc. You can just use these and live with slight elevation offsets.&lt;br /&gt;
* The other option is to use the provided osm2city scenery in the table above instead. If doing so you need to makes sure that WS2.0 osm2city has not been downloaded (or delete the folders manually). E.g. if you are using [[TerraMaster]] then you can remove the ticks in Settings for &amp;quot;Buildings&amp;quot;, &amp;quot;Pylons&amp;quot; and &amp;quot;Roads&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Using the explicitly provided osm2city scenery gives you trees in gardens/parks and some improvements only available on NEXT.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Zayamatias/Adding_HID_devices_to_FlightGear&amp;diff=139780</id>
		<title>User:Zayamatias/Adding HID devices to FlightGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Zayamatias/Adding_HID_devices_to_FlightGear&amp;diff=139780"/>
		<updated>2024-04-23T21:41:23Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Understanding how data is received and processed by your device: */ change the shebang to work on more distros (such as NixOS)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Adding HID devices to FlightGear''' hopes to explain how to set-up any HID device to work with [[FlightGear]] in a step-by-step easy to follow guide, it is my belief that any HID can and will work with FlightGear&lt;br /&gt;
&lt;br /&gt;
First disclaimer: The HID subsystem seems to be working only under Linux and MacOS, I am not sure if one day it will work in Windows. &lt;br /&gt;
Second Disclaimer: This guide was done under an Ubuntu distribution, this means that other distros may vary slightly. &lt;br /&gt;
Last but not least: I take no responsibility in the unlikely event of you breaking your HID device by using this guide&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
Before starting, there are a couple of tools you need to install:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hidviz/hidviz HIDVIZ]&lt;br /&gt;
*: This tool will allow you to have a look at the inner workings of your HID device, I'll talk about it later.&lt;br /&gt;
* [https://code.visualstudio.com/ VS Code]&lt;br /&gt;
*: I use this for creating the XMLfiles and the [[Nasal]] code, as it has very nice extensions for this, but this is not mandatory and you can use anything you are used to.&lt;br /&gt;
* Python&lt;br /&gt;
*: I've created some quick and dirty tools under Python to test the device, so make sure Python (3.9 at least) is installed in your system if you want to use them.&lt;br /&gt;
&lt;br /&gt;
== The Device ==&lt;br /&gt;
&lt;br /&gt;
For this guide, I'll be using the [https://www.logitechg.com/en-gb/products/flight/flight-simulator-cockpit-radio-panel.945-000011.html Saitek/Logitech radio panel] as an example that would hopefully help you with any other device.&lt;br /&gt;
&lt;br /&gt;
So let the fun begin!&lt;br /&gt;
&lt;br /&gt;
== Understanding what's the name of the device ==&lt;br /&gt;
&lt;br /&gt;
Start your PC and go to the terminal, do not connect any device yet, and let's see what has been detected in the USB connections:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
lsusb&lt;br /&gt;
Bus 002 Device 003: ID 045b:0210 Hitachi, Ltd &lt;br /&gt;
Bus 002 Device 002: ID 045b:0210 Hitachi, Ltd &lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 012: ID 138a:00ab Validity Sensors, Inc. &lt;br /&gt;
Bus 001 Device 011: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse&lt;br /&gt;
Bus 001 Device 008: ID 258a:0001 SINO WEALTH USB KEYBOARD&lt;br /&gt;
Bus 001 Device 005: ID 214b:7250 Huasheng Electronics USB2.0 HUB&lt;br /&gt;
Bus 001 Device 003: ID 04f2:b669 Chicony Electronics Co., Ltd HP HD Camera&lt;br /&gt;
Bus 001 Device 013: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)&lt;br /&gt;
Bus 001 Device 004: ID 045b:0209 Hitachi, Ltd &lt;br /&gt;
Bus 001 Device 002: ID 045b:0209 Hitachi, Ltd &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By issuing the 'lsusb' command you can see what the PC has detected as connected devices, no sign yet of my radio panel, so let's connect it now and issue the same command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
lsusb&lt;br /&gt;
Bus 002 Device 003: ID 045b:0210 Hitachi, Ltd &lt;br /&gt;
Bus 002 Device 002: ID 045b:0210 Hitachi, Ltd &lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 012: ID 138a:00ab Validity Sensors, Inc. &lt;br /&gt;
Bus 001 Device 011: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse&lt;br /&gt;
Bus 001 Device 008: ID 258a:0001 SINO WEALTH USB KEYBOARD&lt;br /&gt;
Bus 001 Device 005: ID 214b:7250 Huasheng Electronics USB2.0 HUB&lt;br /&gt;
Bus 001 Device 003: ID 04f2:b669 Chicony Electronics Co., Ltd HP HD Camera&lt;br /&gt;
Bus 001 Device 013: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)&lt;br /&gt;
Bus 001 Device 014: ID 06a3:0d05 Saitek PLC Pro Flight Radio Panel&lt;br /&gt;
Bus 001 Device 004: ID 045b:0209 Hitachi, Ltd &lt;br /&gt;
Bus 001 Device 002: ID 045b:0209 Hitachi, Ltd &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Interestingly, I now see the ''Bus 001 Device 014: ID 06a3:0d05 Saitek PLC Pro Flight Radio Panel'' being shown in my connected devices.&lt;br /&gt;
&lt;br /&gt;
If your device does not show up, make sure that it is properly connected, and powered if needed, and as a last resort try to see if it is connectable to any other PC. If still it does not show, then either probably it is not an HID device, or it is not working at all.&lt;br /&gt;
&lt;br /&gt;
So now, save the name ''Saitek PLC Pro Flight Radio Panel'', we will need it afterwards.&lt;br /&gt;
&lt;br /&gt;
== Making sure your Linux user has full access to the device ==&lt;br /&gt;
&lt;br /&gt;
One of the issues with Linux and HID devices is user permissions, Linux is quite secure and usually will let a specific subset of users use the HID device, so let's make sure your user has access to this particular one.&lt;br /&gt;
&lt;br /&gt;
Let's go back to the 'lsusb' output from earlier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Bus 001 Device 014: ID 06a3:0d05 Saitek PLC Pro Flight Radio Panel&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
See that there are 2 hexadecimal numbers in there: '''06a3:0d05 '''? The part before the colon is the vendor id (or VID for shorts) and the second one is the product ID (or PID) for shorts. The first one will change depending on the manufacturer of the device, you can check [https://the-sz.com/products/usbid/index.php?v=0x06A3&amp;amp;p=0d05&amp;amp;n= here if you're curious].&lt;br /&gt;
&lt;br /&gt;
Now, keep those numbers somewhere safe, we will need them.&lt;br /&gt;
&lt;br /&gt;
One of the first parameters to have access to a HID device is to make sure that the user belongs to a group we can refer to, for example in Ubuntu, if your user has to have access to joysticks (as any kind of gaming device) then it has to be added to the 'js' group, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
usermod -a -G examplegroup exampleusername&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where ''examplegroup'' is ''js'' in our case and ''exampleusername'' is your Linux user. You will need to run this as root, so add the 'sudo' prefix before the command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo usermod -a -G examplegroup exampleusername&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember this 'sudo' for later on.&lt;br /&gt;
&lt;br /&gt;
Ok, so now let's make sure your user belongs to the js group:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
groups&lt;br /&gt;
pi adm dialout cdrom sudo dip plugdev lpadmin lxd sambashare usb wireshark js&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I can see my user's last group is js, well done, one thing less.&lt;br /&gt;
&lt;br /&gt;
Now we have to make sure that your device is recognized as a joystick, for this, you need to create a new udev rule. Do not worry about what this means exactly (although you can read about it at [https://opensource.com/article/18/11/udev Opensource.com])&lt;br /&gt;
&lt;br /&gt;
We need to tell your Linux install that the Saitek device is a joystick (fun fact, my Linux install though the panel was a mouse, and moving the dials would move the actual mouse...) :&lt;br /&gt;
&lt;br /&gt;
There are several ways you can do this but this one works for me:&lt;br /&gt;
&lt;br /&gt;
Open the (or create a new) rule file under ''/etc/udev/rules.d/'', I have called it ''00-local.rules''&lt;br /&gt;
&lt;br /&gt;
so, let's go for it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
nano /etc/udev/rules.d/00-local.rules&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will open an editor (nano), feel free to use any editor, just remember that you have to be root to be able to save the file. &lt;br /&gt;
&lt;br /&gt;
Add the following line to your file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;input&amp;quot;, ATTRS{idVendor}==&amp;quot;06a3&amp;quot;, ATTRS{idProduct}==&amp;quot;0d05&amp;quot;, ENV{ID_INPUT_JOYSTICK}=&amp;quot;1&amp;quot;,ENV{ID_INPUT_MOUSE}=&amp;quot;0&amp;quot;, TAG+=&amp;quot;uaccess&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now are saying to Linux that the device with VID 06a3 and PID 0d05 is a joystick and not a mouse (do those numbers ring a bell?)&lt;br /&gt;
&lt;br /&gt;
Just for completion's sake, there's another possibility to do this, alas less 'secure' by Linux standards. You can create a new file:&lt;br /&gt;
''/etc/udev/rules.d/99-hid.rules'' and in it add the following lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;06a3&amp;quot;, ATTRS{idProduct}==&amp;quot;0d05&amp;quot;, MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
KERNEL==&amp;quot;hidraw*&amp;quot;, ATTRS{busnum}==&amp;quot;1&amp;quot;, ATTRS{idVendor}==&amp;quot;06a3&amp;quot;, ATTRS{idProduct}==&amp;quot;0d05&amp;quot;, MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will give anyone access to the device in question (and hence less secure in Linux terms).&lt;br /&gt;
&lt;br /&gt;
So now we have setup the device so it is a joystick and your user can access it. Let's go and play with it:&lt;br /&gt;
&lt;br /&gt;
== Understanding your device's Inputs and outputs ==&lt;br /&gt;
&lt;br /&gt;
Make sure your device is connected and powered if needed, Once you're sure, launch hidviz:&lt;br /&gt;
&lt;br /&gt;
(I have compiled the version from the link I've put in the tools section, I won't be explaining how to build it since it is already explained in the GitHub page)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
./hidviz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will present you with the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Hidviz-device-selector.png|Screenshot of hidviz tool main screen]]&lt;br /&gt;
&lt;br /&gt;
Click on 'Select Device', this will ask you for your password to gain root access if you have not run the command as 'sudo'&lt;br /&gt;
&lt;br /&gt;
[[File:Hidviz-device-selector-2.png|Device selector from hidviz]]&lt;br /&gt;
&lt;br /&gt;
You should see the Saitek pro panel there, select it:&lt;br /&gt;
&lt;br /&gt;
[[File:Hidviz-device-descriptor-saitek-radio-panelpng.png|Hiviz showing the HiD descriptor for the Saitek radio panel]]&lt;br /&gt;
&lt;br /&gt;
As you can see, there are 24 buttons (bits) (top section Collection/Input) and there seem to be 2 features. One containing 20 (report count) 8-bit values (report size) with a maximum logic value of 255 and then another report of 14 times 1-bit values (fun fact, when I started with the HID devices I didn't use hidviz, so I'm intrigued by this second feature report which I was not aware of!).&lt;br /&gt;
&lt;br /&gt;
For completion, HID devices (as far as I am aware) have 3 types of reports, input (which is data sent from device to PC) output (which is data sent from PC to device) and feature, which seems to be also in the PC to device category.  As you can see, here you have 1 input (buttons) 2 features (we'll talk about these later) and a padding of 2 bits, this is there because usually reports need to be of a specific size (multiplier of 24 if I remember correctly), if you do your maths: 24bits + 20*8 (160 bits) + 14 bits = 198 + 2 padding bits  = 200 bits in total, ok it does not add up, go figure, but this is not the only weird thing about this descriptor, look at the actual features described: water cooling device! either Saitek devs had a great sense of humor or they didn't spend much time figuring out how to do proper HID reports. In any case, I was expecting also to have an output report instead of a feature report and each report with its unique ID. Saitek: some improvements are needed here! All of this to say: '''HID is a big grey area amongst manufacturers, so your levels of patience to make the device work may vary'''&lt;br /&gt;
&lt;br /&gt;
If the descriptor would have been set up properly, you should have seen something like this for the output reports: (This is for one of my custom devices):&lt;br /&gt;
&lt;br /&gt;
[[File:Hidviz-device-descriptor-fgmod.png|Hidvizz showing the fgmod descriptor]]&lt;br /&gt;
&lt;br /&gt;
This would have allowed you to easily enter values in the output report and understand how the device treated data, alas, it is not the case for the Saitek device, so let's go Python!&lt;br /&gt;
&lt;br /&gt;
== Understanding how data is received and processed by your device: ==&lt;br /&gt;
&lt;br /&gt;
So we now know a little bit more about the device, it has 24 buttons, and it has 20 possible inputs (spoiler: the Saitek panel has 4*5 segment displays, could it be?? Hmmmm...)&lt;br /&gt;
&lt;br /&gt;
Let's try Python.&lt;br /&gt;
&lt;br /&gt;
First, you need to check which hidraw Linux device corresponds to your actual device, Linux will map your device under ''/dev/hidrawx'' and to find it, create  script (call it findhid.sh):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
FILES=/dev/hidraw*&lt;br /&gt;
for f in $FILES&lt;br /&gt;
do&lt;br /&gt;
  FILE=${f##*/}&lt;br /&gt;
  DEVICE=&amp;quot;$(cat /sys/class/hidraw/${FILE}/device/uevent | grep HID_NAME | cut -d '=' -f2)&amp;quot;&lt;br /&gt;
  printf &amp;quot;%s \t %s\n&amp;quot; $FILE &amp;quot;$DEVICE&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
chmod 775 findhid.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And finally execute it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
./findhid.sh&lt;br /&gt;
hidraw0 	 SYNA3083:00 06CB:8265&lt;br /&gt;
hidraw1 	 ELAN2514:00 04F3:288A&lt;br /&gt;
hidraw2 	 SINO WEALTH USB KEYBOARD&lt;br /&gt;
hidraw3 	 SINO WEALTH USB KEYBOARD&lt;br /&gt;
hidraw4 	 PixA琀 USB Optical Mouse&lt;br /&gt;
hidraw7 	 Logitech Logitech Flight Radio Panel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
so, this means that our Saitek panel is linked to /dev/hidraw7, nice!&lt;br /&gt;
&lt;br /&gt;
Now, open an editor and create hidtest.py:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
def send_data_to_hidraw(data, hidraw_path):&lt;br /&gt;
    try:&lt;br /&gt;
        # Open the HIDRAW device&lt;br /&gt;
        hidraw = os.open(hidraw_path, os.O_RDWR | os.O_NONBLOCK)&lt;br /&gt;
        &lt;br /&gt;
        # Write data to the HIDRAW device&lt;br /&gt;
        os.write(hidraw, bytes(data))&lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;Data sent successfully to HIDRAW device.&amp;quot;)&lt;br /&gt;
        &lt;br /&gt;
        # Close the HIDRAW device&lt;br /&gt;
        os.close(hidraw)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(&amp;quot;Error:&amp;quot;, e)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # Define your data to send&lt;br /&gt;
    data_to_send = [0x01, 0x02, 0x03,0x01, 0x02, 0x03,0x01, 0x02, 0x03,0x01, 0x02, 0x03,0x01, 0x02, 0x03,0x01, 0x02, 0x03,0x01, 0x02, 0x03]  # Example data&lt;br /&gt;
    &lt;br /&gt;
    # Specify the path to your HIDRAW device&lt;br /&gt;
    hidraw_path = &amp;quot;/dev/hidraw7&amp;quot;  # Replace with the actual path to your HIDRAW device&lt;br /&gt;
    &lt;br /&gt;
    # Send the data to the HIDRAW device&lt;br /&gt;
    send_data_to_hidraw(data_to_send, hidraw_path)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two important things: change hidraw_path to your devices' correct link and make sure that the data_to_send variable is of the same length as the report we found in hidvix, in this case, we have 20 times one byte, noted in hex format in Python (0xXX).&lt;br /&gt;
&lt;br /&gt;
Small clarification, as you can see I'm sending 21 bytes, the reason behind this is that the first byte indicates the report_id you're sending to, in the case of the Saitek panel, there's no real report id, so whatever you put in the first byte will still work. Make sure you consider this when testing your device.&lt;br /&gt;
&lt;br /&gt;
Now run the Python script&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
python3 hidtest.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nothing happened? well, this could be down to several factors:&lt;br /&gt;
&lt;br /&gt;
- No permissions (go back to the start)&lt;br /&gt;
- The report is of incorrect size (try again, remember you are sending bytes, so a report of 8 times 1 bit, equals a nibble (half byte), and the same goes for bits. The safest thing to do is to count the number of bits and then divide by 8, this is the number of bytes you ill need to send)&lt;br /&gt;
&lt;br /&gt;
If you are lucky you should go from this:&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-radio-off.jpg|Saitek radio panel with all digits off|800x800px]]&lt;br /&gt;
&lt;br /&gt;
To this:&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-radio-on.jpg|Saitek radio panel with all digits on|800x800px]]&lt;br /&gt;
&lt;br /&gt;
Congratulations, you just sent the first pieces of data to your device. As you can see it shows the numbers in the order we sent in the report, or so it looks like.&lt;br /&gt;
&lt;br /&gt;
Now, it is a game of sending reports with different values and understanding what's your device's reaction, for example, if I sent just zeroes:&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-all-zeros.jpg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
Now the fun starts. &lt;br /&gt;
&lt;br /&gt;
So this is a radio panel right, aren't radio frequencies supposed to have a 'dot' somewhere, but hey, how do I tell the device I want to have a dot? Let's think, why do I have the possibility to send 20 bytes, with a maximum value of 255? Makes no sense right, watch byte represents a number in the panel that can go up to 9 (0 to 9), so anything else is overkill, unless...&lt;br /&gt;
&lt;br /&gt;
Let's try to send something over 9, for example the second byte in data_to send I put it as 0x0A (A is 10 in hex), what happened there?&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-all-zeros first-off.jpg|Saitek radio panel showing all zeros except first digit switched off|800x800px]]&lt;br /&gt;
&lt;br /&gt;
My first digit just switched off!! Interesting so now I can show numbers of less than 5 digits (XPDR, DME, hmm...) because I can switch any digit off as I please, let's try that again:&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-alternate-zeros.jpg|Saitek radio panel showing alternate zeroes and off|800x800px]]&lt;br /&gt;
&lt;br /&gt;
Nice!&lt;br /&gt;
&lt;br /&gt;
So we now know, 0 to 9 is the digit in question, 10 switches off the digit, but what about the 'dot' ???&lt;br /&gt;
&lt;br /&gt;
Let's send 11 (0x0B):&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-all-zeros first-off.jpg|Saitek radio panel showing all zeros except first digit switched off|800x800px]]&lt;br /&gt;
&lt;br /&gt;
Disappointment, nothing happens, let's keep trying other values.&lt;br /&gt;
&lt;br /&gt;
Hey what's this?&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-all-ones_and_dots.jpg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
I was at 209, so what if I send all 208 (0xD0)&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-all-zeroes_and_dots.jpg|Saitek radio panel showing all zeroe and dots|800x800px]]&lt;br /&gt;
&lt;br /&gt;
Ok! So if I want to add a dot to any digit, I need to add 0xD0 the the value, so 0xD0 for 0, 0xD1 for one and so on)&lt;br /&gt;
&lt;br /&gt;
What if I continue?&lt;br /&gt;
&lt;br /&gt;
This is what happens with 224 (0xE0)&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-all-dashes.jpg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
I get a 'dash'!&lt;br /&gt;
&lt;br /&gt;
And there's nothing else interesting in the tests, the numbers repeat a lot, but basically when now:&lt;br /&gt;
&lt;br /&gt;
0 to 9 -&amp;gt; the numbers in each digit&lt;br /&gt;
10 -&amp;gt; Switch off the digits&lt;br /&gt;
208-217 -&amp;gt; The numbers with a dot (to the right)&lt;br /&gt;
224 -&amp;gt; A dash&lt;br /&gt;
&lt;br /&gt;
Important point, we have not used any proprietary drivers or anything that could be linked to Saitek's proprietary development (AFAIK, I'm not a lawyer), we're just sending data to the device.&lt;br /&gt;
&lt;br /&gt;
Now that we know the logic, we're ready to go to the next step, make it work in FlightGear! [To be continued in next post]&lt;br /&gt;
&lt;br /&gt;
So now we have understood (more or less) how our device works, how we can send data to it, and what this data does.&lt;br /&gt;
&lt;br /&gt;
Let's fire up FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Making sure FlightGear detects the device ==&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is to launch FlightGear with debug on, to do this make sure you set the log level to debug via the &amp;lt;code&amp;gt;--log-level=debug&amp;lt;/code&amp;gt; flag, do this either in the command line or if you use the launcher, in the additional settings.&lt;br /&gt;
&lt;br /&gt;
I would also recommend you to capture the output of the log:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./dnc-managed/run_fgfs.sh --launcher 2&amp;gt;&amp;amp;1 | tee log.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is my command, yours may be slightly different, the important part is the ''2&amp;gt;&amp;amp;1 | tee log.txt'' at the end of it.&lt;br /&gt;
&lt;br /&gt;
launch FG and let the log start capturing all the information we need.&lt;br /&gt;
&lt;br /&gt;
Once the airplane's cockpit is showing up, you can shut down FlightGear, that's all we need for now.&lt;br /&gt;
&lt;br /&gt;
Open the ''log.txt'' and start looking for the name of your device, you should see things like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
  225.20 [DBUG]:input      name=&amp;lt;null&amp;gt;, node=&amp;lt;null&amp;gt;&lt;br /&gt;
  225.20 [DBUG]:input      name=Logitech Logitech Flight Radio Panel, node=/dev/input/event23&lt;br /&gt;
&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-0 modifiers=0 value=1&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-1 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-2 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-3 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-4 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-5 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-6 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-7 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-8 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-9 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-266 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-267 modifiers=0 value=1&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-268 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-269 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-270 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-271 modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-left modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-right modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-middle modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-side modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-extra modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-forward modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-back modifiers=0 value=0&lt;br /&gt;
  225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-task modifiers=0 value=0&lt;br /&gt;
  225.26 [DBUG]:input      using InputDevice Logitech Logitech Flight Radio Panel_0&lt;br /&gt;
&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:1&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown, bits: 0:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:2&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-1, bits: 8:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:3&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-2, bits: 16:8, report=0&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:joystick, bits: 24:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:5&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-3, bits: 32:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:6&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-4, bits: 40:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:7&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-5, bits: 48:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:8&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-6, bits: 56:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:9&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-7, bits: 64:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:10&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-8, bits: 72:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:11&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-9, bits: 80:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:12&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-10, bits: 88:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:13&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-11, bits: 96:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:14&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-12, bits: 104:8, report=0&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:15&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-13, bits: 112:8, report=0&lt;br /&gt;
  225.29 [WARN]:input      Unhandled HID generic desktop usage:16&lt;br /&gt;
  225.29 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-14, bits: 120:8, report=0&lt;br /&gt;
  225.29 [WARN]:input      Unhandled HID generic desktop usage:17&lt;br /&gt;
  225.29 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-15, bits: 128:8, report=0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see from the log, there are already several interesting pieces of information:&lt;br /&gt;
&lt;br /&gt;
The device has ben recognized! ''25.20 [DBUG]:input      name=Logitech Logitech Flight Radio Panel, node=/dev/input/event23''&lt;br /&gt;
&lt;br /&gt;
It has detected the buttons ''225.26 [INFO]:input      Logitech Logitech Flight Radio Panel_0 has event button-0 modifiers=0 value=1''&lt;br /&gt;
&lt;br /&gt;
And even the feature reports '' 225.28 [WARN]:input      Unhandled HID generic desktop usage:2&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown-1, bits: 8:8, report=0''&lt;br /&gt;
&lt;br /&gt;
As you can see, we have everything under control, FG has detected the device and has detected the different buttons and feature reports. All of these are called 'events' by FlightGear.&lt;br /&gt;
&lt;br /&gt;
Important point, when we're going to be creating the properties files, we need to refer to the name you see in the logs, as strange as it sounds, you will get different buttons name not necessarily in a sequential order (things like thumb2, or button-333).&lt;br /&gt;
&lt;br /&gt;
== The properties files ==&lt;br /&gt;
&lt;br /&gt;
The way that FlightGear communicates with the devices is via XML files located under the FlightGear directory ('~/.fgfs' for most linux installs) and then under Input, with 2 different options, either 'Joysticks' or 'Event':&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
drwxr-xr-x 2 pi pi 4096 Mar 27 16:12 Event&lt;br /&gt;
drwxr-xr-x 2 pi pi 4096 Apr  1 15:49 Joysticks&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The joystick directory will hold, amongst others, the files that are created automatically by the joystick configurator within the simulator, the directory we're interested in is this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;~/.fgfs/Input/Event&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, there's no problem in having both a joystick file and an event file for the same device, I do have this for my Honeycomb alpha, where the axes are in the joystick file and the rest of the buttons in the event file (which allows me to go beyond the 32 button limitation, yes, you can use this HID way of doing things for devices over 32 buttons).&lt;br /&gt;
&lt;br /&gt;
So let's start writing. First of all, create an empty file called 'YOURDEVCIE.xml' (this is an example and the filename is not relevant as FG will read inside to understand to which device each file belongs (although I name it as the device with '-' just for clarity, for example for the Saitek panel ''Logitech-Logitech-Flight-Radio-Panel.xml'' )&lt;br /&gt;
&lt;br /&gt;
Put the XML header:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;PropertyList&amp;gt;&lt;br /&gt;
  &amp;lt;name type=&amp;quot;string&amp;quot;&amp;gt;Logitech Logitech Flight Radio Panel&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;debug-events type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/debug-events&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will indicate FG this is the file for your device, as the ''name'' tag defines it.&lt;br /&gt;
&lt;br /&gt;
If you plan to have some 'logic' in your properties file, add the nasal tags:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;PropertyList&amp;gt;&lt;br /&gt;
  &amp;lt;name type=&amp;quot;string&amp;quot;&amp;gt;Logitech Logitech Flight Radio Panel&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;debug-events type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/debug-events&amp;gt;&lt;br /&gt;
  &amp;lt;nasal&amp;gt;&lt;br /&gt;
    &amp;lt;open&amp;gt;&lt;br /&gt;
      &amp;lt;![CDATA[]]&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your basic file is starting to get some form. Now we need to start defining what do we do when each of the events is triggered:&lt;br /&gt;
I'm going to paste below the bindings (that's how it's called in FG) for the fact that you have switched the upper selector of the radio panel into 'comm1' mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;event&amp;gt;&lt;br /&gt;
    &amp;lt;desc&amp;gt;UK COMM1&amp;lt;/desc&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;button-1&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknoba&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;/instrumentation/comm/frequencies/selected-mhz&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobb&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;/instrumentation/comm/frequencies/standby-mhz&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobt&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;5&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobsw&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;/instrumentation/comm/frq-swap-btn&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobmax&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;137&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobmin&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;118&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobfstep&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;1&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobhstep&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;0.025&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&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;refreshPanels();&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/event&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do not be scared by that size! I like to make things generic, so you will see a lot of reference and proxy properties being set that would allow to handle the logic of what happens when we're in 'comm1' mode in the upper panel.&lt;br /&gt;
&lt;br /&gt;
First of all we set the property ''saitek/RP/upknoba'' to ''/instrumentation/comm/frequencies/selected-mhz''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknoba&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;/instrumentation/comm/frequencies/selected-mhz&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then set the standby frequency to the ''/saitek/RP/upknobb'' property&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobb&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;/instrumentation/comm/frequencies/standby-mhz&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the property ''/saitek/RP/upknobt'' to 5, which is the number of digits a frequency has&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobt&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;5&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the 'swap' button to change frequencies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;binding&amp;gt;&lt;br /&gt;
      &amp;lt;command&amp;gt;property-assign&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/upknobsw&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;/instrumentation/comm/frq-swap-btn&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The some max,min and incremental values, and last but not least, I call the refresh panel function (that I've created) to put the proper values in the panels:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&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;refreshPanels();&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/event&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has to be done to every single button in the device, so they act the way you expect them to do. You can check the full file at the bottom of this post.&lt;br /&gt;
&lt;br /&gt;
Ok, so we have the buttons set up, now we want the display to show the proper values:&lt;br /&gt;
&lt;br /&gt;
We use the same tag, event, only that now we have to link a property to the event, so FG will send that value to the output/feature report in the proper position.&lt;br /&gt;
&lt;br /&gt;
Before we continue, remember that in the log, we saw things like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
  225.28 [WARN]:input      Unhandled HID generic desktop usage:1&lt;br /&gt;
  225.28 [INFO]:input      Logitech Logitech Flight Radio Panel_0: add:unknown, bits: 0:8, report=0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And I did mention that the name that you saw there is the name that should be used for the event, in the case of unknown, you need to add the suffix ''-0'' for the first one, the rest will already have it ''-1, -2,-3 etc..''&lt;br /&gt;
&lt;br /&gt;
Let's add the event to the XML:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;event&amp;gt;&lt;br /&gt;
    &amp;lt;desc&amp;gt;RADIO INDICATORS&amp;lt;/desc&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;unknown-0&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;setting&amp;gt;&lt;br /&gt;
      &amp;lt;property&amp;gt;/saitek/RP/ULpanel/digit1&amp;lt;/property&amp;gt;&lt;br /&gt;
    &amp;lt;/setting&amp;gt;&lt;br /&gt;
  &amp;lt;/event&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're telling FlightGear to watch for the property ''/saitek/RP/ULpanel/digit1'' and set its value to the vendor-0 byte.&lt;br /&gt;
&lt;br /&gt;
As you can see there's a strange property there: ''saitek/RP/ULpanel/digit1''. This property is of my choice and you can create any property you want to be sent to the device. Remember that in this particular case, we have a value for each digit, so we cannot send the actual value, we have to slice it so we send each digit in the correct position.&lt;br /&gt;
&lt;br /&gt;
And then again, do the same for the rest of the events.&lt;br /&gt;
&lt;br /&gt;
Once the events have been set and saved, you can launch FG to see if it worked!&lt;br /&gt;
&lt;br /&gt;
Yes! I see the same frequencies in the panel&lt;br /&gt;
&lt;br /&gt;
[[File:Saitek-working.jpg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
as in the simulator&lt;br /&gt;
&lt;br /&gt;
[[File:FG-Radio_Panel_for_Saitek.jpg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
Of course, every time you modify the frequencies in any of the sim or panel, the other one reflects the same value as expected.&lt;br /&gt;
&lt;br /&gt;
You can have a look at [https://github.com/zayamatias/flightgear/blob/main/.fgfs/Input/Event/Logitech-Logitech-Flight-Radio-Panel.xml the complete xml file], where you can see I use nasal heavily to do some extra logic, for example, do not turn on the panel unless the contact is set on the aeroplane, how I use the swap button to select the digit when in XPDR mode, and so on. There is no limits to what you can do once you understand the properties and what you're able to do with them.&lt;br /&gt;
&lt;br /&gt;
I hope I have not forgotten anything essential and I also hope this has helped. I'm really looking forward to other devices becoming available in FG.&lt;br /&gt;
&lt;br /&gt;
This also opens the possibility of creating your own devices, have a look at my [https://github.com/zayamatias/flightgear repo].&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Airbus_A320_family/info&amp;diff=139728</id>
		<title>Airbus A320 family/info</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Airbus_A320_family/info&amp;diff=139728"/>
		<updated>2024-04-17T22:41:04Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{infobox aircraft&lt;br /&gt;
| name           = Airbus A320 family&lt;br /&gt;
| hangar         = fgaddon&lt;br /&gt;
| aircraft       = A320-family&lt;br /&gt;
| image          = A320-family.jpg&lt;br /&gt;
| image2         = A320VirtualCockpit.png&lt;br /&gt;
| alt2           = The 3d [[cockpit]] of the A320-family&lt;br /&gt;
| type           = Airliner&lt;br /&gt;
| config         = Low wing aircraft/Monoplane aircraft/Retractable gear aircraft/Tricycle landing gear aircraft&lt;br /&gt;
| propulsion     = Twinjet&lt;br /&gt;
| manufacturer   = Airbus&lt;br /&gt;
| authors        = Josh Davidson (Octal450)/legoboyvdlp/Nia/Matthew Maring (hayden2000)/Thorsten Herrmann (TH-555)/Semir Gebran (CaptB)&lt;br /&gt;
| fdm            = JSBsim&lt;br /&gt;
| status-fdm     = 4&lt;br /&gt;
| status-systems = 5&lt;br /&gt;
| status-cockpit = 5&lt;br /&gt;
| status-model   = 4&lt;br /&gt;
| ready          = checklist/canvas&lt;br /&gt;
| navbar         = 1&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This is the aircraft infobox subpage of the [[Airbus A320 family]].&lt;br /&gt;
[[Category:Aircraft infobox documentation]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_August_2020&amp;diff=139727</id>
		<title>FlightGear Newsletter August 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_August_2020&amp;diff=139727"/>
		<updated>2024-04-17T22:40:20Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
NOTES TO EDITORS&lt;br /&gt;
&lt;br /&gt;
* Headings&lt;br /&gt;
  * DO NOT DELETE HEADINGS prior to final cleanup&lt;br /&gt;
  * Current headings and their order is merely a suggestion based on what have been used earlier&lt;br /&gt;
  * Changes made to headings or structure should also be copied the Newsletter template FIXME&lt;br /&gt;
&lt;br /&gt;
* Discussion, issues and suggestions&lt;br /&gt;
  * Regarding this newsletter issue, please use the discussion page&lt;br /&gt;
  * Regarding the newsletter in general, primarily use the FlightGear Newsletter discussion page (Talk:FlightGear Newsletter)&lt;br /&gt;
  * Regarding this Newsletter template, please use FIXME&lt;br /&gt;
&lt;br /&gt;
* Final cleanup before write protecting&lt;br /&gt;
  * Remove unused headings&lt;br /&gt;
  * Remove {{Appendix}} if not used.&lt;br /&gt;
  * Update &amp;quot;Category: Changes after&amp;quot; to the FG version current at the 1st of this month&lt;br /&gt;
  * Finally remove this comment&lt;br /&gt;
  * Update [[Next Newsletter]] and [[FlightGear Newsletter]]&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PRELOAD NEWSLETTER HEADER IS LINKED TO A SANDBOX TEMPLATE! WHEN CLEANING UP PLEASE DELETE THIS MESSAGE AND CHANGE THE HEADER BELOW TO:&lt;br /&gt;
+++   {{Newsletter-header|{{#time: F | 2020-08}}}}   +++&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{User:Skybike/Template:Newsletter-header-translate|2020-08}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
''We would like to emphasize that the monthly newsletter can not live without the contributions of FlightGear users and developers. Everyone with a wiki account (free to register) is welcome to contribute to the newsletter.  If you know about any FlightGear related news or projects such as for example updated scenery or aircraft, please do feel invited to add such news to the newsletter.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
&amp;lt;!-- News about FlightGear itself.  The FlightGear mailing list and/or core developers are a good source. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''See the [[FlightGear_Newsletter_August_2020#Help_wanted|Help wanted]] section.''&lt;br /&gt;
&lt;br /&gt;
=== 2020.2 LTS release candidates ===&lt;br /&gt;
Release candidates are for the Flightgear 2020.2 LTS are available at [http://download.flightgear.org/builds/rc/ download.flightgear.org/builds/rc/]. Bugs and issues can be reported by making a [https://sourceforge.net/p/flightgear/codetickets/ ticket on Sourceforge].&lt;br /&gt;
&lt;br /&gt;
Nightly builds are also following the 2020.2 LTS branch. Nightlies will return to following the latest changes, once the large changes are stabilised in the 'next' branch that builds towards the release after 2020.2.&lt;br /&gt;
&lt;br /&gt;
===Global OSM2City build===&lt;br /&gt;
There is ongoing work on the world build of OSM2City (and a terrain build for the continent of Australia) by Nia, as well as investigations into the feasibility of distributing the world build of OSM2City using Terrasync by StuartB and the OSM2City team.&lt;br /&gt;
&lt;br /&gt;
== New software tools and projects ==&lt;br /&gt;
&amp;lt;!-- Those not being part of FlightGear itself, like for example OpenRadar, TerreMaster or flightgear-atc.alwaysdata.net. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FGCom-mumble ===&lt;br /&gt;
[http://wiki.flightgear.org/FlightGear_Newsletter_July_2020#FGCom-mumble:_Load_tests_successful.2C_RDF_implemented.2C_Live-Status_page_added The last issue mentioned] the work on a  new [https://github.com/hbeni/fgcom-mumble mumble based FGCom] implementation. The development is discussed in the {{forum link|title=FGCom-mumble|f=32|t=37644}}. Releases can be downloaded from [https://github.com/hbeni/fgcom-mumble github].&lt;br /&gt;
&lt;br /&gt;
==== current state ====&lt;br /&gt;
Mid-august the development reached [https://github.com/hbeni/fgcom-mumble/releases/tag/v0.4.0 release 0.4.0] which should propose a first complete draft. Some further testing was conducted and bugs ironed out. Testing was mainly conducted with custom tools, the stock C172p, the C182s and ATC-Pie ([https://gitlab.com/atc-pie/atc-pie/-/tree/dev dev version] has fgcom-mumble support). Also small feature enhancements got implemented and, most importantly, 8.33kHz channel names do now work properly. To make things easier, core documentation was translated to german.&lt;br /&gt;
&lt;br /&gt;
After the previous 0.3.0 release some work has been added, mostly cleaning up some internals; but there is also a very basic HF and UHF radio model now, as well as an implementation of the mumble plugin updater, which will check the github page for new releases and notifies the user if there is one.&lt;br /&gt;
&lt;br /&gt;
'''To summarize the main features currently working:'''&lt;br /&gt;
* Simulates a continuous frequency spectrum: tune and use any frequency, regardless where you are&lt;br /&gt;
** Simple HF radio model (line of sight+skywave propagation, range depending on output power)&lt;br /&gt;
** Simple VHF radio model (line of sight, range depending on output power)&lt;br /&gt;
** Simple UHF radio model (line of sight, range depending on output power)&lt;br /&gt;
** 8.33 channel support&lt;br /&gt;
* 910.00 Echotest&lt;br /&gt;
* ATIS recording/playback&lt;br /&gt;
* Landline support&lt;br /&gt;
* RDF support in ATC-Pie&lt;br /&gt;
&lt;br /&gt;
==== open tasks ====&lt;br /&gt;
To conduct further and broader testing, we probably need to wait for mumble 1.4.0. As this is probably still a long time out, early testing under linux is welcome.&lt;br /&gt;
Also, i still have no idea if the windows plugin loads, so someone with a windows build environment is most appreciated to compile mumble and try the plugin.&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/hbeni/fgcom-mumble/issues issue tracker] still lists some points, but those are either minor ones or are not implementable at the current time. Nonetheless, please see trough the items, maybe you can lend a hand. Also, some code review is welcome!&lt;br /&gt;
&lt;br /&gt;
==== trying it out yourself ====&lt;br /&gt;
As mumble 1.4.0 is still in the pipeline, you need a self compiled mumble (and murmur) from the [https://github.com/Krzmbrzl/mumble/tree/plugin-API Krzmbrzl:plugin-API branch] to test this out. If you additionally want to run the server side bots, you also need [https://github.com/bkacjios/lua-mumble lua-mumble].&lt;br /&gt;
Detailed installation descriptions are laid out in the readmes.&lt;br /&gt;
&lt;br /&gt;
It would be cool if someone with a public server could try to setup that, so i can verify the readmes are correct and we get an online test bed.&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
&amp;lt;!-- News about new and upgraded aircraft and related stuff.  The official forum and other ones usually are a good source for this. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&lt;br /&gt;
&lt;br /&gt;
====Diamond DA 40 with G1000====&lt;br /&gt;
FGUK have created an updated {{wikipedia|Diamond_DA40_Diamond_Star|Diamond DA 40}} with the [[FG1000|FG1000]] glass cockpit. See the [https://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=37220 forum thread] for details and [http://fguk.me/hangar/download/6-civil-piston/573-diamond-da-40 download].&lt;br /&gt;
* ALS Glass and fuselage effects including rain and livery specific levels of reflection.&lt;br /&gt;
* FG1000 glass cockpit.&lt;br /&gt;
* Entire cockpit panel layout updated.&lt;br /&gt;
* MP Passenger option. Optional wheel spats. MP Sound. 12 liveries.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|a6wZten0np0|480px||Flight in the Diamond DA40 with the new [[FG1000]] from LIDT to LIPX in Flightgrear 2020.1 by FGUK}}&lt;br /&gt;
&lt;br /&gt;
FGAddon currently has 2 versions with partial updates by maintainer Helijah (Emmanuel Baranger). Both are currently updated with FG1000 panel options, but do not have updates with ALS glass cockpit and rain etc. yet:&lt;br /&gt;
* YaSim: ''Diamond DA40 (YaSim)'': Normal and copilot variants. To switch between FG1000 use ''in-sim menu &amp;gt; Diamond DA 40 &amp;gt; Panel mode''.&lt;br /&gt;
* JSBSim: ''Diamond DA40 NG VFR (JSBSim)'': VFR, FG1000 panel, and IFR variants. &lt;br /&gt;
&lt;br /&gt;
====Eurocopter EC145====&lt;br /&gt;
Litzi, StuartC and FGUK have released a GPL update to the {{wikipedia|Eurocopter_EC145|EC145}}, version 1.3. The EC145 is a fully glass cockpit helicopter. See the [https://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=24800 forum thread] for more information, screenshots, and download.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TwPBvVvFlI4|480px||How to manually start the [https://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=24800 EC145] by FGUK. Note the ALS rain effect. The EC145 also features ALS cockpit shadows - which remain the recommended option in the upcoming Compositor: ALS cockpit shadows are extremely fast, can handle tinted glass, and can remain sharp compared to default shadow maps.}}&lt;br /&gt;
&lt;br /&gt;
====Eurocopter EC130 / Airbus Helicopters H130====&lt;br /&gt;
FGUK have released a GPL update to the {{wikipedia|Eurocopter_EC130|EC130 / H130}} in FGAddon fixing bugs, updating FDM/Garmin, adding ALS rotorwash and rain effects etc. B4 and T2 versions. See [http://www.fguk.me/hangar/rotary/download/13-rotary-wing/582-eurocopter-ec-h-130-fguk-edition this page] for more information, screenshots and [http://www.fguk.me/hangar/rotary/summary/13-rotary-wing/582-eurocopter-ec-h-130-fguk-edition download]. The [[Eurocopter_EC130_B4|EC130]] in FGAddon has not been updated yet. &lt;br /&gt;
  &lt;br /&gt;
{{#ev:youtube|lXj2C1lIFK8|480px||Starting and flying the FGUK version of the [http://fguk.me/hangar/rotary/download/13-rotary-wing/582-eurocopter-ec-h-130-fguk-edition EC130 / H130] by FGUK}}&lt;br /&gt;
&lt;br /&gt;
====AgustaWestland AW159 Wildcat====&lt;br /&gt;
FGUK have released an update for the {{wikipedia|AgustaWestland_AW159_Wildcat|AW159 Wildcat}}. See [https://www.youtube.com/watch?v=ZZOeIQHawEk here] for a video from early development in March. See the [https://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=37766 froum thread] for more information, screenshots, and download.&lt;br /&gt;
&lt;br /&gt;
====Boeing-Sikorsky RAH-66 Comanche====&lt;br /&gt;
FGUK have released an update for the {{wikipedia|Boeing–Sikorsky_RAH-66_Comanche|RAH-66 Comanche}}. The Comanche was a futuristic prototype reconnaissance and light-attack helicopter that never reached production phase due to being deemed too expensive. See [https://www.youtube.com/watch?v=kB5qWFq5l84 here] for a video from early development flight testing in February. See the [https://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=37595 forum thread] for more information, screenshots, and download.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Instruments === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- === New aircraft === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- === Updated aircraft === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- === Liveries === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- === Aircraft reviews === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Help wanted ==&lt;br /&gt;
{{Help wanted}}&lt;br /&gt;
&lt;br /&gt;
== AI == &lt;br /&gt;
&amp;lt;!--Looking at &amp;quot;In the hangar&amp;quot; or &amp;quot;Scenery corner&amp;quot; we really need a slogan for &amp;quot;AI&amp;quot;--&amp;gt;&lt;br /&gt;
&amp;lt;!-- === AI traffic === --&amp;gt;&lt;br /&gt;
The AI team makes FlightGear more realistic, colorful and lively every month. You can support the important development of ''Interactive Traffic'' and contribute at the FlightGear {{forum link|title=AI|f=23}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === AI scenarios === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
&amp;lt;!-- Scenery development news --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===New releases===&lt;br /&gt;
&lt;br /&gt;
====Argentina====&lt;br /&gt;
Barta has released areas of Argentina updated with OSM2City data. The latest releases can be found at [http://scenery.bartatech.net/ http://scenery.bartatech.net/]. Currently the server contains these areas: Santiago (including Valparaiso), Mendoza, Buenos Aires, complete Rosario area. The other parts only have terrain (no roads, buildings etc). The server will eventually contain all of the sceneries in the southern cone of South America: Argentina, Chile, Uruguay. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37489 forum thread] for details on this project.&lt;br /&gt;
&lt;br /&gt;
The [http://scenery.bartatech.net/ scenery.bartatech.net] server can be directly used as a terrasync server. Just use the following in the [[FlightGear_Qt_launcher|launcher]] or .fgfsrc file:&lt;br /&gt;
: ''--prop:/sim/terrasync/http-server=&amp;lt;nowiki&amp;gt;http://scenery.bartatech.net/&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
====Fernando de Noronha island, Brazil====&lt;br /&gt;
Lomar has released a build of Fernando de Noronha island and SFBN airport. The release includes new data sources for terrain, and contains new material definitions and roads. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=29182&amp;amp;start=30#p372380 forum thread] for screenshots and [http://www.mediafire.com/file/pwflzsm7y1c1hxl/fernando_de_noronha_0.2.zip/file download].&lt;br /&gt;
&lt;br /&gt;
====Valdivostock area, Russia====&lt;br /&gt;
[[User:Legoboyvdlp|J. Redpath]] has released a scenery build for the Vadivostock area. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for screenshots and github [https://github.com/legoboyvdlp/Vladivostok-fg-CustomScenery/archive/master.zip download].&lt;br /&gt;
&lt;br /&gt;
====Moscow area, Russia====&lt;br /&gt;
[[User:Legoboyvdlp|J. Redpath]] has released a scenery build for the Moscow area covering 14 tiles. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for screenshots and github [https://github.com/legoboyvdlp/Moscow-fg-CustomScenery/archive/master.zip download].=&lt;br /&gt;
&lt;br /&gt;
====Eastern China====&lt;br /&gt;
[[User:Legoboyvdlp|J. Redpath]] has released a scenery build for the eastern portion of China covering the area around ZSAM and ZSNJ airports. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for screenshots and github [https://github.com/legoboyvdlp/EastChina-fg-CustomScenery/archive/master.zip download].&lt;br /&gt;
&lt;br /&gt;
====Beijing area, China====&lt;br /&gt;
[[User:Legoboyvdlp|J. Redpath]] has released a scenery build for the area around Beijing covering 15 tiles (see ZBAA airport). See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for screenshots and github [https://github.com/legoboyvdlp/Beijing-fg-CustomScenery/archive/master.zip download].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Scenery Models === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Airports === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Land cover === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Osm2city === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Interview with a contributor == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Suggested flights == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community news ==&lt;br /&gt;
&amp;lt;!-- === FlightGear on YouTube === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- embed video as {{#ev:youtube|VCc6PwRI1LA}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Forum news === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Wiki updates === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on Youtube ===&lt;br /&gt;
{{#ev:youtube|7pdf_DR4Ku0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on Facebook ===&lt;br /&gt;
Since early December 2010, FlightGear has an [http://www.facebook.com/FlightGear official Facebook page].  If you have a Facebook account please feel free to join the page.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on Instagram ===&lt;br /&gt;
In January 2018 the [https://www.instagram.com/flightgear_sim/ @flightgear_sim Instagram account] was brought back to life. If you've got nice screenshots to be featured, feel free to {{forum link|text=contact the maintainer|t=33636}}.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on FlightSim.com ===&lt;br /&gt;
Flightgear has also a [https://www.flightsim.com/vbfs/forumdisplay.php?102-FlightGear sub-forum] on flightsim.com - just like the commercial flightsims. It is an opportunity to showcase what FG can do, get people curious and answer any questions they may have with regard to the software or the project.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer events ==&lt;br /&gt;
&amp;lt;!-- === Upcoming events === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Finished events === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == FlightGear events == --&amp;gt;&lt;br /&gt;
&amp;lt;!-- For example presence at FSWeekend --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Hardware reviews == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
&lt;br /&gt;
=== Translators needed ===&lt;br /&gt;
{|&lt;br /&gt;
| [[File:en.gif]]&lt;br /&gt;
| The FlightGear Wiki still needs help for translating it into various languages. If you are interested in making the FlightGear Wiki multilingual, you can start by looking at [[Help:Translate]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:fr.gif]]&lt;br /&gt;
| Le wiki de FlightGear a toujours besoin d'aide pour être traduit en différentes langues. Si vous êtes intéressé par le rendre multilingue, commencez par lire [[:fr:Help:Traduire|Help:Traduire]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:de.gif]]&lt;br /&gt;
| Das FlightGear Wiki benötigt immer noch Hilfe bei der Übersetzung in verschiedene Sprachen. Wenn Du Interesse daran hast, das FlightGear Wiki mehrsprachig zu machen, dann fang mit dem [[:de:Help:Übersetzen|Help:Übersetzen]] an.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:nl.gif]]&lt;br /&gt;
| De FlightGear Wiki kan nog steed hulp gebruiken bij het vertalen van artikelen. Als je interesse hebt om de wiki meertalig te maken, raden we je aan om een kijkje te nemen bij [[:nl:Help:Vertalen|Help:Vertalen]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:es.gif]]&lt;br /&gt;
| La wiki de FlightGear todavía necesita ayuda para traducirla a varios lenguajes. Si estás interesado en hacer la FlightGear wiki multilingüe, entonces comienza en [[:es:Help:Traducir|Help:Traducir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:cat.gif]]&lt;br /&gt;
| La wiki de FlightGear encara necessita ajuda per traduir-la a diverses llengües. Si esteu interessat en fer la wiki de FlightGear multilingüe, llavors comenceu a [[:ca:Help:Traduir|Help:Traduir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:pt.gif]]&lt;br /&gt;
| A wiki de FlightGear ainda necessita de ajuda para traduzi-la em vários idiomas. Se estás interessado em tornar a wiki de FlightGear multi-lingual, por favor começa em [[:pt:Help:Traduzir|Help:Traduzir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:zh.gif]]&lt;br /&gt;
| FlightGear 百科仍然需要志愿者将其翻译为各种语言。如果你有兴趣让FlightGear百科支持更多语言, 你可以查看 [[Help:Translate]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FlightGear logos ===&lt;br /&gt;
If you want some graphic elements for your FlightGear-related site (such as a hangar or YouTube channel), please feel free to visit [[FlightGear logos]] for a repository of logos. And if you have some art skills, please don't hesitate to contribute with your own design creations.&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
The FlightGear project always needs screenshots, which show features that were added since the last release. These should be of good quality, especially in content and technical image properties. It is therefore recommended to use the best viable filter settings ([[anti-aliasing]], texture sharpening, etc.). More info at [[Howto:Make nice screenshots]].&lt;br /&gt;
&lt;br /&gt;
==== Screenshot of the Month ====&lt;br /&gt;
&amp;lt;!--FlightGear's Screenshot of the Month {{#time: F | 2020-08}} 2020 is FIXME by {{usr|FIXME}}&lt;br /&gt;
ADD IMAGE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to participate in the screenshot contest &amp;lt;!--of {{#time: F | 2020-08 + 1month}}--&amp;gt;, you can submit your candidate to {{forum link|title=this|f=19|t= }}. Be sure to see the first post for participation rules. For purposes of convenience and organization, after all the entries have been submitted, a new forum topic will be started containing all shots in an easy-to-view layout. The voting will then take place there. Once the voting has finished, the best screenshot will be presented in the Newsletter&amp;lt;!-- edition of {{#time: F | 2020-08 + 1month}}--&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Thanks for reading {{PAGENAME}}!''&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Changes after 2020.1]]&amp;lt;!--Has a new version been released this month? Use previous version!--&amp;gt;&lt;br /&gt;
[[Category:FlightGear Newsletter|2020 08]]&lt;br /&gt;
&lt;br /&gt;
[[de:FlightGear Newsletter {{#time: F Y | 2020-08 | de }}]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2020&amp;diff=139726</id>
		<title>FlightGear Newsletter July 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_July_2020&amp;diff=139726"/>
		<updated>2024-04-17T22:39:53Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
NOTES TO EDITORS&lt;br /&gt;
&lt;br /&gt;
* Headings&lt;br /&gt;
  * DO NOT DELETE HEADINGS prior to final cleanup&lt;br /&gt;
  * Current headings and their order is merely a suggestion based on what have been used earlier&lt;br /&gt;
  * Changes made to headings or structure should also be copied the Newsletter template FIXME&lt;br /&gt;
&lt;br /&gt;
* Discussion, issues and suggestions&lt;br /&gt;
  * Regarding this newsletter issue, please use the discussion page&lt;br /&gt;
  * Regarding the newsletter in general, primarily use the FlightGear Newsletter discussion page (Talk:FlightGear Newsletter)&lt;br /&gt;
  * Regarding this Newsletter template, please use FIXME&lt;br /&gt;
&lt;br /&gt;
* Final cleanup before write protecting&lt;br /&gt;
  * Remove unused headings&lt;br /&gt;
  * Remove {{Appendix}} if not used.&lt;br /&gt;
  * Update &amp;quot;Category: Changes after&amp;quot; to the FG version current at the 1st of this month&lt;br /&gt;
  * Finally remove this comment&lt;br /&gt;
  * Update [[Next Newsletter]] and [[FlightGear Newsletter]]&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PRELOAD NEWSLETTER HEADER IS LINKED TO A SANDBOX TEMPLATE! WHEN CLEANING UP PLEASE DELETE THIS MESSAGE AND CHANGE THE HEADER BELOW TO:&lt;br /&gt;
+++   {{Newsletter-header|{{#time: F | 2020-07}}}}   +++&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{User:Skybike/Template:Newsletter-header-translate|2020-07}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
''We would like to emphasize that the monthly newsletter can not live without the contributions of FlightGear users and developers. Everyone with a wiki account (free to register) is welcome to contribute to the newsletter.  If you know about any FlightGear related news or projects such as for example updated scenery or aircraft, please do feel invited to add such news to the newsletter.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
&amp;lt;!-- News about FlightGear itself.  The FlightGear mailing list and/or core developers are a good source. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Early CompositeViewer Experiments ===&lt;br /&gt;
{{Main article|CompositeViewer Support}}&lt;br /&gt;
&lt;br /&gt;
[[File:Fg-cv.png|thumb|Julian just made some progress on CompositeViewer integration actually.He set things up so that one can 'clone' the current view using akey-press. This creates a new top-level view window with its own copyof the current view's camera projection matrix etc. The view is addedto the CompositeViewer so it sees the same scene.For now at least, cloned views' projection matrices don't change so thecloned views are completely independent from movement of the aircraft orchanges to the main view. Eventually he'd like to make them behave moredynamically, e.g. follow the aircraft if cloned from Helicopter View.At the moment most of the scenery doesn't show up and the backgroundcolours are wrong, but this screen shot shows it working]]&lt;br /&gt;
&lt;br /&gt;
For the time being, FlightGear only supports one view position at a time. Multiple independent view positions (e.g. one screen for the tower view and a second screen for the plane) would complicate a &amp;quot;locked to cache&amp;quot; flag quite a lot...&amp;lt;ref&amp;gt;http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg28864.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Aircraft can define their own views and so on. But only one view can be active at a time. So no matter how many windows and cameras you define in [[Defaults.xml]], they all are relative to the current view in FG (i.e. cockpit, tower...). &amp;lt;ref&amp;gt;http://forum.flightgear.org/viewtopic.php?p=146136#p146136&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
People requiring multiple independent views on the same scenery, e.g. cockpit and tower view [...] these each need their own camera groups and so require OSG's CompositeViewer.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37059117/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And that's not really supported by the current architecture, neither by the tile cache nor by osgViewer::Viewer. We would need to move to a CompositeViewer model, which supports several scene graphs, and rely completely on the osg database paging machinery.&amp;lt;ref&amp;gt;http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg28869.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That would require a change in current fg architecture to use a CompositeViewer instead of a single Viewer, but we're contemplating that anyway.&amp;lt;ref&amp;gt;http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg17263.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Julian Smith reported some  success by changing flightgear's FGRenderer's osgViewer::Viewer to an osgViewer::CompositeViewer with a single osgViewer::View, and patching up all the calling code so it compiles.&lt;br /&gt;
&lt;br /&gt;
It all builds ok, and he now got fgfs mostly working with CompositeViewer and the usual single View.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/flightgear-devel/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CompositeViewer is not a build-time option any more. It is disabled by default, and enabled on startup with a new --composite-viewer=1 option.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37075130/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Julian made the use of CompositeViewer configurable at runtime, which might simplify getting involved in testing/further development - the same binary can now be used for normal use and for investigating CompositeViewer behaviour.&lt;br /&gt;
&lt;br /&gt;
To execute the patched binary with the compositeviewer enabled, use: &amp;lt;code&amp;gt;fgfs  --composite-viewer=1&amp;lt;/code&amp;gt; &amp;lt;ref&amp;gt;https://sourceforge.net/u/cgdae/flightgear/ci/059cf073c74d43a57c11f363cae6c9271772d869&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New software tools and projects ==&lt;br /&gt;
&amp;lt;!-- Those not being part of FlightGear itself, like for example OpenRadar, TerreMaster or flightgear-atc.alwaysdata.net. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FGCom-mumble: Load tests successful, RDF implemented, Live-Status page added ===&lt;br /&gt;
[http://wiki.flightgear.org/FlightGear_Newsletter_June_2020#FGCom-mumble:_first_prototype The last issue mentioned] the work on a  new [https://github.com/hbeni/fgcom-mumble mumble based FGCom] implementation.&lt;br /&gt;
&lt;br /&gt;
The development is discussed in the {{forum link|title=FGCom-mumble|f=32|t=37644}}.&lt;br /&gt;
&amp;lt;br/&amp;gt;Releases can be downloaded from [https://github.com/hbeni/fgcom-mumble github].&lt;br /&gt;
&lt;br /&gt;
This prototype was recently completed and load tests showed very promising results (&amp;gt;100 users!). Also advanced features like 910.00 Echotest, ATIS recording and a [https://user-images.githubusercontent.com/13608602/87289717-4a449500-c4fd-11ea-8e4a-cd99242bea07.png live status website] were implemented. RDF detection support was the latest addition and ATC-Pie already has good support for FGCom-mumble based radios with RDF in a development branch.&lt;br /&gt;
&lt;br /&gt;
The plugin now also supports several client sessions within a single mumble session. Clients are distinguished using the client port number of the UDP input packets.&lt;br /&gt;
&lt;br /&gt;
Basicly i think this is ready for public testing now. Testers still need to wait for mumbles official 1.4 release (if you don't want to compile yourself, or on linux want to use my precompiled binarys).&lt;br /&gt;
Also open is the question on which hardware this might run on (just needs mumble server, luajit 5.1 and php for the bots and status page).&lt;br /&gt;
It would also be very good if some experienced developers could review the code for hidden issues (I'm new to C++ and lua).&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
&amp;lt;!-- News about new and upgraded aircraft and related stuff.  The official forum and other ones usually are a good source for this. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Instruments === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === New aircraft === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Updated aircraft === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Liveries === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Aircraft reviews === --&amp;gt;&lt;br /&gt;
== Help wanted ==&lt;br /&gt;
{{Help wanted}}&lt;br /&gt;
&lt;br /&gt;
== AI == &lt;br /&gt;
&amp;lt;!--Looking at &amp;quot;In the hangar&amp;quot; or &amp;quot;Scenery corner&amp;quot; we really need a slogan for &amp;quot;AI&amp;quot;--&amp;gt;&lt;br /&gt;
&amp;lt;!-- === AI traffic === --&amp;gt;&lt;br /&gt;
The AI team makes FlightGear more realistic, colorful and lively every month. You can support the important development of ''Interactive Traffic'' and contribute at the FlightGear {{forum link|title=AI|f=23}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === AI scenarios === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
&amp;lt;!-- Scenery development news --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Scenery Models === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Airports === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Land cover === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Osm2city === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Interview with a contributor == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Suggested flights == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community news ==&lt;br /&gt;
=== Flightgear Community Survey ===&lt;br /&gt;
Nia has created a community survey so see, what systems we develop for and what the expectations of the community are.&lt;br /&gt;
The results will be published on the [https://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=37773 forum].&lt;br /&gt;
You can take the survey [https://lime.merspieler.tk/index.php/978382?lang=en here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === FlightGear on YouTube === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- embed video as {{#ev:youtube|VCc6PwRI1LA}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Forum news === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Wiki updates === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on Facebook ===&lt;br /&gt;
Since early December 2010, FlightGear has an [http://www.facebook.com/FlightGear official Facebook page].  If you have a Facebook account please feel free to join the page.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on Instagram ===&lt;br /&gt;
In January 2018 the [https://www.instagram.com/flightgear_sim/ @flightgear_sim Instagram account] was brought back to life. If you've got nice screenshots to be featured, feel free to {{forum link|text=contact the maintainer|t=33636}}.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on FlightSim.com ===&lt;br /&gt;
Flightgear has also a [https://www.flightsim.com/vbfs/forumdisplay.php?102-FlightGear sub-forum] on flightsim.com - just like the commercial flightsims. It is an opportunity to showcase what FG can do, get people curious and answer any questions they may have with regard to the software or the project.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer events ==&lt;br /&gt;
&amp;lt;!-- === Upcoming events === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Finished events === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == FlightGear events == --&amp;gt;&lt;br /&gt;
&amp;lt;!-- For example presence at FSWeekend --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Hardware reviews == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
&lt;br /&gt;
=== Translators needed ===&lt;br /&gt;
{|&lt;br /&gt;
| [[File:en.gif]]&lt;br /&gt;
| The FlightGear Wiki still needs help for translating it into various languages. If you are interested in making the FlightGear Wiki multilingual, you can start by looking at [[Help:Translate]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:fr.gif]]&lt;br /&gt;
| Le wiki de FlightGear a toujours besoin d'aide pour être traduit en différentes langues. Si vous êtes intéressé par le rendre multilingue, commencez par lire [[:fr:Help:Traduire|Help:Traduire]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:de.gif]]&lt;br /&gt;
| Das FlightGear Wiki benötigt immer noch Hilfe bei der Übersetzung in verschiedene Sprachen. Wenn Du Interesse daran hast, das FlightGear Wiki mehrsprachig zu machen, dann fang mit dem [[:de:Help:Übersetzen|Help:Übersetzen]] an.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:nl.gif]]&lt;br /&gt;
| De FlightGear Wiki kan nog steed hulp gebruiken bij het vertalen van artikelen. Als je interesse hebt om de wiki meertalig te maken, raden we je aan om een kijkje te nemen bij [[:nl:Help:Vertalen|Help:Vertalen]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:es.gif]]&lt;br /&gt;
| La wiki de FlightGear todavía necesita ayuda para traducirla a varios lenguajes. Si estás interesado en hacer la FlightGear wiki multilingüe, entonces comienza en [[:es:Help:Traducir|Help:Traducir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:cat.gif]]&lt;br /&gt;
| La wiki de FlightGear encara necessita ajuda per traduir-la a diverses llengües. Si esteu interessat en fer la wiki de FlightGear multilingüe, llavors comenceu a [[:ca:Help:Traduir|Help:Traduir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:pt.gif]]&lt;br /&gt;
| A wiki de FlightGear ainda necessita de ajuda para traduzi-la em vários idiomas. Se estás interessado em tornar a wiki de FlightGear multi-lingual, por favor começa em [[:pt:Help:Traduzir|Help:Traduzir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:zh.gif]]&lt;br /&gt;
| FlightGear 百科仍然需要志愿者将其翻译为各种语言。如果你有兴趣让FlightGear百科支持更多语言, 你可以查看 [[Help:Translate]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FlightGear logos ===&lt;br /&gt;
If you want some graphic elements for your FlightGear-related site (such as a hangar or YouTube channel), please feel free to visit [[FlightGear logos]] for a repository of logos. And if you have some art skills, please don't hesitate to contribute with your own design creations.&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
The FlightGear project always needs screenshots, which show features that were added since the last release. These should be of good quality, especially in content and technical image properties. It is therefore recommended to use the best viable filter settings ([[anti-aliasing]], texture sharpening, etc.). More info at [[Howto:Make nice screenshots]].&lt;br /&gt;
&lt;br /&gt;
==== Screenshot of the Month ====&lt;br /&gt;
&amp;lt;!--FlightGear's Screenshot of the Month {{#time: F | 2020-07}} 2020 is FIXME by {{usr|FIXME}}&lt;br /&gt;
ADD IMAGE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to participate in the screenshot contest &amp;lt;!--of {{#time: F | 2020-07 + 1month}}--&amp;gt;, you can submit your candidate to {{forum link|title=this|f=19|t= }}. Be sure to see the first post for participation rules. For purposes of convenience and organization, after all the entries have been submitted, a new forum topic will be started containing all shots in an easy-to-view layout. The voting will then take place there. Once the voting has finished, the best screenshot will be presented in the Newsletter&amp;lt;!-- edition of {{#time: F | 2020-07 + 1month}}--&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Thanks for reading {{PAGENAME}}!''&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Changes after 2020.1]]&amp;lt;!--Has a new version been released this month? Use previous version!--&amp;gt;&lt;br /&gt;
[[Category:FlightGear Newsletter|2020 07]]&lt;br /&gt;
&lt;br /&gt;
[[de:FlightGear Newsletter {{#time: F Y | 2020-07 | de }}]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=139725</id>
		<title>World Scenery 3.0 roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=139725"/>
		<updated>2024-04-17T22:39:28Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scenery Core Development}}&lt;br /&gt;
{{WS30 Navbar}}&lt;br /&gt;
{{See also|TerraGear roadmap}}&lt;br /&gt;
{{Project&lt;br /&gt;
|name = World Scenery 3.0&lt;br /&gt;
|description = New world-wide scenery&lt;br /&gt;
|start-date = 2019-Sep&lt;br /&gt;
|current-status = Active &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37074319/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|developers = Scott Giese&amp;lt;br/&amp;gt;Richard Harrison&amp;lt;br/&amp;gt;Stuart Buchanan&lt;br /&gt;
&lt;br /&gt;
|motivation-body = &lt;br /&gt;
{{Main article|Virtual Planet Builder}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Virtual Planet Builder (VPB) is OSG's terrain-database-building tool.&lt;br /&gt;
It loads GIS elevation data for a&lt;br /&gt;
region, combines it with imagery and produces a spatially-balanced&lt;br /&gt;
quadtree tiled database that can be navigated simply by loading the&lt;br /&gt;
top-level file. All of the LOD Ranges are pre-configured and the&lt;br /&gt;
DatabasePager automatically loads and unloads different segments of&lt;br /&gt;
terrain without any supporting userspace code required. VPB can build&lt;br /&gt;
terrain models ranging from a small area to the entire planet. These&lt;br /&gt;
databases can be fluidly navigated at 60fps from outer space down to&lt;br /&gt;
ground level with no interruptions. The terrain models are built of&lt;br /&gt;
regular grid arrays with optional edge-skirts to conceal any cracks&lt;br /&gt;
caused by adjacent LOD differences.&amp;lt;br/&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://alphapixel.com/wp-content/uploads/2015/04/OpenSceneGraph-OSG-Virtual-Planet-Builder-VPB-OSGDEM.pdf&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;OpenScenGraph's Virtual Planet Builder/OSGDEM&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |publisher=&amp;lt;nowiki&amp;gt;AlphaPixel, LLC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|objective-body =&lt;br /&gt;
&lt;br /&gt;
[[File:Edinburgh rendering using WS3.0.jpg|thumb|Initial rendering of Edinburgh scenery using a raster landclass and texture lookup for city, water and grass]]&lt;br /&gt;
[[File:WS3.0 terrain with WS2.0 EGPH.jpg|thumb|Screenshot showing a WS2.0 airport .btg file rendered with WS3.0 terrain]]&lt;br /&gt;
[[File:EGPH roads.jpg|thumb|WS3.0 Edinburgh airport with runtime-generated roads from OSM data]]&lt;br /&gt;
[[File:WS30 - West Lothian.png|thumb|WS30 view of West Lothian, with 25m resolution landclass data, vegetation, osm2city buildings, and OSM-based roads and rivers.]]&lt;br /&gt;
[[File:WS30 street lighting.jpg|thumb|Edinburgh at night, with osm2city buildings, OSM-base roads, including whether they are lit or not.  Note the road in the foreground which is lit near the buildings and unlit in the countryside.]]&lt;br /&gt;
[[File:Fgfs-20220528191253.png|thumb|WS30 using OSM data to define the coastline.  This shows a view near Oban in Scotland looking South.  The coastline is applied as a high resolution overlay texture that is generated at runtime from OSM data and mixed with the landclass texture by the ws30 shader.]]&lt;br /&gt;
&lt;br /&gt;
Produce high-quality scenery using the best-known practices.&lt;br /&gt;
&lt;br /&gt;
TerraGear becomes obsolete in favor of VPB.&lt;br /&gt;
&lt;br /&gt;
* '''OpenGL 3.3 Core Profile''': WS3.0 will require us to eliminate the usage of the fixed-function pipeline.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''Shader-based Rendering''': All of the terrain renderings will be done via GLSL shaders.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''OSG Core''': OpenSceneGraph will require targeting of the OpenGL Core Profile.&lt;br /&gt;
&lt;br /&gt;
WS3.0 will continue to cooperate with osm2city.&lt;br /&gt;
&lt;br /&gt;
Easy upgrade: Initially the plan was that airport layouts will be generated in real-time. Apt.dat will continue to be the primary source for airport layouts and that airports will be draped over the terrain. This would eliminate the need to cut airport layouts into the underlying terrain.&lt;br /&gt;
Due to difficulties with this approach, it has been decided, that we keep using the WS2.0 airports for now. Work has been done to automatically update the airports from the X-Plane gateway which can be done automatically now. &lt;br /&gt;
The apt.dat file gets update with this as well. Here it remains for the navdb parser to understand the 8.33kHz frequencies.&lt;br /&gt;
&lt;br /&gt;
WS3.0 also offers the opportunity for well performing ortho scenery with acceptable memory impact. Nia has acquired GPL compatible sources so we could theoretically have a demo area with ortho scenery in the first WS3.0 release. It adds significant storage requirement tho (~14.7GB per 1x1 degrees tile). There hasn't been a decision made yet, on how to proceed on this.&lt;br /&gt;
&lt;br /&gt;
|background-body =&lt;br /&gt;
=== Data Sources ===&lt;br /&gt;
&lt;br /&gt;
:;SRTMGL3.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL3.003/&lt;br /&gt;
:;SRTMGL1.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/&lt;br /&gt;
:;Global Land Cover:: https://lcviewer.vito.be/&lt;br /&gt;
:;Natural Earth:: https://www.naturalearthdata.com/&lt;br /&gt;
:;OpenStreetMap :: https://www.openstreetmap.org (See https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/ws30/ genroads.py, gencoastline.py, genwater.py for details)&lt;br /&gt;
&lt;br /&gt;
|status-body = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As of 11/2021, WS30 is available on &amp;quot;next&amp;quot;, and on the [https://download.flightgear.org/builds/nightly/ nightly builds]. &lt;br /&gt;
&lt;br /&gt;
Scenery is available for Scotland, but must be downloaded directly (https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=sharing). You need to add the downloaded and then extracted folder as additional scenery folder.&lt;br /&gt;
&lt;br /&gt;
WS30 can be enabled from the Rendering Options menu, with fine-tuning from the LoD menu. Alternatively you can set --prop:/scenery/use-vpb=true to enable it as command line option.&lt;br /&gt;
&lt;br /&gt;
Airports are currently in the old WS2 format - including airport keep terrain. The WS30 terrain goes under the airport so it is not visible.&lt;br /&gt;
&lt;br /&gt;
Roads are implemented. Lights on roads are implemented - to see, set time to night. WiP rendering.&lt;br /&gt;
&lt;br /&gt;
Vegetation is available - initial version.&lt;br /&gt;
&lt;br /&gt;
While large water bodies are defined in the landclass texture, rivers are draped on top from OSM data.  Coastlines are taken from OSM by are applied as a higher resolution overlay texture to reduce the tiling effect.&lt;br /&gt;
&lt;br /&gt;
Scenery generation workflow is at an advanced stage. It's fast to build. Scott was able to do UK in a matter of hours [https://sourceforge.net/p/flightgear/mailman/message/37259618/]. People interested in generating scenery for the World Build, or getting their landclass or elevation work on [[Suggested custom scenery|custom scenery]] in, should start learning the tools and process. The exact VPB settings and scenery file format may change several times before the final build. But the process of getting work in to shouldn't change much for scenery creators. See the [[Virtual Planet Builder]] page for instructions.&lt;br /&gt;
&lt;br /&gt;
====Scenery generation tool availability ====&lt;br /&gt;
* [[VPB]]: '''Linux:''' build from source, docker image available. '''Windows and Mac:''' build from source, no binaries yet, needs NVTT binaries - see &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list to assist.&lt;br /&gt;
* [[QGIS]]: Not needed when experimenting with terrain generation using lower res landclass rasters provided by CORINE. '''Linux:''' build from source, binary packages[https://qgis.org/en/site/forusers/download.html], official docker release available: https://hub.docker.com/r/qgis/qgis  but Fahim was not sure easy the GUI is to use [https://sourceforge.net/p/flightgear/mailman/message/37381800/]. '''Windows, Mac:''' official QGIS binary releases [https://qgis.org/en/site/forusers/download.html].&lt;br /&gt;
&lt;br /&gt;
===LoD settings===&lt;br /&gt;
Go to ''View &amp;gt; Adjust LoD &amp;gt; World Scenery 3.0 section'' (Nov 2021).&lt;br /&gt;
* 7 LoD levels - most detailed is 6, shown at closest range. Least detailed is 0, shown at long range. LoD 0 tiles with Scotland scenery are 1x1 degree, or approx 111 km x 111 km at the equator.&lt;br /&gt;
* Scenery is divided into chunks called tiles. As view distance increases, tiles with a LoD level are replaced by tiles with the next lowest LoD level. e.g. Four LoD 6 tiles are replaced by one LoD 5 tile. Four LoD 5 tiles are replaced by one LoD 4 tile. As view gets closer the reverse happens. One LoD 2 tile is replaced by four LoD 3 tiles.&lt;br /&gt;
* Detail range - The LoD level below which each type of feature is not visible. e.g. setting vegetation to LoD 3 means vegetation is shown for LoD 3/4/5/6 and not shown for tiles with LoD 0/1/2.&lt;br /&gt;
* Minimum line feature width (line features are things like roads or rivers) - for every LoD level, the width in meters below which a line feature is not shown. e.g. setting LoD level four to 30 meters means rivers or roads that are narrower than 30 meters are not shown for level four tiles. The minimum widths should stay the same or decrease when going down a LoD level.&lt;br /&gt;
* Minimum area feature width (area features are things like lakes) - similar to minimum line feature width, but for area in square meters. Setting LoD 3 to 100 square meters means lakes of size 99 square meters or 40 square meters will not show for LoD level 3 tiles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof of Concept  {{progressbar|100}}&lt;br /&gt;
* VPB {{done}}&lt;br /&gt;
* osgOcean {{done}}&lt;br /&gt;
* osgVegetation {{done}}&lt;br /&gt;
* Generate terrain for Hawaii {{done}}&lt;br /&gt;
* Hack Hawaii VPB into FG {{done}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OSG {{progressbar|70}}&lt;br /&gt;
* Core Profile: {{done}}&lt;br /&gt;
* GLVND Support: {{done}}&lt;br /&gt;
* glTF Plugin Support: {{ongoing}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity&lt;br /&gt;
| align  = right&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | N00-N60 lat&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Africa Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Ocean-N00-N90.png | Ocean Fill&lt;br /&gt;
}}&lt;br /&gt;
=== Standard-Fidelity - 90m SRTMGL3 - 100m Global Land Cover ===&lt;br /&gt;
&lt;br /&gt;
=== Northern Hemisphere: 152.3 GB ===&lt;br /&gt;
=== Southern Hemisphere: 57.4 GB ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|70}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL3.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Ocean {{done}}&lt;br /&gt;
** Northern: {{progressbar|100}}&lt;br /&gt;
** Southern: {{progressbar|100}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High-Fidelity - 30m SRTMGL1 - Best Available Land Cover ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|30}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL1.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|news-body=&lt;br /&gt;
The northern hemisphere, up to N60, has been completed. The southern hemisphere, above S56, has been completed.&lt;br /&gt;
SRTM data was not captured above N60 and below S56, so alternative data sources need to be procured.&lt;br /&gt;
&lt;br /&gt;
Oceans are complete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity Gallery&lt;br /&gt;
| align  = center&lt;br /&gt;
| Terrain-Mesh.jpg | WS3 Terrain Mesh&lt;br /&gt;
| S10-N60-LC100m-SRTMGL3.png | Asia/India&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | Europe&lt;br /&gt;
| N00-N40-LC100m-SRTMGL3.png | USA&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Africa-Natural2.png | Natural Earth&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For the experimental runtime generated mesh/landclassing engine - which may become WS3.0 - see [[Experimental terrain engine]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development projects‎]]&lt;br /&gt;
[[Category:Scenery]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2023&amp;diff=139724</id>
		<title>Virtual FSweekend Hackathon 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2023&amp;diff=139724"/>
		<updated>2024-04-17T22:38:55Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Normally in mid-November a group of FlightGear enthusiasts participate in [[FSWeekend]] in [https://www.aviodrome.nl/ Aviodrome] at the [https://www.lelystadairport.nl/ Lelystad Airport] in the Netherlands. Over the years this has been a focal point for both finishing existing development/releases and a catalyst for new ideas in FlightGear, as well as an opportunity for FlightGear enthusiasts to share a beer. This year the [https://www.aviodrome.nl/evenementen/flight-simulator/?_gl=1*1hh597t*_up*MQ..&amp;amp;gclid=EAIaIQobChMIhdjmndaLgQMVKpiDBx3wFwOwEAAYASAAEgI64vD_BwE Flight Simulator Weekend] has been re-scheduled to March 16/17 2024.&lt;br /&gt;
&lt;br /&gt;
To keep the spirit alive and repeat the successful execution of the [[Virtual_FSweekend_Hackathon_2020|Virtual FSweekend Hackathon 2020]] and [[Virtual_FSweekend_Hackathon_2021|Virtual FSweekend Hackathon 2021]], we are planning to hold another Virtual FSweekend Hackathon on the weekend of {{{days_string|10/11/12}}} November {{{year|2023}}} (in {{days from now|{{{year|2023}}}|11|10}}).&lt;br /&gt;
&lt;br /&gt;
== Hackathon? ==&lt;br /&gt;
For those who have not participated in a hackathon before, the broad idea is to get people from a wide variety of experience and backgrounds together to solve problems over a short period of time - typically 24 or 48 hours. Details vary, but typically at the start of the event, people pitch ideas and groups form organically based on what people are interested in. The groups then work together intensively, often fueled by pizza and caffeine etc. At the end of the hackathon the groups present their work and there are often prizes for the best hacks.&lt;br /&gt;
&lt;br /&gt;
The general idea of virtual FSWeekend hackathons is to encourage existing and new contributors to collaborate over the course of a weekend to create new and exciting features for FlightGear in the broadest sense. The core developers would particularly like to use it as an opportunity to encourage people to get their hands dirty in the core code, so they will be primarily there to help/coach people rather than hacking themselves, but anything is possible :)&lt;br /&gt;
&lt;br /&gt;
No prior development experience is necessary - there might be run some education sessions ahead of the weekend so people can hit the ground running (otherwise you will learn during the hackathon). Also, do not feel you have to commit to coding the entire weekend to the exclusion of all else. We think participants will still get real value if they can just commit to one day and some late evenings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Only Core Development? ==&lt;br /&gt;
While the core of the hackathon incl. support previously has been dedicated to development in the very core of FlightGear (mostly C++, [[Nasal_scripting_language|Nasal]] and xml), you are also welcome to participate if you are developing stuff, which contributes to the general FlightGear ecosystem (e.g. [[Addon]], visual artwork or [[Osm2city.py|osm2city]]). However, in that case you might need to provide your own support.&lt;br /&gt;
&lt;br /&gt;
== Sign up ==&lt;br /&gt;
{{Note|There is space for many participants, so don't be shy. {{{organizer|Rick}}} is happy for people to register right up to the Friday night, but we will not be able to help out with getting builds and git working if you leave it that late!}}&lt;br /&gt;
&lt;br /&gt;
To register your participation, please contact {{{organizer|Rick}}} either on the {{forum link|t=41662|text=forum post}}, by PM on the [https://discord.gg/rzuV2DR FlightGear Discord server] or via the [https://sourceforge.net/p/flightgear/mailman/message/37890811/ devel list].  &lt;br /&gt;
&lt;br /&gt;
Confirmed participants (in alphabetical order):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! aka.&lt;br /&gt;
! Role&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
|Nia&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=21618 Nia], also Nia on [https://matrix.to/#/#flightgear-jsbsim:hacklab.fi FG Matrix]&lt;br /&gt;
|Infra provider, ask if you've got issues with Mattermost or Jitsi&lt;br /&gt;
|Can help with osm2city data processing (worldbuild stuff)&lt;br /&gt;
|-&lt;br /&gt;
|Rick Gruber-Riemer&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=9140 vanosten], HB-VANO on FG Discord&lt;br /&gt;
|Organiser/mentor&lt;br /&gt;
|Can coach osm2city and OSM data processing&lt;br /&gt;
|-&lt;br /&gt;
|Stuart Buchanan&lt;br /&gt;
|[[User:Stuart|stuart]]&lt;br /&gt;
|Mentor&lt;br /&gt;
|Can coach on most part of FlightGear.  Particularly interested in WS3.0 at the moment.&lt;br /&gt;
|-&lt;br /&gt;
|James Turner&lt;br /&gt;
|&lt;br /&gt;
|Mentor&lt;br /&gt;
|Can coach on most of FlightGear.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=25958 MariuszXC], MariuszXC on FG Discord&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chris Frey&lt;br /&gt;
|&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Felix Zaho&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=27642 superxxx]&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Pat Callahan&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=14816 callahanp]&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ahead of the Hackathon ==&lt;br /&gt;
There are a couple of key activities ahead of the weekend in {{{year|2023}}}.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
So we can hit the ground running, we really want everyone participating to already have:&lt;br /&gt;
* SourceForge credentials&lt;br /&gt;
* A working build environment with [[OpenSceneGraph|OSG]], [[PLIB]] etc.&lt;br /&gt;
* A Git checkout of simgear/flightgear (cf. [[FlightGear_Git]])&lt;br /&gt;
* A Git checkout of fgdata&lt;br /&gt;
* Some experience with [https://git-scm.com/ Git]&lt;br /&gt;
&lt;br /&gt;
At the very least you should be able to work with a [[FlightGear_build_server|nightly version]] of FlightGear.&lt;br /&gt;
&lt;br /&gt;
Before the Hackathon consider having a look into the dedicated [[:Category:Hackathon Materials|Hackathon Materials]] category for articles, which might help get you going.&lt;br /&gt;
&lt;br /&gt;
=== Logistics ===&lt;br /&gt;
Being completely remote, we need the ability to collaborate in teams as well as video conference as a group.&lt;br /&gt;
&lt;br /&gt;
There will be a [https://mattermost.com/ Mattermost] server for the weekend.  We'll be using that for organization, discussion and collaboration.&lt;br /&gt;
&lt;br /&gt;
We'll be using a [https://jitsi.org/ Jitsi] Server for video conferencing and demos.&lt;br /&gt;
&lt;br /&gt;
To use the server, please start the Jitsi calls from within Mattermost (click on that power plug symbol in the top bar next to the search). Preferably use an app or Chrome/Chromium.&lt;br /&gt;
&lt;br /&gt;
=== Ideation ===&lt;br /&gt;
The core of the Hackathon!  These are the projects, ideas and problems that participants will be working on during the weekend. In the weeks before the Hackathon itself, participants can, and should, propose things to work on. Simply create a wiki page describing your idea, and encourage people to contribute and get interested.&lt;br /&gt;
&lt;br /&gt;
Check out the [[:Category:Hackathon {{{year|2023}}} Ideas|Hackathon {{{year|2023}}} Ideas]] category page for a how-to as well as links to existing proposals. &lt;br /&gt;
&lt;br /&gt;
You can also take a look at proposals from the previous years.&lt;br /&gt;
&lt;br /&gt;
Not having an idea?  No problem!  Have a look at the proposed ideas, leave a comment on the Discussion page, and add yourself as an Interested Party for those ideas you consider working on during the Hackathon.  There is no commitment until the start of the Hackathon on Friday evening.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
With (hopefully) a world-wide group of participants, and varying real life constraints, at any given time over the weekend there will hopefully be a couple of people active.  &lt;br /&gt;
&lt;br /&gt;
We will have two big get-togethers:&lt;br /&gt;
&lt;br /&gt;
=== {{{kick-off-totd-utc|Friday 10th November 2000-2200 UTC.}}} Kick-off ===&lt;br /&gt;
* General welcome&lt;br /&gt;
* Introductions &lt;br /&gt;
* Hack pitches&lt;br /&gt;
* Team formation&lt;br /&gt;
&lt;br /&gt;
This is the point at which participants will decide, which Hacks they want to work on. The sponsors of each of the Hacks proposed ahead of time will be invited to give a 5 minutes pitch to the group, with some questions from the audience. Slides/screenshots optional.&lt;br /&gt;
&lt;br /&gt;
After all the Hacks have been pitched, we will have a little break for people to chat and work out which Hack they want to work on. &lt;br /&gt;
&lt;br /&gt;
If a Hack ends up with fewer than 2 people wanting to work on it (including the sponsor), then it will normally be dropped.  This is to encourage people to work in groups - larger teams can get more done in the time, and have more opportunities to learn from each other, plus it is more sociable!&lt;br /&gt;
&lt;br /&gt;
=== {{{wrap-up-totd-utc|Sunday 12th November 2000-2200 UTC.}}}  Wrap up and demos ===&lt;br /&gt;
At the end of the hackathon we will have a get together and have each team present the results of their hack.  &lt;br /&gt;
&lt;br /&gt;
Depending on the number of hacks, each team will have 5-15 minutes to demonstrate their hack, describe what they have learned, and what their next steps are.&lt;br /&gt;
&lt;br /&gt;
We will finish with voting for the best hack of the weekend.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
'''Q''': What is the aim of the Hackathon?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': To learn and have fun hacking FlightGear.  Encourage people to get their hands dirty and modify code.  Try out new ideas.  Working with other people.  Ultimately to increase the number of core developers.&lt;br /&gt;
&lt;br /&gt;
'''Q''': What can participants expect to get out of the weekend?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': The primary goal is for people to learn through experimentation.  To try out new ideas and in the process learn about the internals of FlightGear.  James, Stuart and Fernando will be be providing coaching over the course of the weekend.&lt;br /&gt;
&lt;br /&gt;
'''Q''': What organization will be provided?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': We will provide tools for collaboration, and organize a couple of meetings, but not much more.  The idea behind hackathons is that participants largely self organize - teams form around interesting ideas on Friday evening and organize themselves.  Participants will need to provide their own computers, pizza, Haribo, beer.  The last three are traditional, but optional.&lt;br /&gt;
&lt;br /&gt;
'''Q''': How much time do I need to commit?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': The more the better.  A traditional hackathon would be 24-48 hours of solid work with sleep optional.  That is not realistic for most people, but 20 hours over the weekend would be a good amount to aim for.  Certainly if you can only commit to a couple of evenings you may not get much out of Hackathon.&lt;br /&gt;
&lt;br /&gt;
'''Q''': What skills do I need?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': It depends on what you want to do.  You need to know C/C++ already to be able to hack the core of FlightGear.  The Hackathon is not a good place to learn C++ for the first time.  However, there are lot of interesting projects using Python, Nasal etc.  &lt;br /&gt;
&lt;br /&gt;
'''Q''': I have got a great idea for the Hackathon.  What do I do?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': Great!  Create a wiki page describing it to enthuse other people and collect comments (see [[#Ideation]] section above), and post a link to the Ideation section above so everyone can see it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon Materials]]&lt;br /&gt;
[[Category:Hackathons]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_Reality&amp;diff=139723</id>
		<title>Virtual Reality</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_Reality&amp;diff=139723"/>
		<updated>2024-04-17T22:38:06Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Experimental|disclaimer=VR support in flightgear still comes with a number of caveats.}}&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = VR screenshot c182s.png&lt;br /&gt;
|name        = Virtual Reality&lt;br /&gt;
|started     = 07/2021&lt;br /&gt;
|description = Virtual Reality support using osgXR / OpenXR&lt;br /&gt;
|status      = Active&lt;br /&gt;
|developers  = James Hogan &amp;lt;ref&amp;gt;https://sourceforge.net/u/amalon/profile/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|changelog = https://sourceforge.net/u/amalon/profile/feed.rss&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''Virtual Reality''' project aims to add immersive VR support to FlightGear. This is done using the OpenXR&amp;lt;ref&amp;gt;{{cite web |url=https://www.khronos.org/OpenXR/ |title=OpenXR Overview |publisher=The Khronos Group Inc}}&amp;lt;/ref&amp;gt; API, via an external library called osgXR&amp;lt;ref name=&amp;quot;github-osgXR&amp;quot;&amp;gt;{{github source |user=amalon |repo=osgXR |full=1}}&amp;lt;/ref&amp;gt; for handling OpenXR and OpenSceneGraph specifics, which is being developed in parallel.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
A previous attempt to support some form of VR is described in [[OculusImplementation]].&lt;br /&gt;
&lt;br /&gt;
The portable OpenXR API now seems to be getting widespread adoption, which will allow FlightGear to support a variety of VR devices across multiple platforms.&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
* osgXR source can be found on github&amp;lt;ref name=&amp;quot;github-osgXR&amp;quot;/&amp;gt;, or the version included in the flightgear 3rdparty directory can be used.&lt;br /&gt;
** On ArchLinux, you can install the osgxr AUR package &amp;lt;ref&amp;gt;https://aur.archlinux.org/packages/osgxr/&amp;lt;/ref&amp;gt; to get the version needed by FlightGear's next branches.&lt;br /&gt;
* Some VR code can now be found in FlightGear's next branches (see below for details).&lt;br /&gt;
** On ArchLinux, you can use the -git AUR packages, i.e. flightgear-git, simgear-git, flightgear-data-git.&lt;br /&gt;
** On Windows, you can use the [[Nightly Build#Windows|Windows nightly builds]].&lt;br /&gt;
* More FlightGear changes can be found on James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=flightgear |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=flightgear |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased). A mirror is available on github for issue tracking&amp;lt;ref&amp;gt;{{github source |user=amalon |repo=flightgear-vr}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* More SimGear changes can be found in James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=simgear |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=simgear |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased).&lt;br /&gt;
* More FGData changes can be found on James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=fgdata |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=fgdata |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased).&lt;br /&gt;
&lt;br /&gt;
== Building &amp;amp; Packaging Notes ==&lt;br /&gt;
&lt;br /&gt;
When CMake runs for FlightGear (next or osgxr/osgxr_clean branches), by default it will attempt to enable VR on Windows and Linux (same as &amp;lt;code&amp;gt;-DENABLE_VR=ON&amp;lt;/code&amp;gt;). It will do the following:&lt;br /&gt;
# Look for the osgXR library, and if found it will link against that (same as &amp;lt;code&amp;gt;-DSYSTEM_OSGXR=ON&amp;lt;/code&amp;gt;).&lt;br /&gt;
# If no osgXR library is found it will check for OpenXR and if found it will build its own static built-in copy of osgXR to use.&lt;br /&gt;
# If no OpenXR is found it will disable VR support.&lt;br /&gt;
&lt;br /&gt;
In any case it will print a message along the lines of &amp;lt;code&amp;gt;-- VR support enabled/disabled...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To avoid implicit dependencies when packaging, packagers may need to do ONE of the following:&lt;br /&gt;
* preferably depend upon an osgXR package providing the osgXR dynamic library&lt;br /&gt;
* OR depend on OpenXR and GLX, and explicitly pass `-DSYSTEM_OSGXR=OFF` to CMake so the built-in osgXR is built statically&lt;br /&gt;
* OR explicitly pass `-DENABLE_VR=OFF` to CMake to disable VR support altogether&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
'''Last updated: 31st March 2024'''&lt;br /&gt;
&lt;br /&gt;
Highly experimental, partially in next, partly out of tree. Development in progress.&lt;br /&gt;
&lt;br /&gt;
Working in next branch (e.g. [[Nightly Build#Windows|Windows nightly builds]]):&lt;br /&gt;
* Enable/disable at startup via --enable-vr / --disable-vr command line options, or from GUI (View-&amp;gt;VR Options).&lt;br /&gt;
* VR friendly splash screen.&lt;br /&gt;
* Displaying stereo images on the HMD.&lt;br /&gt;
* Motion tracking updates HMD views (but doesn't move main camera).&lt;br /&gt;
* Configurable VR mirror (see View-&amp;gt;VR Settings) shown in default camera view (blank, left, right, side-by-side left &amp;amp; right).&lt;br /&gt;
* Visibility mask support.&lt;br /&gt;
&lt;br /&gt;
Working in osgxr/osgxr_clean branch:&lt;br /&gt;
* Controller support for flight (helicopter collective in left hand, helicopter cyclic in right).&lt;br /&gt;
* Controller pointing support with some mouse emulation.&lt;br /&gt;
* Rendering of controllers (as basic cuboids).&lt;br /&gt;
&lt;br /&gt;
Current priorities:&lt;br /&gt;
* Support [[HDR Pipeline]] and accelerated multiview rendering.&lt;br /&gt;
* Continue to polish controller flight support, add haptics etc.&lt;br /&gt;
* Get started on other controller interaction and controller rendering.&lt;br /&gt;
&lt;br /&gt;
=== Known issues ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;Splash screen is rendered directly onto the left eye viewport which isn't very pleasant in VR.&amp;lt;/s&amp;gt;&lt;br /&gt;
* Performance could be better so crank down the graphics if frame rate is low.&lt;br /&gt;
* Shadows are broken:&lt;br /&gt;
** When shadows are enabled, the FlightGear window doesn't appear to refresh even though buffers are swapped, but VR output works.&lt;br /&gt;
** Sun position is fixed relative to head, presumably because shadow maps are rendered based on master camera, but osgXR only moves slave cams.&lt;br /&gt;
* Spotlights (taxi/landing lights) are relative to camera in default mode&lt;br /&gt;
** Affects default / scene view mode (&amp;lt;code&amp;gt;--prop:/sim/vr/mode=AUTOMATIC&amp;lt;/code&amp;gt;), as stereo callbacks position cameras&lt;br /&gt;
** Doesn't affect slave cameras mode (&amp;lt;code&amp;gt;--prop:/sim/vr/mode=SLAVE_CAMERAS&amp;lt;/code&amp;gt;), as slave cameras are positioned correctly&lt;br /&gt;
* ALS filters appear to operate in screen space but don't take into account side by side rendering&lt;br /&gt;
* [[HDR Pipeline]] is unsupported, but work to support it is in progress&lt;br /&gt;
* Still some Monado issues:&lt;br /&gt;
** &amp;lt;s&amp;gt;Saturated output due to not using SRGB textures&amp;lt;/s&amp;gt; (use osgXR 0.3.8)&lt;br /&gt;
** &amp;lt;s&amp;gt;Suboptimal depth format used&amp;lt;/s&amp;gt; (osgXR 0.3.8 should end up using GL_DEPTH32F_STENCIL8)&lt;br /&gt;
** Warnings about suggesting bindings of attached action sets when restarting VR (looks like a monado issue at first glance)&lt;br /&gt;
* Multiple SteamVR issues on Linux:&lt;br /&gt;
** If it doesn't close cleanly on Linux it may be due to a SteamVR bug&amp;lt;ref name=&amp;quot;github-SteamVR-422&amp;quot;/&amp;gt;, but a ctrl+c / SIGINT on the command line should close it.&lt;br /&gt;
* osgXR doesn't support Direct3D graphics bindings for WMR (it isn't a priority for me). Contributions welcome.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
VR has been tested with the following hardware &amp;amp; software configurations:&lt;br /&gt;
* HTC Vive, SteamVR, Linux/X11 (ArchLinux), nVidia proprietary -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 21:43, 27 August 2021 (UTC)&lt;br /&gt;
* Oculus Quest 2, SteamVR (ALVR), Linux/X11 (Fedora 34) -- [[User:vezza|vezza]] ([[User talk:vezza|talk]]) 16:30 27 August 2021 (UTC)&lt;br /&gt;
* Oculus Quest 2, Oculus App, Windows 10 --[[User:Necolatis|Necolatis]] ([[User talk:Necolatis|talk]]) 13:22, 7 June 2023 (UTC)&lt;br /&gt;
** Works fine, shadows gets rendered, but move when turning the head.&lt;br /&gt;
** Eye view point is about 0.2 meter above where the view is defined, so I have to duck my head to look out through the HUD and stuff.&lt;br /&gt;
* Oculus Quest 2, SteamVR via Virtual Streamer App, Windows 10, Nightly build --[[User:Skyclmbr]]  18:17, 11 October 2023 (UTC)&lt;br /&gt;
** Head tracking works fine, but right eye screen flickers constantly throughout flight&lt;br /&gt;
** Starting head position is off, depending on how much I move around while it's loading on the SteamVR page.&lt;br /&gt;
* HTC Vive, Monado (to window), Linux/X11 (ArchLinux), nVidia proprietary -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 22:36, 17 December 2021 (UTC)&lt;br /&gt;
** only basic display to window tested&lt;br /&gt;
** osgXR master&lt;br /&gt;
* Monado dummy driver, Linux/X11 (ArchLinux), Intel mesa -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 22:36, 17 December 2021 (UTC)&lt;br /&gt;
** only basic display to window tested&lt;br /&gt;
** osgXR master&lt;br /&gt;
** /sim/vr/depth-info=false&lt;br /&gt;
* Monado Dummy HMD, Linux/X11 (Debian), AMD Mesa Drivers [[User:merspieler|Nia]] ([[User talk:merspieler|talk]]) 23:27, 17 December 2021 (UTC)&lt;br /&gt;
** Applying the following patch: &amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/src/XRState.cpp b/src/XRState.cpp&lt;br /&gt;
index ce09bcd..5bcbbca 100644&lt;br /&gt;
--- a/src/XRState.cpp&lt;br /&gt;
+++ b/src/XRState.cpp&lt;br /&gt;
@@ -1017,7 +1017,7 @@ XRState::UpResult XRState::upSession()&lt;br /&gt;
         unsigned int thisDepthBits = 0;&lt;br /&gt;
         switch (format)&lt;br /&gt;
         {&lt;br /&gt;
-            case GL_RGBA16:&lt;br /&gt;
+            case GL_RGB10_A2:&lt;br /&gt;
                 // FIXME This one will do for now...&lt;br /&gt;
                 if (!chosenSwapchainFormat)&lt;br /&gt;
                     chosenSwapchainFormat = format;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* HP Reverb G2, Gigabyte (AMD) RX 6700 XT, Windows 10, SteamVR -- [[User:Gastcan|Gastcan]] ([[User talk:Gastcan|talk]]) 02:15, 09 July 2023 (UTC)&lt;br /&gt;
** (Using the Windows nightly build 08-Jul-23)&lt;br /&gt;
** The view follows the direction of the headset, but the image stutters; outside scenery and within the cockpit&lt;br /&gt;
&lt;br /&gt;
* HP Reverb G2, Gigabyte (AMD) RX 6700 XT, Debian (Trixie), Monado -- [[User:Gastcan|Gastcan]] ([[User talk:Gastcan|talk]]) 16:15, 14 August 2023 (UTC)&lt;br /&gt;
** Compiled from sources: OpenXR-SDK-Source, Monado, osgXR (amalon), SimGear (amalon), FlightGear (amalon)&lt;br /&gt;
** The view follows the direction of the headset with minor stuttering.&lt;br /&gt;
**&amp;lt;s&amp;gt;The viewpoint/perspective drifts clockwise, to the right.&amp;lt;/s&amp;gt; &amp;lt;- Drifting is virtually eliminated by adding '[https://gitlab.freedesktop.org/mateosss/basalt Basalt for Monado]' (provides 6DoF).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you've got VR working, feel free to add your configuration above.&lt;br /&gt;
&lt;br /&gt;
The following testing is desired:&lt;br /&gt;
*SteamVR, Linux, AMD graphics:&lt;br /&gt;
**Test that motion smoothing works (its unsupported on NVidia)&lt;br /&gt;
** moving head side to side should reproject using depth buffer&lt;br /&gt;
**try suspending fgfs with Ctrl+Z in terminal (resume with fg) to force reprojection&lt;br /&gt;
*Monado, Linux:&lt;br /&gt;
** May be awkward to test as it crashes in latest NVidia proprietary drivers&amp;lt;ref&amp;gt;https://gitlab.freedesktop.org/monado/monado/-/issues/122&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***There's now a workaround mentioned in that ticket that allows for basic testing&lt;br /&gt;
** Use at least osgXR 0.3.6 for monado workaround, or &amp;lt;code&amp;gt;--disable-vr&amp;lt;/code&amp;gt; and enable VR with GUI&lt;br /&gt;
*SteamVR, Windows, with a headset (I've only attempted to null driver, and it at least partly worked):&lt;br /&gt;
**Needs building with at least osgXR 0.3.7 for Windows bindings, and my osgxr/osgxr_clean branch of flightgear/fgdata/simgear&lt;br /&gt;
**May need --disable-sentry&lt;br /&gt;
**Test headset output and controllers&lt;br /&gt;
&lt;br /&gt;
Issues can be reported:&lt;br /&gt;
* On the flightgear-devel [[Mailing lists|mailing list]]&lt;br /&gt;
* To the {{tickets|FlightGear bug tracker}} if the issue is reproducible on the next branch&lt;br /&gt;
* To the [{{github issues url |user=amalon |repo=flightgear-vr}} flightgear-vr issue tracker]&lt;br /&gt;
* To the [{{github issues url |user=amalon |repo=osgXR}} osgXR issue tracker] if it is known to be a non-flightgear specific bug in osgXR&lt;br /&gt;
&lt;br /&gt;
But please be aware of the known caveats mentioned above, and the roadmap below.&lt;br /&gt;
&lt;br /&gt;
==Performance==&lt;br /&gt;
&lt;br /&gt;
Here are some pointers to get the best VR experience.&lt;br /&gt;
* Ensure your runtime supports asynchronous reprojection, which may alleviate the nausea induced by lower frame rates.&lt;br /&gt;
**On Linux / SteamVR / NVidia proprietary driver, ensure you have at least driver version 270.&lt;br /&gt;
*If your frame rate is being capped at the refresh rate of your desktop monitor, try disabling VSync in both flightgear settings and your driver settings&lt;br /&gt;
**On Linux / NVidia proprietary driver, its found in OpenGL settings in nvidia-settings.&lt;br /&gt;
*If FlightGear is getting throttled by SteamVR (to try and ensure a consistent, if slow, frame rate), consider switching to fixed throttling (in per-application video settings) and playing with the sliders. You may prefer no frame rate throttling but a higher predicted frame time.&lt;br /&gt;
*Enabling multithreading may get you better performance, e.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/multithreading-mode=CullThreadPerCameraDrawThreadPerContext&amp;lt;/code&amp;gt;&lt;br /&gt;
*If using an AMD GPU, use [https://gitlab.com/corectrl/corectrl CoreCtrl] and set the GPU to the &amp;quot;Virtual Reality&amp;quot; power profile with GPU and memory clocked to max. You may also benefit from changing the CPU frequency governor to Performance.&lt;br /&gt;
&lt;br /&gt;
==Implementation Details==&lt;br /&gt;
&lt;br /&gt;
===Concepts===&lt;br /&gt;
&lt;br /&gt;
====Interaction Modes====&lt;br /&gt;
&lt;br /&gt;
Interaction modes are a way of describing (via XML) how a VR controller should look and behave in a particular context. It roughly corresponds to a virtual control you can hold (and let go of), for example:&lt;br /&gt;
*When you're holding a helicopter collective control, the pitch angle of the controller should control the collective pitch (and look like a collective in your hand).&lt;br /&gt;
*When you're pointing the controller at a GUI or cockpit controls it should pick along a line, rendered in a specific way, and emulate mouse events to those controls (and look like a small laser pointer control or a pointing hand/glove).&lt;br /&gt;
*When you're teleporting around, it should pick along a parabolic arc, rendered a specific way, and teleport there when the button is released.&lt;br /&gt;
*When you're using the flight recorder it should treat the controller trackpad as a rewind/fast forward (and look like a fancy TV remote or something).&lt;br /&gt;
&lt;br /&gt;
The definition of interaction modes should be generic enough that custom ones can be provided with aircraft, or defined separately and work with any aircraft, but also powerful enough that a complex and intuitive control can be defined with a minimum of Nasal scripting.&lt;br /&gt;
&lt;br /&gt;
==Roadmap==&lt;br /&gt;
&lt;br /&gt;
===Development targets===&lt;br /&gt;
*Merge stable &amp;amp; minimally functional code into next ({{Merge-request |project=flightgear |id=253}}, {{Merge-request |project=fgdata |id=238}}) {{done}}&lt;br /&gt;
**Bare functionality {{done}}&lt;br /&gt;
**Stability {{done}}&lt;br /&gt;
*Merge some form of desktop mirroring of VR view ({{Merge-request |project=flightgear |id=260}}, {{Merge-request |project=fgdata |id=241}}) {{done}}&lt;br /&gt;
*Merge visibility mask support ({{Merge-request |project=simgear |id=98}}, {{Merge-request |project=flightgear |id=264}}, {{Merge-request |project=fgdata |id=244}}) {{done}}&lt;br /&gt;
* Polish {{not done}}&lt;br /&gt;
**Make launcher accessible to VR user {{not done}}&lt;br /&gt;
**Make splash screen VR friendly {{done}}&lt;br /&gt;
**Make GUI accessible to VR user {{not done}}&lt;br /&gt;
**Make aircraft center accessible to VR user {{not done}}&lt;br /&gt;
*Functionality {{progressbar|40}}&lt;br /&gt;
**Controller flight support {{progressbar|80}}&lt;br /&gt;
*** Haptic feedback {{not done}}&lt;br /&gt;
**Controller interaction support {{progressbar|40}}&lt;br /&gt;
** Walker locomotion / room scale {{not done}}&lt;br /&gt;
&lt;br /&gt;
===General tasks ===&lt;br /&gt;
&lt;br /&gt;
*Stability {{done}}&lt;br /&gt;
**Clean shutdown {{done}}&lt;br /&gt;
***SteamVR for Linux hangs on OpenXR app shutdown&amp;lt;ref name=&amp;quot;github-SteamVR-422&amp;quot;&amp;gt;{{github issues url|ValveSoftware|SteamVR-for-Linux|number=422}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
** Handle OpenXR stopping {{done}}&lt;br /&gt;
***SteamVR for Linux kills running app even if it ends session&amp;lt;ref&amp;gt;{{github issues url|ValveSoftware|SteamVR-for-Linux|number=461}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
*Resolve questions around VR mirror switching {{done}}&lt;br /&gt;
*Performance {{progressbar|10}}&lt;br /&gt;
** Handle shouldRender=false by somehow disabling VR cameras (maybe setting cull mask to 0) {{not done}}&lt;br /&gt;
**SceneView mode: Combine culling traversal {{not done}}&lt;br /&gt;
**Check why update isn't proceeding in parallel with multithreading {{not done}}&lt;br /&gt;
**Use OpenXR visibility mask extension to avoid rendering to invisible fragments {{done}}&lt;br /&gt;
*Sound {{progressbar|0}}&lt;br /&gt;
** Ensure surround sound is relative to user's head {{not done}}&lt;br /&gt;
**Investigate a way to use appropriate OpenAL binaural mode automatically {{not done}}&lt;br /&gt;
**Specify separate sound device for VR so it switches automatically? {{not done}}&lt;br /&gt;
&lt;br /&gt;
===User facing features ===&lt;br /&gt;
&lt;br /&gt;
*Display {{progressbar|60}}&lt;br /&gt;
**Show views on HMD {{done}}&lt;br /&gt;
**Configurable mirror on desktop window {{done}}&lt;br /&gt;
***Left, Right, Left &amp;amp; Right {{done}}&lt;br /&gt;
***Composited mirror mode (combine &amp;amp; blend views and allow zooming) {{paused}}&lt;br /&gt;
**General [[HDR Pipeline]] Support {{progressbar|50}}&lt;br /&gt;
**Geometry shader multi viewport ([[HDR Pipeline]]) {{progressbar|50}}&lt;br /&gt;
**OVR_multiview2 with OSG branch ([[HDR Pipeline]]) {{progressbar|20}}&lt;br /&gt;
* Motion tracking {{progressbar|50}}&lt;br /&gt;
** Follow motion of HMD {{done}}&lt;br /&gt;
**Move master camera instead of scene slave cameras (presumably would fix surround sound) {{not done}}&lt;br /&gt;
*Settings {{progressbar|20}}&lt;br /&gt;
** Mirror settings {{done}}&lt;br /&gt;
**Dynamic toggling of VR {{done}}&lt;br /&gt;
**Sound settings? {{not done}}&lt;br /&gt;
***Sound reference frame (user's head or room)? {{not done}}&lt;br /&gt;
**Advanced VR settings {{not done}}&lt;br /&gt;
***validation layer {{not done}}&lt;br /&gt;
*** submit depth information {{done}} but needs testing (SteamVR+Linux+nVidia doesn't do motion smoothing yet)&lt;br /&gt;
***osgXR VR mode {{not done}}&lt;br /&gt;
****Fix slave cameras mode clearing {{not done}}&lt;br /&gt;
***osgXR swapchain mode {{not done}}&lt;br /&gt;
*Platform support {{progressbar|70}}&lt;br /&gt;
**Linux/X11/OpenGL graphics bindings {{done}}&lt;br /&gt;
** Monado support {{progressbar|60}}&lt;br /&gt;
**Windows/OpenGL graphics bindings {{done}}&lt;br /&gt;
**Windows Mixed Reality render via DirectX bindings {{not done}}&lt;br /&gt;
* Splash screen {{progressbar|80}}&lt;br /&gt;
**Show splash screen as quad layer for runtime to composite {{done}}&lt;br /&gt;
**Cube map/quads background provided by aircraft {{progressbar|20}}&lt;br /&gt;
*GUI {{progressbar|10}} {{priority|2}}&lt;br /&gt;
**Shown over mirror on desktop window {{done}}&lt;br /&gt;
** Expose a menubar &amp;amp; GUI, rendered to a quad or cylinder in front of VR user when they activate {{not done}}&lt;br /&gt;
**Interact with GUI buttons etc using controllers as lasers {{not done}}&lt;br /&gt;
*Launcher {{not done}}&lt;br /&gt;
**Show launcher in VR similar to GUI when enabled via command line or launcher option {{not done}}&lt;br /&gt;
**Transition to flightgear {{not done}}&lt;br /&gt;
**Transition to aircraft center with VR already started {{not done}}&lt;br /&gt;
**Transition back to flightgear from aircraft center {{not done}}&lt;br /&gt;
**More VR friendly environment&lt;br /&gt;
***A simple background cubemap, shared with splash {{not done}}&lt;br /&gt;
***A hanger (like xplane11)? {{not done}}&lt;br /&gt;
*Controller support {{progressbar|50}}&lt;br /&gt;
**Basic action support in osgXR API {{done}}&lt;br /&gt;
**Tie osgXR actions into FG's input system {{done}}&lt;br /&gt;
**Helicopter flight controls (can use for planes too) {{done}}&lt;br /&gt;
**Plane flight controls {{not done}}&lt;br /&gt;
** Render controllers {{progressbar|20}}&lt;br /&gt;
**Hand tracking (robot hand) {{progressbar|90}}&lt;br /&gt;
** Render skinned hand {{not done}}&lt;br /&gt;
**Basic interaction with controls {{progressbar|80}}&lt;br /&gt;
***Grasp surfaces {{{progressbar|90}}&lt;br /&gt;
***Force feedback for haptic gloves {{not done}}&lt;br /&gt;
**Advanced interaction with animated controls {{progressbar|90}}&lt;br /&gt;
*** Direct manipulation mouse mode for testing without VR {{progressbar|90}}&lt;br /&gt;
***Inverse kinematics of translate and rotate animations {{done}}&lt;br /&gt;
***Ability to specify frictions {{not done}}&lt;br /&gt;
***Ability to specify ranges (where can't be deduced) {{not done}}&lt;br /&gt;
***Ability to hint what aircraft processes/filters/kinematics should be reversible {{progressbar|10}}&lt;br /&gt;
** Haptic feedback {{not done}}&lt;br /&gt;
* Walker VR locomotion / Room scale {{progressbar|0}}&lt;br /&gt;
** Walker follows user {{not done}}&lt;br /&gt;
**Parabolic arc teleport {{not done}}&lt;br /&gt;
**Snap into seats {{not done}}&lt;br /&gt;
**Easy turning around {{not done}}&lt;br /&gt;
&lt;br /&gt;
===Aircraft compatibility===&lt;br /&gt;
&lt;br /&gt;
This section is largely about how usable controls are in VR with direct manipulation.&lt;br /&gt;
&lt;br /&gt;
====[[Cessna 172P]] ====&lt;br /&gt;
*Controls&lt;br /&gt;
**Flaps {{progressbar|90}}&lt;br /&gt;
***kinematic needs to be reversible {{progressbar|90}}&lt;br /&gt;
** Visors {{progressbar|70}}&lt;br /&gt;
***correct relative friction {{not done}}&lt;br /&gt;
**Opening of doors {{not done}}&lt;br /&gt;
***reversing of gain expression {{not done}}&lt;br /&gt;
&lt;br /&gt;
====[[Eurocopter EC130 B4]] ====&lt;br /&gt;
* Engine start&lt;br /&gt;
** Engine cutoff lever reversing (Alt+C required) {{not done}}&lt;br /&gt;
**External power on (GUI required) {{not done}}&lt;br /&gt;
**External power off (GUI required) {{not done}}&lt;br /&gt;
**Throttle roll (middle mouse drag required) {{not done}}&lt;br /&gt;
*Take off &amp;amp; flight&lt;br /&gt;
** Arms &amp;amp; hands get a bit in the way {{not done}}&lt;br /&gt;
*Controls&lt;br /&gt;
** Engine cutoff lever {{not done}}&lt;br /&gt;
***Uses nasal, needs pick animation binding of some sort&lt;br /&gt;
**ELT {{progressbar|50}}&lt;br /&gt;
***Both /ELT/test and /ELT/armed can be set to bool&lt;br /&gt;
***Both can get set though&lt;br /&gt;
**Doors &amp;amp; hatches {{not done}}&lt;br /&gt;
***Add limits&lt;br /&gt;
&lt;br /&gt;
====[[McDonnell Douglas F-15 Eagle]] ====&lt;br /&gt;
*Model&lt;br /&gt;
**Floating switches are very noticeable {{not done}}&lt;br /&gt;
**HUD should be at infinity {{not done}}&lt;br /&gt;
&lt;br /&gt;
====[[Robinson R22]] ====&lt;br /&gt;
*Controls&lt;br /&gt;
**Tilting T-bar {{progressbar|90}}&lt;br /&gt;
***limit range? {{not done}}&lt;br /&gt;
**Collective awkward to get at {{not done}}&lt;br /&gt;
**Throttle roll &amp;amp; governor switch? {{not done}}&lt;br /&gt;
&lt;br /&gt;
====[[Robinson R44]] ====&lt;br /&gt;
*Controls&lt;br /&gt;
**Tilting T-bar {{not done}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Core development projects]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Areas_populated_with_osm2city_scenery&amp;diff=139722</id>
		<title>Areas populated with osm2city scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Areas_populated_with_osm2city_scenery&amp;diff=139722"/>
		<updated>2024-04-17T22:37:24Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|As of FlightGear 2020.3.7 LTS, OSM2City scenery is '''automatically''' downloaded as you fly, with [[TerraSync]] enabled - see [[OSM2City_1st_Worldbuild | 1st world-build of OSM2City]]. TerraSync is the normal way to download OSM2City.}}{{Note|You should '''remove''' old custom sceneries containing OSM2City object folders that are obsolete because of OSM2City on TerraSync. If these sceneries contain folders like Terrain that are not obsolete, you can contact the author or delete OSM2City folders. See [[OSM2City_1st_Worldbuild#Troubleshooting|Troubleshooting the 1st OSM2City worldbuild]].}}[[File:SOTM-Mar19.jpg|thumb|OSM2City output for Madrid, Spain - 2017.2. See [[:Category:Screenshots_of_scenery_with_OSM2City_output|here]] for more screenshots.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As of FlightGear 2020.3.8 and [https://www.flightgear.org/download/ later], the normal way to get OSM2City is ''automatic'' downloads as you fly through [[TerraSync]] with the latest version of FlightGear. OSM2City scenery for the whole world has been generated from the objects in the OSM database - see [[OSM2City_1st_Worldbuild |1st world-build of OSM2City]]. 2020.3.6 LTS and earlier will not automatically download OSM2City. &lt;br /&gt;
&lt;br /&gt;
This article contains a list of areas having [[osm2city.py|osm2city]] generated scenery available for ''manual'' download. The [http://osm2city.readthedocs.io/en/latest/using.html OSM2City manual] describes how to use the sceneries in FlightGear.  &lt;br /&gt;
&lt;br /&gt;
'''Note:''' You only need to download from this page if: '''a)''' your internet connection is limited or, '''b)''' you are looking for OSM2City scenery built with different options or a new OSM2City version than the rollout on TerraSync or, '''c)''' you are using an old version of FlightGear and can't update to 2020.3.8 LTS or [https://www.flightgear.org/download/ later].&lt;br /&gt;
&lt;br /&gt;
== FlightGear Versions ==&lt;br /&gt;
The FlightGear versions mentioned in the tables below indicate compatibility as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Compatible FG versions !! Effects !! Choose which objects to show !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| 2020.1 || 2019.2 x-mas and all newer versions || traffic, regionalization || yes || The big change is the possibility to render the majority of buildings with the FG random buildings shader, which results in faster rendering and depending on the region a factor 4-10 reduction in disk size. Your FG will most probably crash immediately if you use such a scenery with an older FG version.&lt;br /&gt;
|-&lt;br /&gt;
| 2017.2 || 2017.2.2 and all newer versions || traffic, regionalization || yes || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If a table entry specifies both 2017.2 and 2020.1, then it means there is a sub-folder &amp;quot;Buildings_list&amp;quot; within the scenery. By renaming folder &amp;quot;Buildings&amp;quot; to &amp;quot;Buildings_mesh&amp;quot; and then renaming &amp;quot;Buildings_list&amp;quot; to &amp;quot;Buildings&amp;quot; you can transform from 2017.2 to 2020.1 and get the rendering advantages. (There is no requirement for such a folder structure - vanosten might provide some of the sceneries like this for convenience.)&lt;br /&gt;
&lt;br /&gt;
There are older osm2city sceneries around, but there is no reason to use an old FG version: if your computer does not run a newer version, then chances are high that the rendering of osm2city will be poor, too.&lt;br /&gt;
&lt;br /&gt;
== Available areas ==&lt;br /&gt;
Announcements of new sceneries should be made in https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32254.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Download link !! Area !! In [[TerraSync]] !! Min. FG version !! Created Date !! Created By !! [[Project3000]]&amp;lt;ref&amp;gt;Meaning that the scenery was generated respecting objects placed by Project3000, but does not contain it&amp;lt;/ref&amp;gt; !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| [https://cdn.merspieler.tk/osm2city/current/ '''World''']&lt;br /&gt;
| '''Entire World''' || '''Yes'''&lt;br /&gt;
| '''2020.1''' || '''Completed''' || '''Nia''' ||  || '''NOTE:''' Downloaded ''automatically'' in FlightGear 2020.3.7 and [https://www.flightgear.org/download/ later]. Requires at least FlightGear 2020.1. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=35581 forum thread]. See [[OSM2City_1st_Worldbuild |1st world-build of OSM2City]] for info and tips on performance.&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/file/d/1z8706fqh2G5sCSRwkEAHZAo2UbnduyRd Iceland] || The island of Iceland || || 2017.2 and 2020.1 || 2020-05-11 || vanosten || &lt;br /&gt;
||&lt;br /&gt;
To see buildings :&amp;lt;/br&amp;gt; &lt;br /&gt;
Flightgear 2020.1 and later: Rename &amp;lt;code&amp;gt;Buildings_list&amp;lt;/code&amp;gt; folder to &amp;lt;code&amp;gt;Buildings&amp;lt;/code&amp;gt; for faster buildings&amp;lt;/br&amp;gt;&lt;br /&gt;
Flightgear 2017.2 and later: Rename &amp;lt;code&amp;gt;Buildings_mesh&amp;lt;/code&amp;gt; folder to &amp;lt;code&amp;gt;Buildings&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=1kRormoV7na2WzPRrpMjQsBB8XhCpP_Cw Falkland] || All islands || || 2017.2 and 2020.1 || 2019-12-26 || vanosten || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=196_ZMkIejQPGSyyKVArJc8mJseqAVekZ Kansas] || 37-39N, 96-98W || || 2017.2 and 2020.1 || 2019-12-24 || vanosten || || Using OWBB_GENERATE_BUILDINGS=True, i.e. placing buildings in plausible places even though no OSM information available.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/legoboyvdlp/London-OSM-fg-CustomScenery London]&lt;br /&gt;
| London area || || 2017.2 || 2019-10-04|| legoboyvdlp || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://sites.google.com/site/ecuadorflightgear/ Ecuador]&lt;br /&gt;
| Entire country|| || 2017.2 || 2019-07-28 || || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32254&lt;br /&gt;
|-&lt;br /&gt;
| [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=34582 Sweden]&lt;br /&gt;
| Entire country|| || 2017.2? || 2019-07-28 || || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=34582&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZwMCT7ZAImYyISByDJsWLHR4BWgjBFwJum7 Hawaii]&lt;br /&gt;
| Hawaii main islands [-160.25_18.875_-154.75_22.25] || || 2017.2 || 2018-11-18 || vanosten || March 2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZup1T7Z3YpnkdPdHtHq9GFcrFDx0JRP6nqX Holland]&lt;br /&gt;
| Most of North and South Holland plus Flevoland in the Netherlands [4_52_6_53] || || 2017.2 || 2018-11-16 || vanosten || March 2017 || &lt;br /&gt;
|-&lt;br /&gt;
| [https://1drv.ms/u/s!AuIh-169bDZ9tlKlP3GQ1Ez1r64p w060n10]&lt;br /&gt;
| Barbados [bottom=10 left=-60 top=20 right=-50] || || 2017.2 || 2017-11-04 || dutchguy || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://1drv.ms/u/s!AuIh-169bDZ9tlPnC1UGd7CjdgMf w070n10]&lt;br /&gt;
| Eastern Caribbean [bottom=10 left=-70 top=20 right=-60] || || 2017.2 || 2017-11-04 || dutchguy || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZa8Nk7Z5jaeflLeCvS9VpyVWS3k28jKEASV LKPR]&lt;br /&gt;
| Area around LKPR Prague airport [14-14.75 East, 49.875-50.25  North] || || 2017.2 || 2017-10-08 || vanosten || March 2017 || &lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZrMy3Ze3rXYVgAurYFp96YIHMj9X9ptLoy Switzerland]&lt;br /&gt;
| Swiss national boundaries || || 2017.2 || 2017-05-23 || vanosten || March 2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZqjqaZtxBUwA5KJr5CeuqTYzk9Yk9KXbDk KBOS]&lt;br /&gt;
| bottom=59 left=4.5 top=62 right=6 || || 2017.2 || 2017-05-20 || vanosten || March 2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZaSqaZsbS9ltAfHozgY335PnEIE4sPwutV ENBR]&lt;br /&gt;
| bottom=42.125 left=-72 top=42.625 right=-70.5 || || 2017.2 || 2017-05-20 || vanosten || March 2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/file/d/1aR1jF0AbeLkKk21SZc-Tg-0f3-GSg5nc/view?usp=sharing Europe/Spain]&lt;br /&gt;
| || || 2017.2 || || || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32062&amp;amp;start=15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Old and most probably obsolete sceneries ==&lt;br /&gt;
These sceneries are not supported, the links might be broken and they might not work. The Table is kept just for reference.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Download link !! Area !! In [[TerraSync]] !! Forum thread !! Min. FG version !! Created Date !! Created By !! [[Project3000]]&amp;lt;ref&amp;gt;Meaning that the scenery was generated respecting objects placed by Project3000, but does not contain it&amp;lt;/ref&amp;gt; !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| [https://onedrive.live.com/redir?resid=7d366cbd5efb21e2!1642&amp;amp;authkey=!APsD2Zn-Jq3m5OA&amp;amp;ithint=folder%2czip The Netherlands]&lt;br /&gt;
| [[File:EHoutline.png|thumb|150px]] || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://onedrive.live.com/redir?resid=7d366cbd5efb21e2!1645&amp;amp;authkey=!AAx41T78jYrL4KI&amp;amp;ithint=file%2czip Southern UK]&lt;br /&gt;
| [[File:EGOutline.png|thumb|150px]] || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://onedrive.live.com/redir?resid=7d366cbd5efb21e2!1646&amp;amp;authkey=!AFAFUx-rFpUiRPk&amp;amp;ithint=file%2czip Ireland]&lt;br /&gt;
| [[File:EIOutline.png|thumb|150px]] || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://onedrive.live.com/redir?resid=7D366CBD5EFB21E2!1651&amp;amp;authkey=!APsD2Zn-Jq3m5OA&amp;amp;ithint=file%2czip Switzerland]&lt;br /&gt;
| [[File:LSOutline.png|thumb|150px]] || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=0B2CN49kDuXHgZ3U0LUFnU2ZJREE Phuket]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=30113 || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://dl.dropboxusercontent.com/u/24846517/fg/osm2city/LOWI_OSM_buildings_20140928.tgz LOWI]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=19625 || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=0B5TeZxXfefn3NUp4NkM2b1hPVDQ African/Canary islands]&lt;br /&gt;
| || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=0B5TeZxXfefn3Vll5cGVEcndZMTg Europe/Portugal]&lt;br /&gt;
| || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Poland]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Slovakia]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Lithuania]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Latvia]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Estonia]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Bulgaria]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Hungary]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Romania]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=0B5TeZxXfefn3VkViMDlCMXlrQUU Us/California]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32187 || 2017.1 || || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery]]&lt;br /&gt;
[[Category:Lists]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_WS3.0_Effects&amp;diff=139721</id>
		<title>Hackathon Proposal: WS3.0 Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_WS3.0_Effects&amp;diff=139721"/>
		<updated>2024-04-17T22:37:03Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hackathon Proposal&lt;br /&gt;
|title=WS 3.0 Effects&lt;br /&gt;
|image = Edinburgh rendering using WS3.0.jpg&lt;br /&gt;
|sponsor=Stuart&lt;br /&gt;
|supporters=Nia&lt;br /&gt;
|background=&lt;br /&gt;
Currently we have some of the pieces required for WS3.0:&lt;br /&gt;
* We can generate the underlying LOD mesh with a texture draped over it.  &lt;br /&gt;
* We can dynamically generate airports&lt;br /&gt;
* We can load the scenery in FG.&lt;br /&gt;
... but the WS3.0 scenery in FG is basically a dark gray blob.  The bit that's missing is having the scenery pick up material definitions and therefore Effects and shaders.&lt;br /&gt;
&lt;br /&gt;
This hackathon idea is to apply material definitions to that scenery and perhaps develop a shader that will use the landclass texture to generate some plausible texturing.&lt;br /&gt;
|skills=C++&lt;br /&gt;
|opportunities=&lt;br /&gt;
&lt;br /&gt;
* Materials&lt;br /&gt;
* Effects&lt;br /&gt;
* OSG and Virtual Planet Builder&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Useful resources:&lt;br /&gt;
* [[Virtual Planet Builder]]&lt;br /&gt;
* [[World Scenery 3.0 roadmap]]&lt;br /&gt;
* How the VPB is rendered in FlightGear:  https://sourceforge.net/p/flightgear/simgear/ci/cbd8e3acc4eab6724b5be32f64eeeb0530e207ed/&lt;br /&gt;
* How trees are created at the moment:  &lt;br /&gt;
** simgear/scene/tgdb/obj.cxx  &lt;br /&gt;
** simgear/scene/tgdb/SGTileGeometryBin.cxx&lt;br /&gt;
** simgear/scene/tgdb/SGTileDetailsCallback.cxx&lt;br /&gt;
** simgear/scene/tgdb/VPBTechnique.cxx&lt;br /&gt;
* Runtime Airport building&lt;br /&gt;
** flightgear/src/Airports/AirportBuilder.cxx&lt;br /&gt;
** add a line to the STG file - [ICAO].icao&lt;br /&gt;
&lt;br /&gt;
==Adding Trees==&lt;br /&gt;
&lt;br /&gt;
Details of sub-project to add trees to WS3.0.&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
* FG has the concept of a Material - how a particular type of land (a landclass) is rendered by the simulator (e.g. texture, Effect, tree density, roughness).&lt;br /&gt;
** The materials are defined in a set of XML files in fgdata/Materials.  Different regions (defined by lon/lat) can define different materials.  So a forest in Norway contains different trees than one in Brazil.&lt;br /&gt;
** See fgdata/Docs/README.materials for the XML format information&lt;br /&gt;
** See [[Howto:Editing tile textures and materials]]&lt;br /&gt;
** See Materials/default/global-summer.xml for a good rundown of the different landclasses.&lt;br /&gt;
* The materials are built into a SGMaterialLibrary (simgear/simgear/scene/material/matlib.cxx).&lt;br /&gt;
* In the old scenery, the terrain consists of a triangular mesh that describes both the shape (elevation) of the terrain and the landclass of the terrain.  Each triangle of the terrain mesh as a single landclass (e.g. &amp;quot;EvergreenBroadCover&amp;quot;).&lt;br /&gt;
* In the WS3.0 scenery, the terrain mesh only contains shape (elevation) information, and is created at runtime from a heightmap.  The landclass of the terrain is provided by the texture.  Each triangle can contain bits of multiple landclasses.&lt;br /&gt;
&lt;br /&gt;
=== How Trees are grown - old scenery ===&lt;br /&gt;
&lt;br /&gt;
Trees are generated in the Old scenery as follows:&lt;br /&gt;
# simgear/simgear/scene/tgdb/obj.cxx SGLoadBTG(const std::string&amp;amp; path, const simgear::SGReaderWriterOptions* options) loads a &amp;quot;BTG&amp;quot; file.&lt;br /&gt;
## line 113 created a SGTileDetailsCallback.  This is a callback that will generate more detail for the tile when the viewpoint gets within range.  This avoid having to create trees for tiles that might be 100km away and which we never get any closer to.&lt;br /&gt;
## line 118 creates a PagedLOD which will call the FGTileDetailsCallback when the viewer gets within range.&lt;br /&gt;
# simgear/simgear/scene/tgdb/SGTileDetailsCallback.hxx readNode(const std::string&amp;amp;, const osgDB::Options*) does the actual work to generate the details for a tile such as forests, random objects, lights, and it called by the PagedLOD object above.&lt;br /&gt;
## line 138 calls generateRandomTileObjects to create the forest, buildings and buildings&lt;br /&gt;
## generateRandomTileObjects (line 976) builds a set of OSG nodes and makes various calls to generate the random features.&lt;br /&gt;
### line 1086 calls computeRandomForest to create a list of the random trees based on the terrain triangles and their landclasses.  computeRa&lt;br /&gt;
### computeRandomForest considers each terrain triangle in turn and...&lt;br /&gt;
#### looks up the landclass in the materials library to determine if this landclass (and therefore triangle) contains any trees&lt;br /&gt;
#### assuming it does, gets a TreeBin to put these trees (based on having the same settings as an existing tree definitions), then&lt;br /&gt;
#### generates a series of random points across the triangle, each of which will be rendered into a tree.&lt;br /&gt;
### line 1089 converts that intermediate datastructure into the OSG code to actually render the trees.&lt;br /&gt;
&lt;br /&gt;
=== How to grow trees in WS3.0 ===&lt;br /&gt;
&lt;br /&gt;
As noted above, one of the key differences between the old scenery and WS3.0 is that a given triangle in the terrain mesh doesn't have a single landclass.  Instead we need to look it up.&lt;br /&gt;
&lt;br /&gt;
* simgear/simgear/scene/tgdb/VPBTechnique.cxx is used to create the mesh from the heightmap.  &lt;br /&gt;
* The key function is VPBTechnique::init.  At present this creates a BufferData containing an EffectGeode.&lt;br /&gt;
* We (probably?) want to change that so it creates an osg::Group node, which contains both the EffectGeode, plus some other nodes containing the trees and other random objects.  &lt;br /&gt;
** Because this is already loaded in a PagedLOD, provided we generate this at the right LOD Level (_terrainTile-&amp;gt;getTileID().level==6 perhaps?  or configurable), we don't need to mess around with any callbacks.&lt;br /&gt;
* The landclass information is stored in the first texture, assigned by applyColorLayers().&lt;br /&gt;
* It should be possible to interpolate between the texture coordinates of the generated mesh and lookup the landclass of the texture. (osg::Texture2D.getImage()-&amp;gt;getColor(const Vec2 &amp;amp;texcoord).&lt;br /&gt;
* We could extend the MaterialLibrary to include lookup via landclass code.  The simplest way would be to add new &amp;lt;name&amp;gt; values that match the values from the landclass texture as integers.  For the hackathon, I suggest just adding landclasses 22-24 to the &amp;quot;EvergreenForest&amp;quot; material.&lt;br /&gt;
&lt;br /&gt;
So the pseudo-code might look like this:&lt;br /&gt;
# IF (_terrainTile-&amp;gt;getTileID().level==6) THEN&lt;br /&gt;
# FOREACH triangle (geometry) :&lt;br /&gt;
## Generate a set of random points on the triangle&lt;br /&gt;
## FOREACH point (random points) :&lt;br /&gt;
### Determine the texture coordinate of the point&lt;br /&gt;
### Determine the landclass of the point in the texture&lt;br /&gt;
### Lookup the landclass in the MaterialsLibrary&lt;br /&gt;
### IF the landclass has mat-&amp;gt;get_wood_coverage() &amp;gt; 0 THEN add the point to an appropriate TreeBin in an SGTreeBinList&lt;br /&gt;
# use the SGTileDetailsCallback::createForest() method to create the appropriate forest in OSG&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Prototyping_an_OANS_using_MapStructure&amp;diff=139720</id>
		<title>Howto:Prototyping an OANS using MapStructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Prototyping_an_OANS_using_MapStructure&amp;diff=139720"/>
		<updated>2024-04-17T22:36:50Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
[[File:OANS-prototype.png|thumb|Screen shot showing an OANS prototype based on the Canvas/MapStructure system]]&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
[[File:AptDat850-canvas.png|thumb|Due to lack of apt.dat v850 support, most airports show only up as runways.&amp;lt;ref&amp;gt;https://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=39454&amp;amp;p=389593#p389541&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
'''Last updated: 08/2021'''&lt;br /&gt;
&lt;br /&gt;
The latest apt.dat format is 1100. genapts already supports up to a fairly recent version. Functionally identical to 850, it has several new lighting and linear features (available since 2019.2 in terragear already, thanks to D-ECHO) and improvements to ATC / ground services.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37027889/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The newest specification is available at:&lt;br /&gt;
http://developer.x-plane.com/wp-content/uploads/2019/04/XP-APT-1100-Spec_revised_04-11-2019.pdf&lt;br /&gt;
&lt;br /&gt;
X-Plane also now makes extensive use of so-called &amp;quot;polygons&amp;quot;. This causes problems when authors use them for aprons or taxiways despite&lt;br /&gt;
X-Plane's efforts to discourage this. Stuggart in TerraSync is a good example and a fairly substantial number of airports, and a majority of major ones would be unusable using pure apt.dat at present.&lt;br /&gt;
&lt;br /&gt;
This would either require manual conversion of polygons to taxiways (one click per airport using World Editor, not multiple airports at once however), or else parsing of the .dsf format.&lt;br /&gt;
&lt;br /&gt;
The .dsf format is a binary format, with each .dsf corresponding to a&lt;br /&gt;
scenery tile (should be 1 lat / lon divisions).&lt;br /&gt;
The file may be extracted to a text file using the XPTools commandline&lt;br /&gt;
toolset provided by Laminar. This is feasible for large .dsf files (one per&lt;br /&gt;
scenery tile - still 64,800 files, however).&lt;br /&gt;
&lt;br /&gt;
Specification:&lt;br /&gt;
https://developer.x-plane.com/article/dsf-file-format-specification/#DSF_Specification&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our navdb only parses the (old) 810 surface format. The rectangular blocks of taxiway in your screenshot indicate that that specific airport is in 810 format. Airports with polygon surfaces (850 format) therefore only show the runways, since the polygon surfaces are simply not available to the canvas layer. I believe the airport preview in the Qt launcher has the same limitation, as it uses the same navdb.&amp;lt;ref&amp;gt;https://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=39454&amp;amp;p=389593#p389545&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
MapStructure is all about identifying static elements and dynamic ones - to selectively update things that change, unlike things that don't change.&lt;br /&gt;
&lt;br /&gt;
So the next step is to logically divide a &amp;quot;map&amp;quot; into a set of &amp;quot;layers&amp;quot;, that contain layer-specific elements/information (think taxiways, runways, buildings, compass rose, text labels) - as a rule of thumb, anything that can be toggled on/off separately, could go into its own layer (for the sake of simplicity). Also, anything that responds to scale (LOD) needs be handled correctly - e.g., switching the range of map display, does not invalidate the previous data (model).&lt;br /&gt;
&lt;br /&gt;
Basically, the taxiway layout of the airport no longer changes once it's initialized - so you primarily need one layer for the taxiways, and use other layers for more dynamic stuff.&lt;br /&gt;
&lt;br /&gt;
We developed MapStructure so that people can easily reuse existing layers. The idea was to allow people to find related layers and only adapt what's needed. In this case, I would use the taxiway layer or ThomasS' ground services layers to get started quickly - and then copy/adapt those layers as needed, styling I would add once all other functionality is working.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
    var (width,height) = (640,480);&lt;br /&gt;
    var title = 'Canvas OANS experiments (by Nia)';&lt;br /&gt;
&lt;br /&gt;
    var window = canvas.Window.new([width,height],&amp;quot;dialog&amp;quot;).set('title',title);&lt;br /&gt;
    &lt;br /&gt;
    # adding a canvas to the new window and setting up background colors/transparency&lt;br /&gt;
    var myCanvas = window.createCanvas().set(&amp;quot;background&amp;quot;, canvas.style.getColor(&amp;quot;bg_color&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    # creating the top-level/root group which will contain all other elements/group&lt;br /&gt;
    var root = myCanvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
    var TestMap = root.createChild(&amp;quot;map&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    var AirportChart = TestMap; # copy/paste adaptation&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
# Initialize the controller:&lt;br /&gt;
AirportChart.setController(&amp;quot;Static position&amp;quot;, &amp;quot;main&amp;quot;);&lt;br /&gt;
var controller = AirportChart.getController();&lt;br /&gt;
&lt;br /&gt;
 var info = airportinfo(&amp;quot;KNUQ&amp;quot;);&lt;br /&gt;
AirportChart.getController().setPosition(info.lat, info.lon);&lt;br /&gt;
&lt;br /&gt;
AirportChart.setRange(3.0);&lt;br /&gt;
AirportChart.setScreenRange(800);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
     &lt;br /&gt;
    TestMap.setTranslation(    myCanvas.get(&amp;quot;view[0]&amp;quot;)/2,&lt;br /&gt;
                               myCanvas.get(&amp;quot;view[1]&amp;quot;)/2&lt;br /&gt;
                            );&lt;br /&gt;
         &lt;br /&gt;
   ##&lt;br /&gt;
   # Styling: &lt;br /&gt;
   var Styles = {};&lt;br /&gt;
   Styles.get = func(type) return Styles[type];&lt;br /&gt;
   var Options = {};&lt;br /&gt;
   Options.get = func(type) return Options[type];&lt;br /&gt;
     &lt;br /&gt;
    Styles.APT = {};&lt;br /&gt;
    Styles.APT.scale_factor = 0.4; # 40% (applied to whole group)&lt;br /&gt;
    Styles.APT.line_width = 3.0;&lt;br /&gt;
    Styles.APT.color_default = [0,0.6,0.85];  #rgb&lt;br /&gt;
    Styles.APT.label_font_color = Styles.APT.color_default;&lt;br /&gt;
    Styles.APT.label_font_size=28;&lt;br /&gt;
              &lt;br /&gt;
                            &lt;br /&gt;
    Styles.PARKING = {};&lt;br /&gt;
    Styles.PARKING.scale_factor = 0.4; # 40% (applied to whole group)&lt;br /&gt;
    Styles.PARKING.line_width = 3.0;&lt;br /&gt;
    Styles.PARKING.color_default = [0,0.85,0.6];  #rgb&lt;br /&gt;
    Styles.PARKING.label_font_color = Styles.APT.color_default;&lt;br /&gt;
    Styles.PARKING.label_font_size=28;&lt;br /&gt;
                        &lt;br /&gt;
    Styles.APS = {};&lt;br /&gt;
    Styles.APS.scale_factor = 0.25;&lt;br /&gt;
    Styles.APS.color_default = [1,0,0];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    # this sets up a namespace for each layer with associated meta information                        &lt;br /&gt;
    var r = func(name,vis=1,zindex=nil) return caller(0)[0];&lt;br /&gt;
&lt;br /&gt;
    foreach(var type; [r('TAXI',1,0),r('RWY',1,1),r('TWR',1,2),r('PARKING',0,3),r('APS',1,4)] ) &lt;br /&gt;
    TestMap.addLayer(	factory: canvas.SymbolLayer, &lt;br /&gt;
     					type_arg: type.name, &lt;br /&gt;
     					visible: type.vis, &lt;br /&gt;
     					priority: type.zindex,                                        &lt;br /&gt;
     					style: Styles.get(type.name),&lt;br /&gt;
     					options: Options.get(type.name) );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2020&amp;diff=139719</id>
		<title>Virtual FSweekend Hackathon 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2020&amp;diff=139719"/>
		<updated>2024-04-17T22:36:33Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the landing page for the '''Virtual FSweekend Hackathon 2020'''.&lt;br /&gt;
&lt;br /&gt;
Normally in mid-November a group of FlightGear enthusiasts participate in FSweekend at Lelystad Airport in the Netherlands. Over the years this has been a focal point for both finishing existing development/releases and a catalyst for new ideas in FlightGear, as well as an opportunity for FlightGear enthusiasts to share a beer.  FSweekend 2020 was cancelled, so to keep the spirit alive, we are planning to hold a Virtual FSweekend Hackathon on the weekend of 14/15 November.&lt;br /&gt;
&lt;br /&gt;
== Hackathon? ==&lt;br /&gt;
{{Hackathon Intro}}&lt;br /&gt;
&lt;br /&gt;
== Sign up ==&lt;br /&gt;
{{Note|If you've not received Stuart's mail but are interested in taking part please drop him an email. While we now have 20 participants registered, there still is space for plenty more, so don't be shy. Stuart is happy for people to register right up to the Friday night, but we will not be able to help out with getting builds and git working if you leave it that late!&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37129832/&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
To register your participation, please contact Stuart either on the {{forum link|t=38071|text=forum post}}, or via the [https://sourceforge.net/p/flightgear/mailman/message/37125347/ -devel list].  &lt;br /&gt;
&lt;br /&gt;
Confirmed participants (in no particular order):&lt;br /&gt;
* Stuart Buchanan&lt;br /&gt;
* James Turner&lt;br /&gt;
* Nia&lt;br /&gt;
* wlbragg&lt;br /&gt;
* Rick Gruber-Riemer (vanosten)&lt;br /&gt;
* Marc Eberhard&lt;br /&gt;
* Julian Smith&lt;br /&gt;
* Fernando García Liñán&lt;br /&gt;
* Henning Stahlke&lt;br /&gt;
* Pat Callahan&lt;br /&gt;
* Isaak Dieleman&lt;br /&gt;
* Michael Filhol&lt;br /&gt;
* Nik Brucker&lt;br /&gt;
* Patrick Trottier&lt;br /&gt;
* Mark Joseph&lt;br /&gt;
* CaptB&lt;br /&gt;
* Brendan Black&lt;br /&gt;
* Guenter Alzinger&lt;br /&gt;
* Chris Frey&lt;br /&gt;
* Bertrand Coconnier&lt;br /&gt;
&lt;br /&gt;
== Ahead of the Hackathon ==&lt;br /&gt;
&lt;br /&gt;
{{Hackathon Preparations}}&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
With (hopefully) a world-wide group of participants, and varying real life constraints, at any given time over the weekend there will hopefully be a couple of people active.  &lt;br /&gt;
&lt;br /&gt;
We will have two big get-togethers:&lt;br /&gt;
&lt;br /&gt;
=== Friday 13th November 2000-2200 UTC. Kick-off ===&lt;br /&gt;
* General welcome&lt;br /&gt;
* Introductions &lt;br /&gt;
* Hack pitches&lt;br /&gt;
* Team formation&lt;br /&gt;
&lt;br /&gt;
This is the point at which participants will decide which Hacks they want to work on.  The sponsors of each of the Hacks proposed head of time will be invited to give a 5 minutes pitch to the group, with some questions from the audience.  Slides/screenshots optional.&lt;br /&gt;
&lt;br /&gt;
After all the Hacks have been pitched, we will have a little break for people to chat and work out which Hack they want to work on. &lt;br /&gt;
&lt;br /&gt;
If a Hack ends up with fewer than 2 people wanting to work on it (including the sponsor), then it will normally be dropped.  This is to encourage people to work in groups - larger teams can get more done in the time, and have more opportunities to learn from each other, plus it is more sociable!&lt;br /&gt;
&lt;br /&gt;
=== Sunday 15th November 2000-2200 UTC.  Wrap up and demos ===&lt;br /&gt;
At the end of the hackathon we will have a get together and have each team present the results of their hack.  &lt;br /&gt;
&lt;br /&gt;
Depending on the number of hacks, each team will have 5-15 minutes to demonstrate their hack, describe what they have learned, and what their next steps are.&lt;br /&gt;
&lt;br /&gt;
We will finish with voting for the best hack of the weekend.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
{{Hackathon FAQ}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon Materials]]&lt;br /&gt;
[[Category:Hackathons]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Airbus_A320_family&amp;diff=139718</id>
		<title>Airbus A320 family</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Airbus_A320_family&amp;diff=139718"/>
		<updated>2024-04-17T22:36:00Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Airbus A320 family''' is a series of twinjet narrowbody commercial passenger jets manufactured by [[Airbus|Airbus Industrie]]. Designed for short to medium haul flights, the aircraft pioneered fly-by-wire technology and regularly competes with the [[Boeing 737|Boeing 737 series]]. This is an accurate and complex recreation of the A320 family.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Includes:&lt;br /&gt;
* A320-214 (CFM56)&lt;br /&gt;
* A320-232 (IAE V2500)&lt;br /&gt;
* A320-251N (CFM Leap)&lt;br /&gt;
* A320-271N (PW1100G)&lt;br /&gt;
&lt;br /&gt;
See the right InfoBox for the repository or download. &amp;lt;u&amp;gt;Remember to rename the aircraft's folder to &amp;quot;A320-family&amp;quot; if needed&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== The Team ==&lt;br /&gt;
* Flight Dynamics: Josh Davidson (Octal450)&lt;br /&gt;
* Systems, Displays: Josh Davidson (Octal450), legoboyvdlp, Nia, Matthew Maring (hayden2000)&lt;br /&gt;
* 3D/Textures: Thorsten Herrmann (TH-555), Semir Gebran (CaptB)&lt;br /&gt;
&lt;br /&gt;
== Using the selector knobs on the FCU ==&lt;br /&gt;
The flight control unit (FCU) is the panel on the glareshield that contains controls for the auto flight system, electronic flight information system (EFIS) screens and other systems. It contains various selector knobs that rotate. Some knobs can also be pushed or pulled in order to change modes or other settings.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Turning, pushing or pulling FCU knobs with a mouse&lt;br /&gt;
|-moved&lt;br /&gt;
|&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Left&amp;lt;br /&amp;gt;click&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Middle&amp;lt;br /&amp;gt;click &amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Right&amp;lt;br /&amp;gt;click&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Scroll&amp;lt;br /&amp;gt;Up&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Scroll&amp;lt;br /&amp;gt;Down&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold&amp;quot; | Normal&amp;lt;br /&amp;gt;(no modifier keys)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Push&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Pull&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; |  ---&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Turn&amp;lt;br /&amp;gt;clockwise&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Turn&amp;lt;br /&amp;gt;counterclocwise&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | While holding&amp;lt;br /&amp;gt;{{key press|Shift}} key&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pull&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Turn&amp;lt;br /&amp;gt;clockwise&amp;lt;br /&amp;gt;(10× faster)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Turn&amp;lt;br /&amp;gt;counterclockwise&amp;lt;br /&amp;gt;(10× faster)&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; On many setups, the scroll wheel of a mouse can be used as a middle button by pressing directly down on the wheel.''&lt;br /&gt;
&lt;br /&gt;
Note: This section describes how to physically manipulate controls within the cockpit. Details about what the controls do, when they should be used, etc., are beyond the scope of this section.&lt;br /&gt;
&lt;br /&gt;
== Gallery Flightgear 2019+ ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:SOTM_2020-03_Winter_Evening_Departure_by_legoboyvdlp_(A320).jpg|Rain effect (March 2020)&lt;br /&gt;
File:A320-family-cockpit.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* {{forum link|t=38387|title=Is the TCA Airbus edition Compatible with Flightgear ?}} (February 2021 -) - Hints and tips on using the Thrustmaster TCA Airbus edition sidestick and throttle quadrant with FlightGear.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=36410 Development thread]&lt;br /&gt;
* [https://www.airbus.com/aircraft/passenger-aircraft/a320-family.html Airbus A320 Family official homepage]&lt;br /&gt;
&lt;br /&gt;
{{Airbus}}&lt;br /&gt;
&lt;br /&gt;
[[fr:Airbus A320 Family]]&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;br /&gt;
[[Category:Octal450 hangar]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=WS3.0_Subprojects&amp;diff=139717</id>
		<title>WS3.0 Subprojects</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=WS3.0_Subprojects&amp;diff=139717"/>
		<updated>2024-04-17T22:35:46Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
&lt;br /&gt;
This page is intended to collect various WS3.0 sub-projects:  Smaller self-contained projects that can be worked on independently to improve WS3.0&lt;br /&gt;
&lt;br /&gt;
The aim is to encourage more people to contribute to the WS3.0 effort.&lt;br /&gt;
&lt;br /&gt;
They are split by knowledge required.&lt;br /&gt;
&lt;br /&gt;
== C++ ==&lt;br /&gt;
&lt;br /&gt;
=== Smoother Line Features ===&lt;br /&gt;
Line features (roads, railways, rivers) are generated from OSM data at runtime, with different widths of roads generated for different LOD levels.&lt;br /&gt;
&lt;br /&gt;
Currently the algorithm that generates the roads creates places a quad for each segment such that the width of the road is horizontal, a metre or so higher than the terrain.&lt;br /&gt;
&lt;br /&gt;
There are a couple of improvements that could be made:&lt;br /&gt;
&lt;br /&gt;
* Sharp corners look a bit rubbish because the end of a segment is always a normal to the segment length.  This means that on sharp bends the road narrows and looks a bit rubbish.  An improvement would be to calculate the width and angle based on both the last segment and the next one.&lt;br /&gt;
* At present no bridges are handled.  using osm2city code bridges should be implemented.&lt;br /&gt;
* The roads currently following the elevation meshes exactly.  Real roads have embankments and cuttings to smooth out elevation changes.  Cuttings are probably too difficult because they would require modifying the elevation mesh, but embankments would be possible.&lt;br /&gt;
* We currently remove some points at the end of the tile where the intersection algorithm can produce many points close together.  This currently creates some odd roads at the edges of tiles which could be improved.&lt;br /&gt;
[[File:Fgfs-20230306215131.jpg|thumb|Mountain pass new Srinagar, Jammu and Kashmir.]]&lt;br /&gt;
&lt;br /&gt;
=== Water Bodies ===&lt;br /&gt;
We currently have a good solution for coastlines to remove the blockiness of the raster coastlines by using OSM line data and a separate high resolution raster.&lt;br /&gt;
&lt;br /&gt;
We have a script to collect similar data for water bodies (lakes etc.),  A scanline algorithm could be used with this data to fill a polygon in the same raster, creating more detailed water bodies.&lt;br /&gt;
&lt;br /&gt;
=== Groundcache Lookup ===&lt;br /&gt;
In WS2.0 it is possible to get material information for a point in the scenery.  This needs implementing for WS3.0, which will require a lookup into the landclass texture. Ideally this information would also be exposed in fgelev (or as a proxy as for WS20 whether it is a solid material or water).&lt;br /&gt;
&lt;br /&gt;
'''Update 11/11/2023: This is now implemented and available in next.'''&lt;br /&gt;
&lt;br /&gt;
=== Neighbouring Pixel ===&lt;br /&gt;
The higher level fragment shaders can blend the edges of textures.  Currently this is done on the shader side.  This could instead be done at scenery loading when the texture is generated in VPBTechnique.cxx by using some of the unused channels in the texture.  There will be significant performance gains to be had by doing so.&lt;br /&gt;
&lt;br /&gt;
'''Update 21/03/2023:  Stuart prototyped this on his system and found no performance benefit at all.'''&lt;br /&gt;
&lt;br /&gt;
=== Terrasync for WS3.0 ===&lt;br /&gt;
Currently we do not have the ability to distribute WS3.0 with Terrasync.  We need both a distribution mechanism and probably some minor changes to Terrasync/FG to support this.&lt;br /&gt;
&lt;br /&gt;
The base unit for distrbution will be a 1x1 degree tile, tarballed and compressed - e.g. .tgz.  This is already used for other data.&lt;br /&gt;
&lt;br /&gt;
Speak to Nia about this, as she has offered to assist with hosting.&lt;br /&gt;
&lt;br /&gt;
'''Update 11/11/2023:  Testing with Nia and some small changes to defaults.xml proved that this Just Works.  However the data size remains an issue.'''&lt;br /&gt;
&lt;br /&gt;
== GIS ==&lt;br /&gt;
&lt;br /&gt;
=== More Accurate Coastlines ===&lt;br /&gt;
We currently have a good solution for coastlines to remove the blockiness of the raster coastlines by using OSM line data and a separate high resolution raster.&lt;br /&gt;
&lt;br /&gt;
However if the main landclass raster isn't well aligned with this data it can cause graphics artifacts.&lt;br /&gt;
&lt;br /&gt;
I (Stuart) solve this for the Martinique scenery on the final raster by:&lt;br /&gt;
&lt;br /&gt;
- Deleting all the water so that it was NODATA&lt;br /&gt;
&lt;br /&gt;
- Filling the NODATA with surround values&lt;br /&gt;
&lt;br /&gt;
- Using the OSM coastline as a mask on the raster to delete the data that should be water&lt;br /&gt;
&lt;br /&gt;
- filling the NODATA with water.&lt;br /&gt;
&lt;br /&gt;
This works OK, but getting the OSM data as a multipolygon was a manual process.  Having a script to do this would be good.  Being able to do this all in vector data ahead of rasterization would be even better&lt;br /&gt;
&lt;br /&gt;
'''Update 11/11/2023:  This is now implemented as part of the fgmeta/ws30/genVPB.py script, which accepts a coastline polygon.'''&lt;br /&gt;
&lt;br /&gt;
=== Scripted Toolchain ===&lt;br /&gt;
Developing standard scripted toolchain to convert from NLCD and/or CORINE to high quality 10m or 5m raster with the correct landclasses.&lt;br /&gt;
&lt;br /&gt;
'''Update 11/11/2023: This is now implemented as fgmeta/ws30/genVPB.py but requires a raster file'''&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
fgmeta/ws30 contains a number of python scripts for generating scenery that could be improved&lt;br /&gt;
&lt;br /&gt;
=== Script Efficiency - line features ===&lt;br /&gt;
At present the script to generate line features (genroads.py) simply dumps all the OSM data directly to text file and we generate line features using every point.  This has a theoretical resolution of 1cm, which is probably higher than we need.  &lt;br /&gt;
&lt;br /&gt;
We could save storage and processing by :&lt;br /&gt;
&lt;br /&gt;
* Rounding the lat/lon pairs to ~10cm resolution.  This would save about ~10% disk space for the roads uncompressed.&lt;br /&gt;
* Skipping nodes in segments that are too close together.&lt;br /&gt;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
&lt;br /&gt;
=== WS3.0 Materials ===&lt;br /&gt;
Currently WS3.0 uses the WS2.0 textures.  Many of these have line features like roads baked into them.  As WS3.0 include OSM roads down to ~ 2m width, the roads on the textures are now redundant.  A new set of textures without roads would look a lot better (that is for textures in urban areas and certain agriculture textures).  &lt;br /&gt;
&lt;br /&gt;
This should be done at the point that we decide to move to WS3.0, or when we decide the osm2city roads are the WS2.0 solution for small roads.&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== Quality Settings ===&lt;br /&gt;
[[file:Canvas_TabWidget_example.png|thumb]]&lt;br /&gt;
Currently WS3.0 has a lot of configuration properties.  These should be consolidated into a dialog that's easier to use.&lt;br /&gt;
Stuart agreed that the Canvas UI could be a good option to use for this new UI dialog. &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37785426/&amp;lt;/ref&amp;gt;&lt;br /&gt;
We also have people volunteering to help with a Canvas based UI dialog. &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37785343/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This new UI dialog could probably be based on the new [[Canvas_news#Tab_Widget|Canvas tab widget]] to neatly organize related settings into pages.&lt;br /&gt;
&lt;br /&gt;
We could even use the [[CompositeViewer support]] and [[Compositor]] integration to provide actual previews for different settings in-sim, as suggested and discussed previously on the devel-list.&lt;br /&gt;
&lt;br /&gt;
[[File:Cvcanvas-777.jpeg|thumb]]&lt;br /&gt;
&lt;br /&gt;
There already is an [[Hackathon_Proposal:_CompositeViewer_and_Canvas|experimental canvas element]] that uses a compositor instance to render a view to a Canvas, work that Jules and Fernando came up with originally. Fernando in particular mentioned that these Compositor instances could use their own effects/shaders, which would make them ideally-suited for previewing different sorts of rendering settings in-sim.&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=139716</id>
		<title>World Scenery 3.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=139716"/>
		<updated>2024-04-17T22:34:31Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
World Scenery 3.0 is a project to replace the tiled single-mesh World Scenery 2.0 with an LoD-based approach using a regular elevation mesh, landclass texture and vector line features.&lt;br /&gt;
&lt;br /&gt;
This leverages OSG's Virtual Planet Builder and OpenStreetmap APIs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For further information:&lt;br /&gt;
&lt;br /&gt;
* [[World Scenery 3.0 roadmap]]&lt;br /&gt;
* [[World Scenery 3.0 rendering]]&lt;br /&gt;
* [[World Scenery 3.0 coastlines]]&lt;br /&gt;
* [[WS3.0 Performance Testing]]&lt;br /&gt;
* [[Howto:Create WS3.0 terrain]]&lt;br /&gt;
* [[Virtual Planet Builder]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Currently Available Scenery ==&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
Scenery is currently not distributed using the official Terrasync, Nia provides a terrasync compatible download, point your terrasync client to https://de1mirror.flightgear.org/ws3/ to make use of it. As of writing (2024-01-15) it contains all of the sceneries below (duplicates removed) and will get updated when a new Airports package is made and when Wayne provides her with new US scenery. If you don't wanna deal with changing your terrasync settings, you can always download sections of scenery via the links individually and added to your [[FG SCENERY|scenery path]].  If you set these in your scenery path ahead of any other scenery, it will pick up osm2city, scenery objects etc. from the underlying scenery as well.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Currently Available World Scenery 3.0&lt;br /&gt;
!Scenery&lt;br /&gt;
!Area&lt;br /&gt;
!Size &lt;br /&gt;
!Bottom Left&lt;br /&gt;
!Top Right&lt;br /&gt;
!Area (degrees^2)&lt;br /&gt;
!Landclass Source&lt;br /&gt;
!Landclass Resolution (m)&lt;br /&gt;
!Comments&lt;br /&gt;
!Osm2city Scenery&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=share_link WS30_UK]&lt;br /&gt;
|Most of the UK&lt;br /&gt;
|1GB&lt;br /&gt;
| -11,49&lt;br /&gt;
|1,61&lt;br /&gt;
|121&lt;br /&gt;
|CORINE&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/120QOxfTWEm6EBmjK0eCNb07hrm3clavi/view?usp=sharing NL]&lt;br /&gt;
|Amsterdam and Lelystad&lt;br /&gt;
|716MB (ca. 8GB uncompressed)&lt;br /&gt;
|2,50&lt;br /&gt;
|10,53&lt;br /&gt;
|24&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG; Includes high resolution water raster from OpenStreetMap.  Check out the canals!&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1MrYuDKbMl4WhCEq9gnnt8Tz61lTAScvD/view?usp=share_link WS_Alps]&lt;br /&gt;
|&lt;br /&gt;
|49MB&lt;br /&gt;
|6,45&lt;br /&gt;
|8,47&lt;br /&gt;
|4&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1V4AgqRcVo_7oFly8xCOZMPK7Gvb_X1HB/view?usp=share_link WS30_CA]&lt;br /&gt;
|Northern California&lt;br /&gt;
|350MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,39&lt;br /&gt;
|25&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1j91qImcU28jrt290O5sUHbRZe7-fQJf-/view?usp=share_link WS30_CA2]&lt;br /&gt;
|Northern California, PNG&lt;br /&gt;
|454MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,40&lt;br /&gt;
|30&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|PNG; for most pilots this is the only scenery that works without troubles.&lt;br /&gt;
|[https://drive.google.com/file/d/1jrs7x4LOsdhn7IrISQIrHayu0yMQHaE1/view?usp=share_link osm2city buildings, trees, maritime, pylons etc.] (ca. 230 MB) - San Francisco Bay and San Pablo Bay&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1x-kuCTfyMWddTi0fbr_nl41LR41Ylvwb/view?usp=share_link WS30_MTQ]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|[https://drive.google.com/file/d/1QtojSTbnAAfkMzirQHnDJWbBDGOtnwIK/view?usp=sharing osm2city buildings, trees, maritime, pylons etc.] (ca. 40 MB).&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/14kbbgXbofDmqxho-bMCfOG4jDwcDqwBd/view?usp=share_link WS30_MTQ_25m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1-LS3yQZ0OkWX38Ne89n69wtrT7SreV69/view?usp=sharing WS_MTQ_5m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|8MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; Includes high resolution water raster from OpenStreetMap. Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1Um7WC8h8Y4BlwgoVSd2xoVO5gTd3E-bI/view?usp=sharing Switzerland_5m]&lt;br /&gt;
|Switzerland plus small border&lt;br /&gt;
|1.4 GB (ca. 7 GB unzipped)&lt;br /&gt;
| 5.75,45.75&lt;br /&gt;
| 10.75,48&lt;br /&gt;
|10&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; By mistake taken default airports. If you are using Nia's updated airports, then it will most often work fine, but there might be residuals (e.g. tree on APRON).&lt;br /&gt;
|included&lt;br /&gt;
|-&lt;br /&gt;
|[https://de1mirror.flightgear.org/hosting/wayne/ WS3.0 USA]&lt;br /&gt;
|USA&lt;br /&gt;
|200 to 400 KB (zipped)&lt;br /&gt;
| 125,48&lt;br /&gt;
| 81,24&lt;br /&gt;
|&lt;br /&gt;
|NLCD, Tree Canopy Data&lt;br /&gt;
|30&lt;br /&gt;
|by state&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/SP-NTX/PolandWS30/ Poland]&lt;br /&gt;
|Poland&lt;br /&gt;
|1.2GiB&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Airports ===&lt;br /&gt;
In addition to the selected areas above, global up-to-date WS3.0 airports have been built. You can find them [https://cdn.merspieler.tk/airports/ here]&lt;br /&gt;
&lt;br /&gt;
=== Scenery Files Placement ===&lt;br /&gt;
Uncompress the downloaded scenery files into a folder of your choice, such as E:\MySceneryFolder. To be recognized by FlightGear, the selected scenery (from the table above) must be located in a folder with a &amp;quot;vpb&amp;quot; subfolder, such as (EX: C:\mysceneryfolder\hawaii\vpb). The scenery files above are compressed and include the &amp;quot;vpb&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
Using the FlightGear [[FlightGear_Qt_launcher]] both the terrain and the airport are &amp;quot;installed&amp;quot; by going to tab &amp;quot;Add-ons&amp;quot; and then add the respective folders to &amp;quot;Additional scenery folders&amp;quot;. When adding an additional scenery folder, you need to point to the folder immediately above the &amp;quot;vpb&amp;quot; subfolder. &lt;br /&gt;
&lt;br /&gt;
If you add the airports the first time you might have to close the launcher and reopen it again to get the navigation data loaded properly into the session.&lt;br /&gt;
&lt;br /&gt;
== Running World Scenery 3.0 ==&lt;br /&gt;
To run WS3.0 you need to set the &amp;lt;code&amp;gt;/scenery/use-vpb&amp;lt;/code&amp;gt; property to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; at startup.  Either set &amp;lt;code&amp;gt;--prop:/scenery/use-vpb=true&amp;lt;/code&amp;gt; on your command-line, or in the Additional Settings part of the Settings pane of the launcher.&lt;br /&gt;
&lt;br /&gt;
WS3.0 can use a lot of memory - significantly more than WS2.0.  You can control the memory usage with the following properties:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/sim/rendering/max-paged-lod&amp;lt;/code&amp;gt; controls the minimum number of objects that will be kept in memory.  The default setting is 200.&lt;br /&gt;
* &amp;lt;code&amp;gt;/sim/rendering/plod-minimum-expiry-time-secs&amp;lt;/code&amp;gt; controls how long objects remain loaded for after they are no-longer in view.  The default value is 180 (3 minutes).&lt;br /&gt;
&lt;br /&gt;
Reducing these properties will reduce the memory footprint of WS3.0.&lt;br /&gt;
&lt;br /&gt;
If you have lots of spare cores, you can run multiple threads to load scenery by setting &amp;lt;code&amp;gt;/sim/rendering/database-pager/threads&amp;lt;/code&amp;gt; to a number greater than 4 on startup.  E.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/database-pager/threads=8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== WS 2.0 scenery might still be needed ===&lt;br /&gt;
To have airports displayed plus some of the default scenery objects, you might still want to have the WS 2.0 scenery for the same area installed.&lt;br /&gt;
&lt;br /&gt;
However, if you want updated airports, checkout the global WS3.0 airports above. To avoid collisions you need to not have any WS2.0 airports enabled if you use these.&lt;br /&gt;
&lt;br /&gt;
=== Using osm2city ===&lt;br /&gt;
WS3.0 has built-in support for OpenStreetMap roads, so you should not have it enabled in rendering settings.&lt;br /&gt;
&lt;br /&gt;
You have 2 options:&lt;br /&gt;
&lt;br /&gt;
* If you have WS2.0 world scenery, then it already contains osm2city buildings etc. You can just use these and live with slight elevation offsets.&lt;br /&gt;
* The other option is to use the provided osm2city scenery in the table above instead. If doing so you need to makes sure that WS2.0 osm2city has not been downloaded (or delete the folders manually). E.g. if you are using [[TerraMaster]] then you can remove the ticks in Settings for &amp;quot;Buildings&amp;quot;, &amp;quot;Pylons&amp;quot; and &amp;quot;Roads&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Using the explicitly provided osm2city scenery gives you trees in gardens/parks and some improvements only available on NEXT.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Performance_Improvement_for_Ortho_Scenery&amp;diff=139715</id>
		<title>Hackathon Proposal: Performance Improvement for Ortho Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Performance_Improvement_for_Ortho_Scenery&amp;diff=139715"/>
		<updated>2024-04-17T22:33:07Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hackathon Proposal 2021&lt;br /&gt;
| title          = Performance Improvement for Ortho Scenery&lt;br /&gt;
| image          = Oom bavaria ortho.jpg&lt;br /&gt;
| caption        = Demonstrating out of memory issues with the open bavaria ortho scenery&lt;br /&gt;
| sponsor        = Nia&lt;br /&gt;
| supporters     = (Feel free to add yourself)&lt;br /&gt;
| status         = &lt;br /&gt;
| summary        = Improving the performance of ortho scenery by adding a LOD scheme and loading it in a background thread&lt;br /&gt;
| background     = I've started the initiative of collecting openly licensed ortho sources to be used in flightgear.&lt;br /&gt;
For bavaria, there are high quality (80cm/px) images available under CC BY license from the Bayrische Vermessungsverwaltung. The generated (16k) scenery quickly showed its issues cause one would run out of RAM and VRAM, when running larger areas with such scenery. This can be solved by implementing a LOD scheme: only loading highres versions for near-by tiles and loading lower res versions for distant tiles. In addition, with altitude the need for highres images reduces. 4k scenery (roughly 4m/px, 1/16th the size of 16k scenery) starts looking fine at 10000-12000ft AGL on a FullHD monitor and is more than enough for airliner cruise altitude so 2k or maybe even 1k scenery would be enough for that. 4k Scenery is already enough to not cause any RAM or VRAM issues on a modern system by using about 13GB RAM and 5GB VRAM at cruise alt and a bare LOD of &amp;gt;200km.&lt;br /&gt;
&lt;br /&gt;
The other issue that becomes aparent with large or many images is loading times. It can take several seconds to load a highres tile or in cruise a row of lowres tiles. Currently, flightgear freezes during loading. This could be solved by moving the loading into its own thread.&lt;br /&gt;
| details        = Stuart has some ideas on how it might work with WS3.0: https://sourceforge.net/p/flightgear/mailman/message/37371092/&lt;br /&gt;
| skills         = C++&lt;br /&gt;
| opportunities  = &lt;br /&gt;
| notes          = I will need help of someone familiar with the rendering and loading code.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Progress during the Hackathon ===&lt;br /&gt;
We've got a working ortho scenery under WS3.0. The ortho scenery uses the same LOD scheme as WS3.0 does.&lt;br /&gt;
&lt;br /&gt;
This already solved the loading performance issues seen with high resolution WS2.0 ortho scenery.&lt;br /&gt;
&lt;br /&gt;
How to test (latest next version required):&lt;br /&gt;
&lt;br /&gt;
* Download the [https://cdn.merspieler.tk/hosting/demo.zip scenery] (31GB Download) and unpack it.&lt;br /&gt;
* Add the scenery to your FG_SCENERY, or via the launcher&lt;br /&gt;
* Add the command line option `--prop:/scenery/use-vpb=true --prop:/sim/rendering/photoscenery/enabled=true`. This enables WS3.0 and photoscenery.&lt;br /&gt;
* Start at EDDM&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Osm2city_worldbuild&amp;diff=139714</id>
		<title>Osm2city worldbuild</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Osm2city_worldbuild&amp;diff=139714"/>
		<updated>2024-04-17T22:32:35Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase title}}&lt;br /&gt;
The '''osm2city worldbuild''' is an attempt by Nia started in May 2019 of providing global coverage with osm2city scenery. The 1st worldbuild has been completed.&lt;br /&gt;
&lt;br /&gt;
== Machine ==&lt;br /&gt;
Since I was disappointed by the information I could get on the world scenery 2.0 build, espectailly on the machine it run on, I've decided to give some insight, on what is needed to run an osm2city worldbuild.&lt;br /&gt;
&lt;br /&gt;
As of January 2020 the build is run on a server with two 8-core/16-thread CPUs and 96GB RAM. While at first the CPU seems to be the bottleneck, once you get into densly packed areas the RAM becomes the limiting factor. I've seen a single thread taking up more than 80GB of RAM and even caused out-of-memory problems on this server. As a general rule, watch how much RAM is currently used and adjust the number of running processes accordingly.&lt;br /&gt;
&lt;br /&gt;
For storage I've started with five 4TB HDDs configured in a RAIDZ2 with an effective capacity of just below 12TB but changed to RAID10 (with one spare drive, about 8TB effective) to improve IO performance. Currently 8TB this is more than is needed.&lt;br /&gt;
As of writing the global osm data in the database has a size of 2.3TB but this requirement can be lowered (with a penalty in runtime) by only importing the required area from the highly compressed .osm.pbf file. With this approach, the initial try worked relativly well on a 1TB HDD with enough headroom. There are quite a number of random IOPS which causes some IO wait time, up to 80% of the CPU on my Server so an SSD would certainly benificial for some of the data or as L2ARC.&lt;br /&gt;
&lt;br /&gt;
== Rollouts on LTS ==&lt;br /&gt;
''See [[OSM2City 1st Worldbuild|'''information and performance tips for the OSM2City 1st worldbuild''']] .'' &lt;br /&gt;
&lt;br /&gt;
The 1st rollout on the FlightGear [[Release Plan|Long Term Stable]] (LTS) stream was in [[Changelog 2020.3|FlightGear 2020.3.7]] point release. FlightGear 2020.3.7 LTS will automatically download from [[TerraSync]]. FlightGear 2020.3.6 and earlier will not automatically download OSM2City data. A small amount of existing experimental OSM2City data in an old format was removed from TerraSync.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Osm2city]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Shaderbased_ND_features&amp;diff=139713</id>
		<title>Hackathon Proposal: Shaderbased ND features</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Shaderbased_ND_features&amp;diff=139713"/>
		<updated>2024-04-17T22:32:21Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hackathon Proposal&lt;br /&gt;
|title=Shaderbased ND features&lt;br /&gt;
|image = 787-8-terrain-map.jpeg&lt;br /&gt;
|imginfo = Early Terrain radar emulation (from the 787-8) see [[Canvas Tile Element]]&lt;br /&gt;
|sponsor=Nia&lt;br /&gt;
|supporters=none&lt;br /&gt;
|background=&lt;br /&gt;
To my knowledge, there are a couple of features which are currently not easily implementable on a navigation display or do not accurately represent the &amp;quot;outside&amp;quot; view (wxr)&lt;br /&gt;
These are:&lt;br /&gt;
&lt;br /&gt;
* Terrain&lt;br /&gt;
* Airport moving map&lt;br /&gt;
* Weather radar&lt;br /&gt;
&lt;br /&gt;
These could be implemented as effects and shaders on the Compositor to get an accurate view of the sourroundings.&lt;br /&gt;
|skills=&lt;br /&gt;
|opportunities=.&lt;br /&gt;
* Shader&lt;br /&gt;
* Effects&lt;br /&gt;
* Compositor&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For what its worth, user TDammers has successfully created all three of these using a non-shader based approach -- what is posing problems is that the terrain radar only shows as far as terrain is loaded; that might be a problem worth solving. What would be most useful would be a more efficient way to sample terrain, not least a way to sample terrain, beyond what is actually loaded. This avoids seeing tile boundaries in the terrain radar.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon 2020 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Docker_Container_for_osm2city&amp;diff=139712</id>
		<title>Hackathon Proposal: Docker Container for osm2city</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Docker_Container_for_osm2city&amp;diff=139712"/>
		<updated>2024-04-17T22:32:06Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Title          || '''&amp;lt;big&amp;gt;Docker container for osm2city&amp;lt;/big&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| Sponsor        || [https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=9140 vanosten]&lt;br /&gt;
|-&lt;br /&gt;
| Supporters     || &lt;br /&gt;
|-&lt;br /&gt;
| Status         || Proposed&lt;br /&gt;
|-&lt;br /&gt;
| Summary        || Create a [https://opencontainers.org/ OCI container] (&amp;quot;Docker&amp;quot;) for [[Osm2city.py | osm2city]], which is based on the originally Python based [https://gitlab.com/osm2city/osm2city osm2city] as well as the C++ based [https://gitlab.com/osm2city/osm2gear osm2gear] such that interested parties easier can contribute to generate scenery.&lt;br /&gt;
|-&lt;br /&gt;
| Background     || &lt;br /&gt;
|-&lt;br /&gt;
| Details        || First step would be to update the CMake code to modern standards. Second to add more env variables. Third to dockify. Might be an idea to merge into Docker for WS3.0&lt;br /&gt;
|-&lt;br /&gt;
| Skills         || C++, CMake, Python, Docker&lt;br /&gt;
|-&lt;br /&gt;
| Notes  || Alternative to a container image, osm2city could be included into [[Scripted Compilation on Linux Debian/Ubuntu]] - which is good for installations on one machine, but less ideal to run multiple machines in a virtual setup.&lt;br /&gt;
[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=21618 Nia] has already created such a container (about 2 years ago), but she didn't update it for the new C++ based branch and new features yet. Currently at https://git.merspieler.tk/fly/easy-osm2city-podman - should consider to add it to the osm2city repo in a folder.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Volumetric_Clouds&amp;diff=139711</id>
		<title>Hackathon Proposal: Volumetric Clouds</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Volumetric_Clouds&amp;diff=139711"/>
		<updated>2024-04-17T22:31:43Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Title || '''&amp;lt;big&amp;gt;Volumetric Clouds&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Sponsor || Nia&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Supporters ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Status ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Summary || Create volumetric clouds&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Background || Right now, the &amp;quot;3D&amp;quot; clouds are just billboards, which always face the camera (with the ufo look straight up and roll a little bit to observe clouds rotating). Since they're just 2 dimensional billboards you can never really be in a cloud. Right now we cheat here by reducing the visibility when being in a cloud which makes it strange looking when emerging from the cloud as you can see the visible area expand again. When flying toward the cloud it's a hard cut through it and it might clip into the cockpit.&lt;br /&gt;
The solution is having volumetric clouds. This could be realized using 3D textures (see [https://yt.artemislena.eu/watch?v=4QOcCGI6xOU this video] for how this could be approached)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Details ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Skills || C++, GLSL&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Notes || Stuart has thought about this a bit already and thinks this is doable and would be able to mentor.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Split_FGElev_into_Libary_and_CLI&amp;diff=139710</id>
		<title>Hackathon Proposal: Split FGElev into Libary and CLI</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Split_FGElev_into_Libary_and_CLI&amp;diff=139710"/>
		<updated>2024-04-17T22:31:32Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Title          || '''&amp;lt;big&amp;gt;Split FGElev into Libary and CLI&amp;lt;/big&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| Sponsor        || [https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=9140 vanosten]&lt;br /&gt;
|-&lt;br /&gt;
| Supporters     || &lt;br /&gt;
|-&lt;br /&gt;
| Status         || Proposed&lt;br /&gt;
|-&lt;br /&gt;
| Summary        || FGElev is a utility program used by [[Osm2city.py | osm2city]] and others to dynamically read elevation and material information at a specific lon/lat coordinate. The program uses a command line interface for dynamic query one coordinate at a time. The C++ based [https://gitlab.com/osm2city/osm2gear osm2gear] is also using FGElev - however it would be easier to call a C++ function in SimGear directly instead of interprocess communication. Therefore, it is proposed that the introspection logic is moved from [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/utils/fgelev/ fgelev in FlightGear] to a function in SimGear and only the CLI interface would stay in FlighGear. &lt;br /&gt;
|-&lt;br /&gt;
| Background     || &lt;br /&gt;
|-&lt;br /&gt;
| Details        || &lt;br /&gt;
|-&lt;br /&gt;
| Skills         || C++, [http://www.openscenegraph.com/ OpenSceneGraph]&lt;br /&gt;
|-&lt;br /&gt;
| Notes  || [https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=21618 Nia] is making a container image for FGElev. It could be interesting to combine the efforts.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Ground_Services_from_apt.dat&amp;diff=139709</id>
		<title>Hackathon Proposal: Ground Services from apt.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Ground_Services_from_apt.dat&amp;diff=139709"/>
		<updated>2024-04-17T22:31:12Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Title || '''&amp;lt;big&amp;gt;Ground Services from apt.dat&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Sponsor || Nia&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Supporters ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Status ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Summary || The newer apt.dat format defines routes for ground traffic. Idea is to read (if needed, pre-process the data) that and create ground traffic using this data.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Background || Airports are busy, not just the aircraft but also all the ground handling like baggage carts, fuel trucks, crew busses, etc. This is missing in FG, adding it would make the airport feel way more alive.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Details || First step would be to generate the net and make it available in a format in FG. Then make a subsystem in AI to use the net and visualize (animate).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Skills || C++&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Notes || [https://developer.x-plane.com/article/airport-data-apt-dat-12-00-file-format-specification/ apt.dat 1200 spec]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_WS3.0_Ortho_Water_Transition_Shader&amp;diff=139708</id>
		<title>Hackathon Proposal: WS3.0 Ortho Water Transition Shader</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_WS3.0_Ortho_Water_Transition_Shader&amp;diff=139708"/>
		<updated>2024-04-17T22:30:55Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Title || '''&amp;lt;big&amp;gt;Ortho to Water transition shader for WS3.0&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Sponsor || Nia&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Supporters ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Status ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Summary || Create a nice transition between water and ortho photos in WS3.0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Background || Right now, it's a rather hard cut between ortho scenery and water.&lt;br /&gt;
A transition shader would get rid of that hard cut and make underwater features in shallow water visible (such as reefs)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Details ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Skills || C++?, GLSL&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Notes || Stuart say this is doable and would offer mentorship.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Fractal_Terrain_shading&amp;diff=139707</id>
		<title>Hackathon Proposal: Fractal Terrain shading</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Fractal_Terrain_shading&amp;diff=139707"/>
		<updated>2024-04-17T22:30:41Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hackathon Proposal&lt;br /&gt;
|title=Fractal Terrain Shading&lt;br /&gt;
|image = &lt;br /&gt;
|imginfo = &lt;br /&gt;
|sponsor=Nia&lt;br /&gt;
|supporters=none&lt;br /&gt;
|background=&lt;br /&gt;
Near the groud, many textures are rather blury or look very flat.&lt;br /&gt;
It would be nice to have some fractal shading to change that.&lt;br /&gt;
&lt;br /&gt;
See Outerra for a good example of how it could look like.&lt;br /&gt;
|skills=&lt;br /&gt;
|opportunities=.&lt;br /&gt;
* Shader&lt;br /&gt;
* Effects&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon 2020 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2022&amp;diff=139706</id>
		<title>Virtual FSweekend Hackathon 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2022&amp;diff=139706"/>
		<updated>2024-04-17T22:30:32Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This Hackathon did not take place, because the actual Flight Simulation Weekend was happening.}}&lt;br /&gt;
&lt;br /&gt;
{{Hackathon&lt;br /&gt;
&lt;br /&gt;
|year=2022&lt;br /&gt;
|organizer=Nia&lt;br /&gt;
|kick-off-totd-utc=Friday 5th November 2000-2200 UTC&lt;br /&gt;
|wrap-up-totd-utc=Sunday 7th November 2000-2200 UTC&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2021&amp;diff=139705</id>
		<title>Virtual FSweekend Hackathon 2021</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2021&amp;diff=139705"/>
		<updated>2024-04-17T22:30:17Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the landing page for the '''Virtual FSweekend Hackathon 2021'''.&lt;br /&gt;
&lt;br /&gt;
Normally in mid-November a group of FlightGear enthusiasts participate in [[FSWeekend]] in [https://www.aviodrome.nl/ Aviodrome] at the [https://www.lelystadairport.nl/ Lelystad Airport] in the Netherlands. Over the years this has been a focal point for both finishing existing development/releases and a catalyst for new ideas in FlightGear, as well as an opportunity for FlightGear enthusiasts to share a beer. Like in 2020, FSweekend 2021 was unfortunately cancelled due to COVID-19 uncertainties (it will maybe take place in March 2022).&lt;br /&gt;
&lt;br /&gt;
To keep the spirit alive and repeat the successful execution of the [[Virtual_FSweekend_Hackathon_2020|Virtual FSweekend Hackathon 2020]], we are planning to hold another Virtual FSweekend Hackathon on the weekend of 5/6/7 November 2021 (in {{days from now|2021|11|5}}).&lt;br /&gt;
&lt;br /&gt;
== Hackathon? ==&lt;br /&gt;
{{Hackathon Intro}}&lt;br /&gt;
&lt;br /&gt;
== Only Core Development? ==&lt;br /&gt;
While the core of the hackathon incl. support previously has been dedicated to development in the very core of FlightGear (mostly C++, [[Nasal_scripting_language|Nasal]] and xml), you are also welcome to participate if you are developing stuff, which contributes to the general FlightGear ecosystem (e.g. [[Addon]], visual artwork or [[Osm2city.py|osm2city]]). However, in that case you might need to provide your own support.&lt;br /&gt;
&lt;br /&gt;
== Sign up ==&lt;br /&gt;
{{Note|There is space for many participants, so don't be shy. Rick is happy for people to register right up to the Friday night, but we will not be able to help out with getting builds and git working if you leave it that late!}}&lt;br /&gt;
&lt;br /&gt;
To register your participation, please contact Rick either on the {{forum link|t=39793|text=forum post}}, by PM on the [https://discord.gg/rzuV2DR FlightGear Discord server] or via the [https://sourceforge.net/p/flightgear/mailman/message/37358418/ devel list].  &lt;br /&gt;
&lt;br /&gt;
Confirmed participants (in alphabetical particular order):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! aka.&lt;br /&gt;
! Role&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
|Fernando García Liñán&lt;br /&gt;
|{{Usr|Icecode}}&lt;br /&gt;
|Mentor (core dev)&lt;br /&gt;
|Can provide help regarding core development and graphics (OSG, [[Compositor]] and shaders)&lt;br /&gt;
|-&lt;br /&gt;
|Julian Smith&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=19719 cgdae]&lt;br /&gt;
|Mentor (core dev)&lt;br /&gt;
|Can help with thread-safe properties, recording/replay, [[CompositeViewer Support|CompositeViewer]], multiplayer&lt;br /&gt;
|-&lt;br /&gt;
|Lars Toenning&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=22241 Lars], LarsT on FG Discord&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|Marc Eberhard&lt;br /&gt;
|&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=25958 MariuszXC], MariuszXC on FG Discord&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=21618 Nia]&lt;br /&gt;
|Participant/Infrastructure&lt;br /&gt;
|Hit me up if you've got trouble with mattermost or jitsi.&lt;br /&gt;
|-&lt;br /&gt;
|Pat Callahan&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=14816 callahanp]&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|Rick Gruber-Riemer&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=9140 vanosten], HB-VANO on FG Discord&lt;br /&gt;
|Organiser/mentor&lt;br /&gt;
|Can coach osm2city and OSM data processing&lt;br /&gt;
|-&lt;br /&gt;
|Roman Ludwicki&lt;br /&gt;
|PlayeRom on FG Discord&lt;br /&gt;
|Participant&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=26150 SDeAstis]&lt;br /&gt;
|Participant&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|Stuart Buchanan&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=9 stuart]&lt;br /&gt;
|Mentor (core dev)&lt;br /&gt;
|As well as WS3.0, he can provide advices on a wide range of the codebase, as he has touched lots of different parts over the years&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ahead of the Hackathon ==&lt;br /&gt;
&lt;br /&gt;
{{Hackathon Preparations|year=2021}}&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
With (hopefully) a world-wide group of participants, and varying real life constraints, at any given time over the weekend there will hopefully be a couple of people active.  &lt;br /&gt;
&lt;br /&gt;
We will have two big get-togethers:&lt;br /&gt;
&lt;br /&gt;
=== Friday 5th November 2000-2200 UTC. Kick-off ===&lt;br /&gt;
* General welcome&lt;br /&gt;
* Introductions &lt;br /&gt;
* Hack pitches&lt;br /&gt;
* Team formation&lt;br /&gt;
&lt;br /&gt;
This is the point at which participants will decide, which Hacks they want to work on. The sponsors of each of the Hacks proposed ahead of time will be invited to give a 5 minutes pitch to the group, with some questions from the audience. Slides/screenshots optional.&lt;br /&gt;
&lt;br /&gt;
After all the Hacks have been pitched, we will have a little break for people to chat and work out which Hack they want to work on. &lt;br /&gt;
&lt;br /&gt;
If a Hack ends up with fewer than 2 people wanting to work on it (including the sponsor), then it will normally be dropped.  This is to encourage people to work in groups - larger teams can get more done in the time, and have more opportunities to learn from each other, plus it is more sociable!&lt;br /&gt;
&lt;br /&gt;
=== Sunday 7th November 2000-2200 UTC.  Wrap up and demos ===&lt;br /&gt;
At the end of the hackathon we will have a get together and have each team present the results of their hack.  &lt;br /&gt;
&lt;br /&gt;
Depending on the number of hacks, each team will have 5-15 minutes to demonstrate their hack, describe what they have learned, and what their next steps are.&lt;br /&gt;
&lt;br /&gt;
We will finish with voting for the best hack of the weekend.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
{{Hackathon FAQ}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon Materials]]&lt;br /&gt;
[[Category:Hackathons]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138993</id>
		<title>World Scenery 3.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138993"/>
		<updated>2024-01-22T13:14:18Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Terrain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
World Scenery 3.0 is a project to replace the tiled single-mesh World Scenery 2.0 with an LoD-based approach using a regular elevation mesh, landclass texture and vector line features.&lt;br /&gt;
&lt;br /&gt;
This leverages OSG's Virtual Planet Builder and OpenStreetmap APIs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For further information:&lt;br /&gt;
&lt;br /&gt;
* [[World Scenery 3.0 roadmap]]&lt;br /&gt;
* [[World Scenery 3.0 rendering]]&lt;br /&gt;
* [[World Scenery 3.0 coastlines]]&lt;br /&gt;
* [[WS3.0 Performance Testing]]&lt;br /&gt;
* [[Howto:Create WS3.0 terrain]]&lt;br /&gt;
* [[Virtual Planet Builder]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Currently Available Scenery ==&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
Scenery is currently not distributed using the official Terrasync, Nia provides a terrasync compatible download, point your terrasync client to https://cdn.merspieler.tk/ws3/ to make use of it. As of writing (2024-01-15) it contains all of the sceneries below (duplicates removed) and will get updated when a new Airports package is made and when Wayne provides her with new US scenery. If you don't wanna deal with changing your terrasync settings, you can always download sections of scenery via the links individually and added to your [[FG SCENERY|scenery path]].  If you set these in your scenery path ahead of any other scenery, it will pick up osm2city, scenery objects etc. from the underlying scenery as well.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Currently Available World Scenery 3.0&lt;br /&gt;
!Scenery&lt;br /&gt;
!Area&lt;br /&gt;
!Size &lt;br /&gt;
!Bottom Left&lt;br /&gt;
!Top Right&lt;br /&gt;
!Area (degrees^2)&lt;br /&gt;
!Landclass Source&lt;br /&gt;
!Landclass Resolution (m)&lt;br /&gt;
!Comments&lt;br /&gt;
!Osm2city Scenery&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=share_link WS30_UK]&lt;br /&gt;
|Most of the UK&lt;br /&gt;
|1GB&lt;br /&gt;
| -11,49&lt;br /&gt;
|1,61&lt;br /&gt;
|121&lt;br /&gt;
|CORINE&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/19FodUumjOdfWFrzrDo5Yu2U5T8C5Ddzi/view?usp=share_link WS30_FSWeekend]&lt;br /&gt;
|Amsterdam and Lelystad&lt;br /&gt;
|120MB&lt;br /&gt;
|3,52&lt;br /&gt;
|8,55&lt;br /&gt;
|8&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|DDS Includes osm2city&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1MrYuDKbMl4WhCEq9gnnt8Tz61lTAScvD/view?usp=share_link WS_Alps]&lt;br /&gt;
|&lt;br /&gt;
|49MB&lt;br /&gt;
|6,45&lt;br /&gt;
|8,47&lt;br /&gt;
|4&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1V4AgqRcVo_7oFly8xCOZMPK7Gvb_X1HB/view?usp=share_link WS30_CA]&lt;br /&gt;
|Northern California&lt;br /&gt;
|350MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,39&lt;br /&gt;
|25&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1j91qImcU28jrt290O5sUHbRZe7-fQJf-/view?usp=share_link WS30_CA2]&lt;br /&gt;
|Northern California, PNG&lt;br /&gt;
|454MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,40&lt;br /&gt;
|30&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|PNG; for most pilots this is the only scenery that works without troubles.&lt;br /&gt;
|[https://drive.google.com/file/d/1jrs7x4LOsdhn7IrISQIrHayu0yMQHaE1/view?usp=share_link osm2city buildings, trees, maritime, pylons etc.] (ca. 230 MB) - San Francisco Bay and San Pablo Bay&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1x-kuCTfyMWddTi0fbr_nl41LR41Ylvwb/view?usp=share_link WS30_MTQ]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|[https://drive.google.com/file/d/1QtojSTbnAAfkMzirQHnDJWbBDGOtnwIK/view?usp=sharing osm2city buildings, trees, maritime, pylons etc.] (ca. 40 MB).&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/14kbbgXbofDmqxho-bMCfOG4jDwcDqwBd/view?usp=share_link WS30_MTQ_25m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1NwBjtISPAoTS0vqbV8idvu64CzKJNDQ-/view?usp=share_link WS_MTQ_5m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1Um7WC8h8Y4BlwgoVSd2xoVO5gTd3E-bI/view?usp=sharing Switzerland_5m]&lt;br /&gt;
|Switzerland plus small border&lt;br /&gt;
|1.4 GB (ca. 7 GB unzipped)&lt;br /&gt;
| 5.75,45.75&lt;br /&gt;
| 10.75,48&lt;br /&gt;
|10&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; By mistake taken default airports. If you are using merspieler's updated airports, then it will most often work fine, but there might be residuals (e.g. tree on APRON).&lt;br /&gt;
|included&lt;br /&gt;
|-&lt;br /&gt;
|[https://cdn.merspieler.tk/hosting/wayne/ WS3.0 USA]&lt;br /&gt;
|USA&lt;br /&gt;
|200 to 400 KB (zipped)&lt;br /&gt;
| 125,48&lt;br /&gt;
| 81,24&lt;br /&gt;
|&lt;br /&gt;
|NLCD, Tree Canopy Data&lt;br /&gt;
|30&lt;br /&gt;
|by state&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/SP-NTX/PolandWS30/ Poland]&lt;br /&gt;
|Poland&lt;br /&gt;
|1.2GiB&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Airports ===&lt;br /&gt;
In addition to the selected areas above, global up-to-date WS3.0 airports have been built. You can find them [https://cdn.merspieler.tk/airports/ here]&lt;br /&gt;
&lt;br /&gt;
=== Scenery Files Placement ===&lt;br /&gt;
Uncompress the downloaded scenery files into a folder of your choice, such as E:\MySceneryFolder. To be recognized by FlightGear, the selected scenery (from the table above) must be located in a folder with a &amp;quot;vpb&amp;quot; subfolder, such as (EX: C:\mysceneryfolder\hawaii\vpb). The scenery files above are compressed and include the &amp;quot;vpb&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
Using the FlightGear [[FlightGear_Qt_launcher]] both the terrain and the airport are &amp;quot;installed&amp;quot; by going to tab &amp;quot;Add-ons&amp;quot; and then add the respective folders to &amp;quot;Additional scenery folders&amp;quot;. When adding an additional scenery folder, you need to point to the folder immediately above the &amp;quot;vpb&amp;quot; subfolder. &lt;br /&gt;
&lt;br /&gt;
If you add the airports the first time you might have to close the launcher and reopen it again to get the navigation data loaded properly into the session.&lt;br /&gt;
&lt;br /&gt;
== Running World Scenery 3.0 ==&lt;br /&gt;
To run WS3.0 you need to set the &amp;lt;code&amp;gt;/scenery/use-vpb&amp;lt;/code&amp;gt; property to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; at startup.  Either set &amp;lt;code&amp;gt;--prop:/scenery/use-vpb=true&amp;lt;/code&amp;gt; on your command-line, or in the Additional Settings part of the Settings pane of the launcher.&lt;br /&gt;
&lt;br /&gt;
WS3.0 can use a lot of memory - significantly more than WS2.0.  You can control the memory usage with the following properties:&lt;br /&gt;
&lt;br /&gt;
* /sim/rendering/max-paged-lod controls the minimum number of objects that will be kept in memory.  The default setting is 200.&lt;br /&gt;
* /sim/rendering/plod-minimum-expiry-time-secs controls how long objects remain loaded for after they are no-longer in view.  The default value is 180 (3 minutes).&lt;br /&gt;
&lt;br /&gt;
Reducing these properties will reduce the memory footprint of WS3.0.&lt;br /&gt;
&lt;br /&gt;
If you have lots of spare cores, you can run multiple threads to load scenery by setting &amp;lt;code&amp;gt;/sim/rendering/database-pager/threads&amp;lt;/code&amp;gt; to a number greater than 4 on startup.  E.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/database-pager/threads=8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== WS 2.0 scenery might still be needed ===&lt;br /&gt;
To have airports displayed plus some of the default scenery objects, you might still want to have the WS 2.0 scenery for the same area installed.&lt;br /&gt;
&lt;br /&gt;
However, if you want updated airports, checkout the global WS3.0 airports above. To avoid collisions you need to not have any WS2.0 airports enabled if you use these.&lt;br /&gt;
&lt;br /&gt;
=== Using osm2city ===&lt;br /&gt;
WS3.0 has built-in support for OpenStreetMap roads, so you should not have it enabled in rendering settings.&lt;br /&gt;
&lt;br /&gt;
You have 2 options:&lt;br /&gt;
&lt;br /&gt;
* If you have WS2.0 world scenery, then it already contains osm2city buildings etc. You can just use these and live with slight elevation offsets.&lt;br /&gt;
* The other option is to use the provided osm2city scenery in the table above instead. If doing so you need to makes sure that WS2.0 osm2city has not been downloaded (or delete the folders manually). E.g. if you are using [[TerraMaster]] then you can remove the ticks in Settings for &amp;quot;Buildings&amp;quot;, &amp;quot;Pylons&amp;quot; and &amp;quot;Roads&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Using the explicitly provided osm2city scenery gives you trees in gardens/parks and some improvements only available on NEXT.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138973</id>
		<title>World Scenery 3.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138973"/>
		<updated>2024-01-15T15:14:52Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Terrain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
World Scenery 3.0 is a project to replace the tiled single-mesh World Scenery 2.0 with an LoD-based approach using a regular elevation mesh, landclass texture and vector line features.&lt;br /&gt;
&lt;br /&gt;
This leverages OSG's Virtual Planet Builder and OpenStreetmap APIs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For further information:&lt;br /&gt;
&lt;br /&gt;
* [[World Scenery 3.0 roadmap]]&lt;br /&gt;
* [[World Scenery 3.0 rendering]]&lt;br /&gt;
* [[World Scenery 3.0 coastlines]]&lt;br /&gt;
* [[WS3.0 Performance Testing]]&lt;br /&gt;
* [[Howto:Create WS3.0 terrain]]&lt;br /&gt;
* [[Virtual Planet Builder]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Currently Available Scenery ==&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
Scenery is currently not distributed using the official Terrasync, Nia provides a terrasync compatible download, point your terrasync client to https://cdn.merspieler.tk/ws3/ to make use of it. As of writing (2024-01-15) it contains all of the sceneries below (duplicates removed) and will get updated when a new Airports package is made and when Wayne provides her with new US scenery. If you don't wanna deal with changing your terrasync settings, you can always download sections of scenery via the links individually and added to your [[FG SCENERY|scenery path]].  If you set these in your scenery path ahead of any other scenery, it will pick up osm2city, scenery objects etc. from the underlying scenery as well.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Currently Available World Scenery 3.0&lt;br /&gt;
!Scenery&lt;br /&gt;
!Area&lt;br /&gt;
!Size &lt;br /&gt;
!Bottom Left&lt;br /&gt;
!Top Right&lt;br /&gt;
!Area (degrees^2)&lt;br /&gt;
!Landclass Source&lt;br /&gt;
!Landclass Resolution (m)&lt;br /&gt;
!Comments&lt;br /&gt;
!Osm2city Scenery&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=share_link WS30_UK]&lt;br /&gt;
|Most of the UK&lt;br /&gt;
|1GB&lt;br /&gt;
| -11,49&lt;br /&gt;
|1,61&lt;br /&gt;
|121&lt;br /&gt;
|CORINE&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/19FodUumjOdfWFrzrDo5Yu2U5T8C5Ddzi/view?usp=share_link WS30_FSWeekend]&lt;br /&gt;
|Amsterdam and Lelystad&lt;br /&gt;
|120MB&lt;br /&gt;
|3,52&lt;br /&gt;
|8,55&lt;br /&gt;
|8&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|DDS Includes osm2city&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1MrYuDKbMl4WhCEq9gnnt8Tz61lTAScvD/view?usp=share_link WS_Alps]&lt;br /&gt;
|&lt;br /&gt;
|49MB&lt;br /&gt;
|6,45&lt;br /&gt;
|8,47&lt;br /&gt;
|4&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1V4AgqRcVo_7oFly8xCOZMPK7Gvb_X1HB/view?usp=share_link WS30_CA]&lt;br /&gt;
|Northern California&lt;br /&gt;
|350MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,39&lt;br /&gt;
|25&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1j91qImcU28jrt290O5sUHbRZe7-fQJf-/view?usp=share_link WS30_CA2]&lt;br /&gt;
|Northern California, PNG&lt;br /&gt;
|454MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,40&lt;br /&gt;
|30&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|PNG; for most pilots this is the only scenery that works without troubles.&lt;br /&gt;
|[https://drive.google.com/file/d/1jrs7x4LOsdhn7IrISQIrHayu0yMQHaE1/view?usp=share_link osm2city buildings, trees, maritime, pylons etc.] (ca. 230 MB) - San Francisco Bay and San Pablo Bay&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1x-kuCTfyMWddTi0fbr_nl41LR41Ylvwb/view?usp=share_link WS30_MTQ]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|[https://drive.google.com/file/d/1QtojSTbnAAfkMzirQHnDJWbBDGOtnwIK/view?usp=sharing osm2city buildings, trees, maritime, pylons etc.] (ca. 40 MB).&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/14kbbgXbofDmqxho-bMCfOG4jDwcDqwBd/view?usp=share_link WS30_MTQ_25m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1NwBjtISPAoTS0vqbV8idvu64CzKJNDQ-/view?usp=share_link WS_MTQ_5m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1Um7WC8h8Y4BlwgoVSd2xoVO5gTd3E-bI/view?usp=sharing Switzerland_5m]&lt;br /&gt;
|Switzerland plus small border&lt;br /&gt;
|1.4 GB (ca. 7 GB unzipped)&lt;br /&gt;
| 5.75,45.75&lt;br /&gt;
| 10.75,48&lt;br /&gt;
|10&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; By mistake taken default airports. If you are using merspieler's updated airports, then it will most often work fine, but there might be residuals (e.g. tree on APRON).&lt;br /&gt;
|included&lt;br /&gt;
|-&lt;br /&gt;
|[https://cdn.merspieler.tk/hosting/wayne/ WS3.0 USA]&lt;br /&gt;
|USA&lt;br /&gt;
|200 to 400 KB (zipped)&lt;br /&gt;
| 125,48&lt;br /&gt;
| 81,24&lt;br /&gt;
|&lt;br /&gt;
|NLCD, Tree Canopy Data&lt;br /&gt;
|30&lt;br /&gt;
|by state&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Airports ===&lt;br /&gt;
In addition to the selected areas above, global up-to-date WS3.0 airports have been built. You can find them [https://cdn.merspieler.tk/airports/ here]&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
Using the FlightGear [[FlightGear_Qt_launcher]] both the terrain and the airport are &amp;quot;installed&amp;quot; by going to tab &amp;quot;Add-ons&amp;quot; and then add the respective folders to &amp;quot;Additional scenery folders&amp;quot;. If you add the airports the first time you might have to close the launcher and reopen it again to get the navigation data loaded properly into the session.&lt;br /&gt;
&lt;br /&gt;
== Running World Scenery 3.0 ==&lt;br /&gt;
To run WS3.0 you need to set the &amp;lt;code&amp;gt;/scenery/use-vpb&amp;lt;/code&amp;gt; property to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; at startup.  Either set &amp;lt;code&amp;gt;--prop:/scenery/use-vpb=true&amp;lt;/code&amp;gt; on your command-line, or in the Additional Settings part of the Settings pane of the launcher.&lt;br /&gt;
&lt;br /&gt;
WS3.0 can use a lot of memory - significantly more than WS2.0.  You can control the memory usage with the following properties:&lt;br /&gt;
&lt;br /&gt;
* /sim/rendering/max-paged-lod controls the minimum number of objects that will be kept in memory.  The default setting is 200.&lt;br /&gt;
* /sim/rendering/plod-minimum-expiry-time-secs controls how long objects remain loaded for after they are no-longer in view.  The default value is 180 (3 minutes).&lt;br /&gt;
&lt;br /&gt;
Reducing these properties will reduce the memory footprint of WS3.0.&lt;br /&gt;
&lt;br /&gt;
If you have lots of spare cores, you can run multiple threads to load scenery by setting &amp;lt;code&amp;gt;/sim/rendering/database-pager/threads&amp;lt;/code&amp;gt; to a number greater than 4 on startup.  E.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/database-pager/threads=8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== WS 2.0 scenery might still be needed ===&lt;br /&gt;
To have airports displayed plus some of the default scenery objects, you might still want to have the WS 2.0 scenery for the same area installed.&lt;br /&gt;
&lt;br /&gt;
However, if you want updated airports, checkout the global WS3.0 airports above. To avoid collisions you need to not have any WS2.0 airports enabled if you use these.&lt;br /&gt;
&lt;br /&gt;
=== Using osm2city ===&lt;br /&gt;
WS3.0 has built-in support for OpenStreetMap roads, so you should not have it enabled in rendering settings.&lt;br /&gt;
&lt;br /&gt;
You have 2 options:&lt;br /&gt;
&lt;br /&gt;
* If you have WS2.0 world scenery, then it already contains osm2city buildings etc. You can just use these and live with slight elevation offsets.&lt;br /&gt;
* The other option is to use the provided osm2city scenery in the table above instead. If doing so you need to makes sure that WS2.0 osm2city has not been downloaded (or delete the folders manually). E.g. if you are using [[TerraMaster]] then you can remove the ticks in Settings for &amp;quot;Buildings&amp;quot;, &amp;quot;Pylons&amp;quot; and &amp;quot;Roads&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Using the explicitly provided osm2city scenery gives you trees in gardens/parks and some improvements only available on NEXT.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138970</id>
		<title>World Scenery 3.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138970"/>
		<updated>2024-01-15T14:32:16Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Terrain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
World Scenery 3.0 is a project to replace the tiled single-mesh World Scenery 2.0 with an LoD-based approach using a regular elevation mesh, landclass texture and vector line features.&lt;br /&gt;
&lt;br /&gt;
This leverages OSG's Virtual Planet Builder and OpenStreetmap APIs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For further information:&lt;br /&gt;
&lt;br /&gt;
* [[World Scenery 3.0 roadmap]]&lt;br /&gt;
* [[World Scenery 3.0 rendering]]&lt;br /&gt;
* [[World Scenery 3.0 coastlines]]&lt;br /&gt;
* [[WS3.0 Performance Testing]]&lt;br /&gt;
* [[Howto:Create WS3.0 terrain]]&lt;br /&gt;
* [[Virtual Planet Builder]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Currently Available Scenery ==&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
Scenery is currently not distributed using the official Terrasync, Nia provides a terrasync compatible download, point your terrasync client to https://cdn2.merspieler.tk/ws3/ to make use of it. As of writing (2024-01-15) it contains all of the sceneries below (duplicates removed) and will get updated when a new Airports package is made and when Wayne provides her with new US scenery. If you don't wanna deal with changing your terrasync settings, you can always download sections of scenery via the links individually and added to your [[FG SCENERY|scenery path]].  If you set these in your scenery path ahead of any other scenery, it will pick up osm2city, scenery objects etc. from the underlying scenery as well.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Currently Available World Scenery 3.0&lt;br /&gt;
!Scenery&lt;br /&gt;
!Area&lt;br /&gt;
!Size &lt;br /&gt;
!Bottom Left&lt;br /&gt;
!Top Right&lt;br /&gt;
!Area (degrees^2)&lt;br /&gt;
!Landclass Source&lt;br /&gt;
!Landclass Resolution (m)&lt;br /&gt;
!Comments&lt;br /&gt;
!Osm2city Scenery&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=share_link WS30_UK]&lt;br /&gt;
|Most of the UK&lt;br /&gt;
|1GB&lt;br /&gt;
| -11,49&lt;br /&gt;
|1,61&lt;br /&gt;
|121&lt;br /&gt;
|CORINE&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/19FodUumjOdfWFrzrDo5Yu2U5T8C5Ddzi/view?usp=share_link WS30_FSWeekend]&lt;br /&gt;
|Amsterdam and Lelystad&lt;br /&gt;
|120MB&lt;br /&gt;
|3,52&lt;br /&gt;
|8,55&lt;br /&gt;
|8&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|DDS Includes osm2city&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1MrYuDKbMl4WhCEq9gnnt8Tz61lTAScvD/view?usp=share_link WS_Alps]&lt;br /&gt;
|&lt;br /&gt;
|49MB&lt;br /&gt;
|6,45&lt;br /&gt;
|8,47&lt;br /&gt;
|4&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1V4AgqRcVo_7oFly8xCOZMPK7Gvb_X1HB/view?usp=share_link WS30_CA]&lt;br /&gt;
|Northern California&lt;br /&gt;
|350MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,39&lt;br /&gt;
|25&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1j91qImcU28jrt290O5sUHbRZe7-fQJf-/view?usp=share_link WS30_CA2]&lt;br /&gt;
|Northern California, PNG&lt;br /&gt;
|454MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,40&lt;br /&gt;
|30&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|PNG; for most pilots this is the only scenery that works without troubles.&lt;br /&gt;
|[https://drive.google.com/file/d/1jrs7x4LOsdhn7IrISQIrHayu0yMQHaE1/view?usp=share_link osm2city buildings, trees, maritime, pylons etc.] (ca. 230 MB) - San Francisco Bay and San Pablo Bay&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1x-kuCTfyMWddTi0fbr_nl41LR41Ylvwb/view?usp=share_link WS30_MTQ]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|[https://drive.google.com/file/d/1QtojSTbnAAfkMzirQHnDJWbBDGOtnwIK/view?usp=sharing osm2city buildings, trees, maritime, pylons etc.] (ca. 40 MB).&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/14kbbgXbofDmqxho-bMCfOG4jDwcDqwBd/view?usp=share_link WS30_MTQ_25m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1NwBjtISPAoTS0vqbV8idvu64CzKJNDQ-/view?usp=share_link WS_MTQ_5m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1Um7WC8h8Y4BlwgoVSd2xoVO5gTd3E-bI/view?usp=sharing Switzerland_5m]&lt;br /&gt;
|Switzerland plus small border&lt;br /&gt;
|1.4 GB (ca. 7 GB unzipped)&lt;br /&gt;
| 5.75,45.75&lt;br /&gt;
| 10.75,48&lt;br /&gt;
|10&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; By mistake taken default airports. If you are using merspieler's updated airports, then it will most often work fine, but there might be residuals (e.g. tree on APRON).&lt;br /&gt;
|included&lt;br /&gt;
|-&lt;br /&gt;
|[https://cdn.merspieler.tk/hosting/wayne/ WS3.0 USA]&lt;br /&gt;
|USA&lt;br /&gt;
|200 to 400 KB (zipped)&lt;br /&gt;
| 125,48&lt;br /&gt;
| 81,24&lt;br /&gt;
|&lt;br /&gt;
|NLCD, Tree Canopy Data&lt;br /&gt;
|30&lt;br /&gt;
|by state&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Airports ===&lt;br /&gt;
In addition to the selected areas above, global up-to-date WS3.0 airports have been built. You can find them [https://cdn.merspieler.tk/airports/ here]&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
Using the FlightGear [[FlightGear_Qt_launcher]] both the terrain and the airport are &amp;quot;installed&amp;quot; by going to tab &amp;quot;Add-ons&amp;quot; and then add the respective folders to &amp;quot;Additional scenery folders&amp;quot;. If you add the airports the first time you might have to close the launcher and reopen it again to get the navigation data loaded properly into the session.&lt;br /&gt;
&lt;br /&gt;
== Running World Scenery 3.0 ==&lt;br /&gt;
To run WS3.0 you need to set the &amp;lt;code&amp;gt;/scenery/use-vpb&amp;lt;/code&amp;gt; property to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; at startup.  Either set &amp;lt;code&amp;gt;--prop:/scenery/use-vpb=true&amp;lt;/code&amp;gt; on your command-line, or in the Additional Settings part of the Settings pane of the launcher.&lt;br /&gt;
&lt;br /&gt;
WS3.0 can use a lot of memory - significantly more than WS2.0.  You can control the memory usage with the following properties:&lt;br /&gt;
&lt;br /&gt;
* /sim/rendering/max-paged-lod controls the minimum number of objects that will be kept in memory.  The default setting is 200.&lt;br /&gt;
* /sim/rendering/plod-minimum-expiry-time-secs controls how long objects remain loaded for after they are no-longer in view.  The default value is 180 (3 minutes).&lt;br /&gt;
&lt;br /&gt;
Reducing these properties will reduce the memory footprint of WS3.0.&lt;br /&gt;
&lt;br /&gt;
If you have lots of spare cores, you can run multiple threads to load scenery by setting &amp;lt;code&amp;gt;/sim/rendering/database-pager/threads&amp;lt;/code&amp;gt; to a number greater than 4 on startup.  E.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/database-pager/threads=8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== WS 2.0 scenery might still be needed ===&lt;br /&gt;
To have airports displayed plus some of the default scenery objects, you might still want to have the WS 2.0 scenery for the same area installed.&lt;br /&gt;
&lt;br /&gt;
However, if you want updated airports, checkout the global WS3.0 airports above. To avoid collisions you need to not have any WS2.0 airports enabled if you use these.&lt;br /&gt;
&lt;br /&gt;
=== Using osm2city ===&lt;br /&gt;
WS3.0 has built-in support for OpenStreetMap roads, so you should not have it enabled in rendering settings.&lt;br /&gt;
&lt;br /&gt;
You have 2 options:&lt;br /&gt;
&lt;br /&gt;
* If you have WS2.0 world scenery, then it already contains osm2city buildings etc. You can just use these and live with slight elevation offsets.&lt;br /&gt;
* The other option is to use the provided osm2city scenery in the table above instead. If doing so you need to makes sure that WS2.0 osm2city has not been downloaded (or delete the folders manually). E.g. if you are using [[TerraMaster]] then you can remove the ticks in Settings for &amp;quot;Buildings&amp;quot;, &amp;quot;Pylons&amp;quot; and &amp;quot;Roads&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Using the explicitly provided osm2city scenery gives you trees in gardens/parks and some improvements only available on NEXT.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=138838</id>
		<title>World Scenery 3.0 roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=138838"/>
		<updated>2023-12-21T23:12:53Z</updated>

		<summary type="html">&lt;p&gt;Nia: Removed abandoned approach from news section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scenery Core Development}}&lt;br /&gt;
{{WS30 Navbar}}&lt;br /&gt;
{{See also|TerraGear roadmap}}&lt;br /&gt;
{{Project&lt;br /&gt;
|name = World Scenery 3.0&lt;br /&gt;
|description = New world-wide scenery&lt;br /&gt;
|start-date = 2019-Sep&lt;br /&gt;
|current-status = Active &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37074319/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|developers = Scott Giese&amp;lt;br/&amp;gt;Richard Harrison&amp;lt;br/&amp;gt;Stuart Buchanan&lt;br /&gt;
&lt;br /&gt;
|motivation-body = &lt;br /&gt;
{{Main article|Virtual Planet Builder}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Virtual Planet Builder (VPB) is OSG's terrain-database-building tool.&lt;br /&gt;
It loads GIS elevation data for a&lt;br /&gt;
region, combines it with imagery and produces a spatially-balanced&lt;br /&gt;
quadtree tiled database that can be navigated simply by loading the&lt;br /&gt;
top-level file. All of the LOD Ranges are pre-configured and the&lt;br /&gt;
DatabasePager automatically loads and unloads different segments of&lt;br /&gt;
terrain without any supporting userspace code required. VPB can build&lt;br /&gt;
terrain models ranging from a small area to the entire planet. These&lt;br /&gt;
databases can be fluidly navigated at 60fps from outer space down to&lt;br /&gt;
ground level with no interruptions. The terrain models are built of&lt;br /&gt;
regular grid arrays with optional edge-skirts to conceal any cracks&lt;br /&gt;
caused by adjacent LOD differences.&amp;lt;br/&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://alphapixel.com/wp-content/uploads/2015/04/OpenSceneGraph-OSG-Virtual-Planet-Builder-VPB-OSGDEM.pdf&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;OpenScenGraph's Virtual Planet Builder/OSGDEM&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |publisher=&amp;lt;nowiki&amp;gt;AlphaPixel, LLC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|objective-body =&lt;br /&gt;
&lt;br /&gt;
[[File:Edinburgh rendering using WS3.0.jpg|thumb|Initial rendering of Edinburgh scenery using a raster landclass and texture lookup for city, water and grass]]&lt;br /&gt;
[[File:WS3.0 terrain with WS2.0 EGPH.jpg|thumb|Screenshot showing a WS2.0 airport .btg file rendered with WS3.0 terrain]]&lt;br /&gt;
[[File:EGPH roads.jpg|thumb|WS3.0 Edinburgh airport with runtime-generated roads from OSM data]]&lt;br /&gt;
[[File:WS30 - West Lothian.png|thumb|WS30 view of West Lothian, with 25m resolution landclass data, vegetation, osm2city buildings, and OSM-based roads and rivers.]]&lt;br /&gt;
[[File:WS30 street lighting.jpg|thumb|Edinburgh at night, with osm2city buildings, OSM-base roads, including whether they are lit or not.  Note the road in the foreground which is lit near the buildings and unlit in the countryside.]]&lt;br /&gt;
[[File:Fgfs-20220528191253.png|thumb|WS30 using OSM data to define the coastline.  This shows a view near Oban in Scotland looking South.  The coastline is applied as a high resolution overlay texture that is generated at runtime from OSM data and mixed with the landclass texture by the ws30 shader.]]&lt;br /&gt;
&lt;br /&gt;
Produce high-quality scenery using the best-known practices.&lt;br /&gt;
&lt;br /&gt;
TerraGear becomes obsolete in favor of VPB.&lt;br /&gt;
&lt;br /&gt;
* '''OpenGL 3.3 Core Profile''': WS3.0 will require us to eliminate the usage of the fixed-function pipeline.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''Shader-based Rendering''': All of the terrain renderings will be done via GLSL shaders.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''OSG Core''': OpenSceneGraph will require targeting of the OpenGL Core Profile.&lt;br /&gt;
&lt;br /&gt;
WS3.0 will continue to cooperate with osm2city.&lt;br /&gt;
&lt;br /&gt;
Easy upgrade: Initially the plan was that airport layouts will be generated in real-time. Apt.dat will continue to be the primary source for airport layouts and that airports will be draped over the terrain. This would eliminate the need to cut airport layouts into the underlying terrain.&lt;br /&gt;
Due to difficulties with this approach, it has been decided, that we keep using the WS2.0 airports for now. Work has been done to automatically update the airports from the X-Plane gateway which can be done automatically now. &lt;br /&gt;
The apt.dat file gets update with this as well. Here it remains for the navdb parser to understand the 8.33kHz frequencies.&lt;br /&gt;
&lt;br /&gt;
WS3.0 also offers the opportunity for well performing ortho scenery with acceptable memory impact. merspieler has acquired GPL compatible sources so we could theoretically have a demo area with ortho scenery in the first WS3.0 release. It adds significant storage requirement tho (~14.7GB per 1x1 degrees tile). There hasn't been a decision made yet, on how to proceed on this.&lt;br /&gt;
&lt;br /&gt;
|background-body =&lt;br /&gt;
=== Data Sources ===&lt;br /&gt;
&lt;br /&gt;
:;SRTMGL3.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL3.003/&lt;br /&gt;
:;SRTMGL1.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/&lt;br /&gt;
:;Global Land Cover:: https://lcviewer.vito.be/&lt;br /&gt;
:;Natural Earth:: https://www.naturalearthdata.com/&lt;br /&gt;
:;OpenStreetMap :: https://www.openstreetmap.org (See https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/ws30/ genroads.py, gencoastline.py, genwater.py for details)&lt;br /&gt;
&lt;br /&gt;
|status-body = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As of 11/2021, WS30 is available on &amp;quot;next&amp;quot;, and on the [https://download.flightgear.org/builds/nightly/ nightly builds]. &lt;br /&gt;
&lt;br /&gt;
Scenery is available for Scotland, but must be downloaded directly (https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=sharing). You need to add the downloaded and then extracted folder as additional scenery folder.&lt;br /&gt;
&lt;br /&gt;
WS30 can be enabled from the Rendering Options menu, with fine-tuning from the LoD menu. Alternatively you can set --prop:/scenery/use-vpb=true to enable it as command line option.&lt;br /&gt;
&lt;br /&gt;
Airports are currently in the old WS2 format - including airport keep terrain. The WS30 terrain goes under the airport so it is not visible.&lt;br /&gt;
&lt;br /&gt;
Roads are implemented. Lights on roads are implemented - to see, set time to night. WiP rendering.&lt;br /&gt;
&lt;br /&gt;
Vegetation is available - initial version.&lt;br /&gt;
&lt;br /&gt;
While large water bodies are defined in the landclass texture, rivers are draped on top from OSM data.  Coastlines are taken from OSM by are applied as a higher resolution overlay texture to reduce the tiling effect.&lt;br /&gt;
&lt;br /&gt;
Scenery generation workflow is at an advanced stage. It's fast to build. Scott was able to do UK in a matter of hours [https://sourceforge.net/p/flightgear/mailman/message/37259618/]. People interested in generating scenery for the World Build, or getting their landclass or elevation work on [[Suggested custom scenery|custom scenery]] in, should start learning the tools and process. The exact VPB settings and scenery file format may change several times before the final build. But the process of getting work in to shouldn't change much for scenery creators. See the [[Virtual Planet Builder]] page for instructions.&lt;br /&gt;
&lt;br /&gt;
====Scenery generation tool availability ====&lt;br /&gt;
* [[VPB]]: '''Linux:''' build from source, docker image available. '''Windows and Mac:''' build from source, no binaries yet, needs NVTT binaries - see &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list to assist.&lt;br /&gt;
* [[QGIS]]: Not needed when experimenting with terrain generation using lower res landclass rasters provided by CORINE. '''Linux:''' build from source, binary packages[https://qgis.org/en/site/forusers/download.html], official docker release available: https://hub.docker.com/r/qgis/qgis  but Fahim was not sure easy the GUI is to use [https://sourceforge.net/p/flightgear/mailman/message/37381800/]. '''Windows, Mac:''' official QGIS binary releases [https://qgis.org/en/site/forusers/download.html].&lt;br /&gt;
&lt;br /&gt;
===LoD settings===&lt;br /&gt;
Go to ''View &amp;gt; Adjust LoD &amp;gt; World Scenery 3.0 section'' (Nov 2021).&lt;br /&gt;
* 7 LoD levels - most detailed is 6, shown at closest range. Least detailed is 0, shown at long range. LoD 0 tiles with Scotland scenery are 1x1 degree, or approx 111 km x 111 km at the equator.&lt;br /&gt;
* Scenery is divided into chunks called tiles. As view distance increases, tiles with a LoD level are replaced by tiles with the next lowest LoD level. e.g. Four LoD 6 tiles are replaced by one LoD 5 tile. Four LoD 5 tiles are replaced by one LoD 4 tile. As view gets closer the reverse happens. One LoD 2 tile is replaced by four LoD 3 tiles.&lt;br /&gt;
* Detail range - The LoD level below which each type of feature is not visible. e.g. setting vegetation to LoD 3 means vegetation is shown for LoD 3/4/5/6 and not shown for tiles with LoD 0/1/2.&lt;br /&gt;
* Minimum line feature width (line features are things like roads or rivers) - for every LoD level, the width in meters below which a line feature is not shown. e.g. setting LoD level four to 30 meters means rivers or roads that are narrower than 30 meters are not shown for level four tiles. The minimum widths should stay the same or decrease when going down a LoD level.&lt;br /&gt;
* Minimum area feature width (area features are things like lakes) - similar to minimum line feature width, but for area in square meters. Setting LoD 3 to 100 square meters means lakes of size 99 square meters or 40 square meters will not show for LoD level 3 tiles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof of Concept  {{progressbar|100}}&lt;br /&gt;
* VPB {{done}}&lt;br /&gt;
* osgOcean {{done}}&lt;br /&gt;
* osgVegetation {{done}}&lt;br /&gt;
* Generate terrain for Hawaii {{done}}&lt;br /&gt;
* Hack Hawaii VPB into FG {{done}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OSG {{progressbar|70}}&lt;br /&gt;
* Core Profile: {{done}}&lt;br /&gt;
* GLVND Support: {{done}}&lt;br /&gt;
* glTF Plugin Support: {{ongoing}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity&lt;br /&gt;
| align  = right&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | N00-N60 lat&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Africa Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Ocean-N00-N90.png | Ocean Fill&lt;br /&gt;
}}&lt;br /&gt;
=== Standard-Fidelity - 90m SRTMGL3 - 100m Global Land Cover ===&lt;br /&gt;
&lt;br /&gt;
=== Northern Hemisphere: 152.3 GB ===&lt;br /&gt;
=== Southern Hemisphere: 57.4 GB ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|70}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL3.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Ocean {{done}}&lt;br /&gt;
** Northern: {{progressbar|100}}&lt;br /&gt;
** Southern: {{progressbar|100}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High-Fidelity - 30m SRTMGL1 - Best Available Land Cover ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|30}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL1.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|news-body=&lt;br /&gt;
The northern hemisphere, up to N60, has been completed. The southern hemisphere, above S56, has been completed.&lt;br /&gt;
SRTM data was not captured above N60 and below S56, so alternative data sources need to be procured.&lt;br /&gt;
&lt;br /&gt;
Oceans are complete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity Gallery&lt;br /&gt;
| align  = center&lt;br /&gt;
| Terrain-Mesh.jpg | WS3 Terrain Mesh&lt;br /&gt;
| S10-N60-LC100m-SRTMGL3.png | Asia/India&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | Europe&lt;br /&gt;
| N00-N40-LC100m-SRTMGL3.png | USA&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Africa-Natural2.png | Natural Earth&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For the experimental runtime generated mesh/landclassing engine - which may become WS3.0 - see [[Experimental terrain engine]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development projects‎]]&lt;br /&gt;
[[Category:Scenery]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138837</id>
		<title>World Scenery 3.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138837"/>
		<updated>2023-12-21T23:09:26Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* WS 2.0 scenery is still needed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
World Scenery 3.0 is a project to replace the tiled single-mesh World Scenery 2.0 with an LoD-based approach using a regular elevation mesh, landclass texture and vector line features.&lt;br /&gt;
&lt;br /&gt;
This leverages OSG's Virtual Planet Builder and OpenStreetmap APIs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For further information:&lt;br /&gt;
&lt;br /&gt;
* [[World Scenery 3.0 roadmap]]&lt;br /&gt;
* [[World Scenery 3.0 rendering]]&lt;br /&gt;
* [[World Scenery 3.0 coastlines]]&lt;br /&gt;
* [[WS3.0 Performance Testing]]&lt;br /&gt;
* [[Howto:Create WS3.0 terrain]]&lt;br /&gt;
* [[Virtual Planet Builder]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== Currently Available Scenery ===&lt;br /&gt;
Scenery is not currently distributed using Terrasync.  Instead, sections of scenery must be downloaded individually and added to your [[FG SCENERY|scenery path]].  If you set these in your scenery path ahead of any other scenery, it will pick up osm2city, scenery objects etc. from the underlying scenery as well.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Currently Available World Scenery 3.0&lt;br /&gt;
!Scenery&lt;br /&gt;
!Area&lt;br /&gt;
!Size &lt;br /&gt;
!Bottom Left&lt;br /&gt;
!Top Right&lt;br /&gt;
!Area (degrees^2)&lt;br /&gt;
!Landclass Source&lt;br /&gt;
!Landclass Resolution (m)&lt;br /&gt;
!Comments&lt;br /&gt;
!Osm2city Scenery&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=share_link WS30_UK]&lt;br /&gt;
|Most of the UK&lt;br /&gt;
|1GB&lt;br /&gt;
| -11,49&lt;br /&gt;
|1,61&lt;br /&gt;
|121&lt;br /&gt;
|CORINE&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/19FodUumjOdfWFrzrDo5Yu2U5T8C5Ddzi/view?usp=share_link WS30_FSWeekend]&lt;br /&gt;
|Amsterdam and Lelystad&lt;br /&gt;
|120MB&lt;br /&gt;
|3,52&lt;br /&gt;
|8,55&lt;br /&gt;
|8&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|DDS Includes osm2city&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1MrYuDKbMl4WhCEq9gnnt8Tz61lTAScvD/view?usp=share_link WS_Alps]&lt;br /&gt;
|&lt;br /&gt;
|49MB&lt;br /&gt;
|6,45&lt;br /&gt;
|8,47&lt;br /&gt;
|4&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1V4AgqRcVo_7oFly8xCOZMPK7Gvb_X1HB/view?usp=share_link WS30_CA]&lt;br /&gt;
|Northern California&lt;br /&gt;
|350MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,39&lt;br /&gt;
|25&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1j91qImcU28jrt290O5sUHbRZe7-fQJf-/view?usp=share_link WS30_CA2]&lt;br /&gt;
|Northern California, PNG&lt;br /&gt;
|454MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,40&lt;br /&gt;
|30&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|PNG; for most pilots this is the only scenery that works without troubles.&lt;br /&gt;
|[https://drive.google.com/file/d/1jrs7x4LOsdhn7IrISQIrHayu0yMQHaE1/view?usp=share_link osm2city buildings, trees, maritime, pylons etc.] (ca. 230 MB) - San Francisco Bay and San Pablo Bay&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1x-kuCTfyMWddTi0fbr_nl41LR41Ylvwb/view?usp=share_link WS30_MTQ]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|[https://drive.google.com/file/d/1QtojSTbnAAfkMzirQHnDJWbBDGOtnwIK/view?usp=sharing osm2city buildings, trees, maritime, pylons etc.] (ca. 40 MB).&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/14kbbgXbofDmqxho-bMCfOG4jDwcDqwBd/view?usp=share_link WS30_MTQ_25m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1NwBjtISPAoTS0vqbV8idvu64CzKJNDQ-/view?usp=share_link WS_MTQ_5m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to the selected areas above, global up-to-date WS3.0 airports have been built. You can find them [https://cdn.merspieler.tk/airports/ here]&lt;br /&gt;
&lt;br /&gt;
== Running World Scenery 3.0 ==&lt;br /&gt;
To run WS3.0 you need to set the &amp;lt;code&amp;gt;/scenery/use-vpb&amp;lt;/code&amp;gt; property to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; at startup.  Either set &amp;lt;code&amp;gt;--prop:/scenery/use-vpb=true&amp;lt;/code&amp;gt; on your command-line, or in the Additional Settings part of the Settings pane of the launcher.&lt;br /&gt;
&lt;br /&gt;
WS3.0 can use a lot of memory - significantly more than WS2.0.  You can control the memory usage with the following properties:&lt;br /&gt;
&lt;br /&gt;
* /sim/rendering/max-paged-lod controls the minimum number of objects that will be kept in memory.  The default setting is 200.&lt;br /&gt;
* /sim/rendering/plod-minimum-expiry-time-secs controls how long objects remain loaded for after they are no-longer in view.  The default value is 180 (3 minutes).&lt;br /&gt;
&lt;br /&gt;
Reducing these properties will reduce the memory footprint of WS3.0.&lt;br /&gt;
&lt;br /&gt;
If you have lots of spare cores, you can run multiple threads to load scenery by setting &amp;lt;code&amp;gt;/sim/rendering/database-pager/threads&amp;lt;/code&amp;gt; to a number greater than 4 on startup.  E.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/database-pager/threads=8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== WS 2.0 scenery is still needed ===&lt;br /&gt;
To have airports displayed plus some of the default scenery objects, you should still have the WS 2.0 scenery for the same area installed.&lt;br /&gt;
&lt;br /&gt;
If you want updated airports, checkout the global WS3.0 airports above. To avoid collisions you need to not have any WS2.0 airports enabled if you use these.&lt;br /&gt;
&lt;br /&gt;
=== Using osm2city ===&lt;br /&gt;
WS3.0 has built-in support for OpenStreetmap roads, so you should not have it enabled in rendering settings.&lt;br /&gt;
&lt;br /&gt;
You have 2 options:&lt;br /&gt;
&lt;br /&gt;
* If you have WS2.0 world scenery, then it already contains osm2city buildings etc. You can just use these and live with slight elevation offsets.&lt;br /&gt;
* The other option is to use the provided osm2city scenery instead. If doing so you need to makes sure that WS2.0 osm2city has not been downloaded (or delete the folders manually). E.g. if you are using [[TerraMaster]] then you can remove the ticks in Settings for &amp;quot;Buildings&amp;quot;, &amp;quot;Pylons&amp;quot; and &amp;quot;Roads&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Using the explicitly provided osm2city scenery gives you trees in gardens/parks and some improvements only available on NEXT.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138836</id>
		<title>World Scenery 3.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0&amp;diff=138836"/>
		<updated>2023-12-21T23:07:28Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Currently Available Scenery */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
World Scenery 3.0 is a project to replace the tiled single-mesh World Scenery 2.0 with an LoD-based approach using a regular elevation mesh, landclass texture and vector line features.&lt;br /&gt;
&lt;br /&gt;
This leverages OSG's Virtual Planet Builder and OpenStreetmap APIs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For further information:&lt;br /&gt;
&lt;br /&gt;
* [[World Scenery 3.0 roadmap]]&lt;br /&gt;
* [[World Scenery 3.0 rendering]]&lt;br /&gt;
* [[World Scenery 3.0 coastlines]]&lt;br /&gt;
* [[WS3.0 Performance Testing]]&lt;br /&gt;
* [[Howto:Create WS3.0 terrain]]&lt;br /&gt;
* [[Virtual Planet Builder]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== Currently Available Scenery ===&lt;br /&gt;
Scenery is not currently distributed using Terrasync.  Instead, sections of scenery must be downloaded individually and added to your [[FG SCENERY|scenery path]].  If you set these in your scenery path ahead of any other scenery, it will pick up osm2city, scenery objects etc. from the underlying scenery as well.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Currently Available World Scenery 3.0&lt;br /&gt;
!Scenery&lt;br /&gt;
!Area&lt;br /&gt;
!Size &lt;br /&gt;
!Bottom Left&lt;br /&gt;
!Top Right&lt;br /&gt;
!Area (degrees^2)&lt;br /&gt;
!Landclass Source&lt;br /&gt;
!Landclass Resolution (m)&lt;br /&gt;
!Comments&lt;br /&gt;
!Osm2city Scenery&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=share_link WS30_UK]&lt;br /&gt;
|Most of the UK&lt;br /&gt;
|1GB&lt;br /&gt;
| -11,49&lt;br /&gt;
|1,61&lt;br /&gt;
|121&lt;br /&gt;
|CORINE&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/19FodUumjOdfWFrzrDo5Yu2U5T8C5Ddzi/view?usp=share_link WS30_FSWeekend]&lt;br /&gt;
|Amsterdam and Lelystad&lt;br /&gt;
|120MB&lt;br /&gt;
|3,52&lt;br /&gt;
|8,55&lt;br /&gt;
|8&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|DDS Includes osm2city&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1MrYuDKbMl4WhCEq9gnnt8Tz61lTAScvD/view?usp=share_link WS_Alps]&lt;br /&gt;
|&lt;br /&gt;
|49MB&lt;br /&gt;
|6,45&lt;br /&gt;
|8,47&lt;br /&gt;
|4&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1V4AgqRcVo_7oFly8xCOZMPK7Gvb_X1HB/view?usp=share_link WS30_CA]&lt;br /&gt;
|Northern California&lt;br /&gt;
|350MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,39&lt;br /&gt;
|25&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|DDS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1j91qImcU28jrt290O5sUHbRZe7-fQJf-/view?usp=share_link WS30_CA2]&lt;br /&gt;
|Northern California, PNG&lt;br /&gt;
|454MB&lt;br /&gt;
| -124,34&lt;br /&gt;
| -119,40&lt;br /&gt;
|30&lt;br /&gt;
|NLCD&lt;br /&gt;
|30&lt;br /&gt;
|PNG; for most pilots this is the only scenery that works without troubles.&lt;br /&gt;
|[https://drive.google.com/file/d/1jrs7x4LOsdhn7IrISQIrHayu0yMQHaE1/view?usp=share_link osm2city buildings, trees, maritime, pylons etc.] (ca. 230 MB) - San Francisco Bay and San Pablo Bay&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1x-kuCTfyMWddTi0fbr_nl41LR41Ylvwb/view?usp=share_link WS30_MTQ]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|10&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|[https://drive.google.com/file/d/1QtojSTbnAAfkMzirQHnDJWbBDGOtnwIK/view?usp=sharing osm2city buildings, trees, maritime, pylons etc.] (ca. 40 MB).&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/14kbbgXbofDmqxho-bMCfOG4jDwcDqwBd/view?usp=share_link WS30_MTQ_25m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|25&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|-&lt;br /&gt;
|[https://drive.google.com/file/d/1NwBjtISPAoTS0vqbV8idvu64CzKJNDQ-/view?usp=share_link WS_MTQ_5m]&lt;br /&gt;
|Martinique&lt;br /&gt;
|7MB&lt;br /&gt;
| -62,14&lt;br /&gt;
| -60,15&lt;br /&gt;
|2&lt;br /&gt;
|CORINE&lt;br /&gt;
|5&lt;br /&gt;
|PNG; Small French Caribbean island.  One airport (TFFF)&lt;br /&gt;
|(see above)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to the selected areas above, global up-to-date WS3.0 airports have been built. You can find them [https://cdn.merspieler.tk/airports/ here]&lt;br /&gt;
&lt;br /&gt;
== Running World Scenery 3.0 ==&lt;br /&gt;
To run WS3.0 you need to set the &amp;lt;code&amp;gt;/scenery/use-vpb&amp;lt;/code&amp;gt; property to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; at startup.  Either set &amp;lt;code&amp;gt;--prop:/scenery/use-vpb=true&amp;lt;/code&amp;gt; on your command-line, or in the Additional Settings part of the Settings pane of the launcher.&lt;br /&gt;
&lt;br /&gt;
WS3.0 can use a lot of memory - significantly more than WS2.0.  You can control the memory usage with the following properties:&lt;br /&gt;
&lt;br /&gt;
* /sim/rendering/max-paged-lod controls the minimum number of objects that will be kept in memory.  The default setting is 200.&lt;br /&gt;
* /sim/rendering/plod-minimum-expiry-time-secs controls how long objects remain loaded for after they are no-longer in view.  The default value is 180 (3 minutes).&lt;br /&gt;
&lt;br /&gt;
Reducing these properties will reduce the memory footprint of WS3.0.&lt;br /&gt;
&lt;br /&gt;
If you have lots of spare cores, you can run multiple threads to load scenery by setting &amp;lt;code&amp;gt;/sim/rendering/database-pager/threads&amp;lt;/code&amp;gt; to a number greater than 4 on startup.  E.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/database-pager/threads=8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== WS 2.0 scenery is still needed ===&lt;br /&gt;
To have airports displayed plus some of the default scenery objects, you should still have the WS 2.0 scenery for the same area installed. &lt;br /&gt;
&lt;br /&gt;
=== Using osm2city ===&lt;br /&gt;
WS3.0 has built-in support for OpenStreetmap roads, so you should not have it enabled in rendering settings.&lt;br /&gt;
&lt;br /&gt;
You have 2 options:&lt;br /&gt;
&lt;br /&gt;
* If you have WS2.0 world scenery, then it already contains osm2city buildings etc. You can just use these and live with slight elevation offsets.&lt;br /&gt;
* The other option is to use the provided osm2city scenery instead. If doing so you need to makes sure that WS2.0 osm2city has not been downloaded (or delete the folders manually). E.g. if you are using [[TerraMaster]] then you can remove the ticks in Settings for &amp;quot;Buildings&amp;quot;, &amp;quot;Pylons&amp;quot; and &amp;quot;Roads&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Using the explicitly provided osm2city scenery gives you trees in gardens/parks and some improvements only available on NEXT.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=138434</id>
		<title>World Scenery 3.0 roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=138434"/>
		<updated>2023-09-25T19:58:34Z</updated>

		<summary type="html">&lt;p&gt;Nia: For the airport updates are no longer any pending tasks required.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scenery Core Development}}&lt;br /&gt;
{{WS30 Navbar}}&lt;br /&gt;
{{See also|TerraGear roadmap}}&lt;br /&gt;
{{Project&lt;br /&gt;
|name = World Scenery 3.0&lt;br /&gt;
|description = New world-wide scenery&lt;br /&gt;
|start-date = 2019-Sep&lt;br /&gt;
|current-status = Active &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37074319/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|developers = Scott Giese&amp;lt;br/&amp;gt;Richard Harrison&amp;lt;br/&amp;gt;Stuart Buchanan&lt;br /&gt;
&lt;br /&gt;
|motivation-body = &lt;br /&gt;
{{Main article|Virtual Planet Builder}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Virtual Planet Builder (VPB) is OSG's terrain-database-building tool.&lt;br /&gt;
It loads GIS elevation data for a&lt;br /&gt;
region, combines it with imagery and produces a spatially-balanced&lt;br /&gt;
quadtree tiled database that can be navigated simply by loading the&lt;br /&gt;
top-level file. All of the LOD Ranges are pre-configured and the&lt;br /&gt;
DatabasePager automatically loads and unloads different segments of&lt;br /&gt;
terrain without any supporting userspace code required. VPB can build&lt;br /&gt;
terrain models ranging from a small area to the entire planet. These&lt;br /&gt;
databases can be fluidly navigated at 60fps from outer space down to&lt;br /&gt;
ground level with no interruptions. The terrain models are built of&lt;br /&gt;
regular grid arrays with optional edge-skirts to conceal any cracks&lt;br /&gt;
caused by adjacent LOD differences.&amp;lt;br/&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://alphapixel.com/wp-content/uploads/2015/04/OpenSceneGraph-OSG-Virtual-Planet-Builder-VPB-OSGDEM.pdf&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;OpenScenGraph's Virtual Planet Builder/OSGDEM&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |publisher=&amp;lt;nowiki&amp;gt;AlphaPixel, LLC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|objective-body =&lt;br /&gt;
&lt;br /&gt;
[[File:Edinburgh rendering using WS3.0.jpg|thumb|Initial rendering of Edinburgh scenery using a raster landclass and texture lookup for city, water and grass]]&lt;br /&gt;
[[File:WS3.0 terrain with WS2.0 EGPH.jpg|thumb|Screenshot showing a WS2.0 airport .btg file rendered with WS3.0 terrain]]&lt;br /&gt;
[[File:EGPH roads.jpg|thumb|WS3.0 Edinburgh airport with runtime-generated roads from OSM data]]&lt;br /&gt;
[[File:WS30 - West Lothian.png|thumb|WS30 view of West Lothian, with 25m resolution landclass data, vegetation, osm2city buildings, and OSM-based roads and rivers.]]&lt;br /&gt;
[[File:WS30 street lighting.jpg|thumb|Edinburgh at night, with osm2city buildings, OSM-base roads, including whether they are lit or not.  Note the road in the foreground which is lit near the buildings and unlit in the countryside.]]&lt;br /&gt;
[[File:Fgfs-20220528191253.png|thumb|WS30 using OSM data to define the coastline.  This shows a view near Oban in Scotland looking South.  The coastline is applied as a high resolution overlay texture that is generated at runtime from OSM data and mixed with the landclass texture by the ws30 shader.]]&lt;br /&gt;
&lt;br /&gt;
Produce high-quality scenery using the best-known practices.&lt;br /&gt;
&lt;br /&gt;
TerraGear becomes obsolete in favor of VPB.&lt;br /&gt;
&lt;br /&gt;
* '''OpenGL 3.3 Core Profile''': WS3.0 will require us to eliminate the usage of the fixed-function pipeline.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''Shader-based Rendering''': All of the terrain renderings will be done via GLSL shaders.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''OSG Core''': OpenSceneGraph will require targeting of the OpenGL Core Profile.&lt;br /&gt;
&lt;br /&gt;
WS3.0 will continue to cooperate with osm2city.&lt;br /&gt;
&lt;br /&gt;
Easy upgrade: Initially the plan was that airport layouts will be generated in real-time. Apt.dat will continue to be the primary source for airport layouts and that airports will be draped over the terrain. This would eliminate the need to cut airport layouts into the underlying terrain.&lt;br /&gt;
Due to difficulties with this approach, it has been decided, that we keep using the WS2.0 airports for now. Work has been done to automatically update the airports from the X-Plane gateway which can be done automatically now. &lt;br /&gt;
The apt.dat file gets update with this as well. Here it remains for the navdb parser to understand the 8.33kHz frequencies.&lt;br /&gt;
&lt;br /&gt;
WS3.0 also offers the opportunity for well performing ortho scenery with acceptable memory impact. merspieler has acquired GPL compatible sources so we could theoretically have a demo area with ortho scenery in the first WS3.0 release. It adds significant storage requirement tho (~14.7GB per 1x1 degrees tile). There hasn't been a decision made yet, on how to proceed on this.&lt;br /&gt;
&lt;br /&gt;
|background-body =&lt;br /&gt;
=== Data Sources ===&lt;br /&gt;
&lt;br /&gt;
:;SRTMGL3.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL3.003/&lt;br /&gt;
:;SRTMGL1.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/&lt;br /&gt;
:;Global Land Cover:: https://lcviewer.vito.be/&lt;br /&gt;
:;Natural Earth:: https://www.naturalearthdata.com/&lt;br /&gt;
:;OpenStreetMap :: https://www.openstreetmap.org (See https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/ws30/ genroads.py, gencoastline.py, genwater.py for details)&lt;br /&gt;
&lt;br /&gt;
|status-body = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As of 11/2021, WS30 is available on &amp;quot;next&amp;quot;, and on the [https://download.flightgear.org/builds/nightly/ nightly builds]. &lt;br /&gt;
&lt;br /&gt;
Scenery is available for Scotland, but must be downloaded directly (https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=sharing). You need to add the downloaded and then extracted folder as additional scenery folder.&lt;br /&gt;
&lt;br /&gt;
WS30 can be enabled from the Rendering Options menu, with fine-tuning from the LoD menu. Alternatively you can set --prop:/scenery/use-vpb=true to enable it as command line option.&lt;br /&gt;
&lt;br /&gt;
Airports are currently in the old WS2 format - including airport keep terrain. The WS30 terrain goes under the airport so it is not visible.&lt;br /&gt;
&lt;br /&gt;
Roads are implemented. Lights on roads are implemented - to see, set time to night. WiP rendering.&lt;br /&gt;
&lt;br /&gt;
Vegetation is available - initial version.&lt;br /&gt;
&lt;br /&gt;
While large water bodies are defined in the landclass texture, rivers are draped on top from OSM data.  Coastlines are taken from OSM by are applied as a higher resolution overlay texture to reduce the tiling effect.&lt;br /&gt;
&lt;br /&gt;
Scenery generation workflow is at an advanced stage. It's fast to build. Scott was able to do UK in a matter of hours [https://sourceforge.net/p/flightgear/mailman/message/37259618/]. People interested in generating scenery for the World Build, or getting their landclass or elevation work on [[Suggested custom scenery|custom scenery]] in, should start learning the tools and process. The exact VPB settings and scenery file format may change several times before the final build. But the process of getting work in to shouldn't change much for scenery creators. See the [[Virtual Planet Builder]] page for instructions.&lt;br /&gt;
&lt;br /&gt;
====Scenery generation tool availability ====&lt;br /&gt;
* [[VPB]]: '''Linux:''' build from source, docker image available. '''Windows and Mac:''' build from source, no binaries yet, needs NVTT binaries - see &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list to assist.&lt;br /&gt;
* [[QGIS]]: Not needed when experimenting with terrain generation using lower res landclass rasters provided by CORINE. '''Linux:''' build from source, binary packages[https://qgis.org/en/site/forusers/download.html], official docker release available: https://hub.docker.com/r/qgis/qgis  but Fahim was not sure easy the GUI is to use [https://sourceforge.net/p/flightgear/mailman/message/37381800/]. '''Windows, Mac:''' official QGIS binary releases [https://qgis.org/en/site/forusers/download.html].&lt;br /&gt;
&lt;br /&gt;
===LoD settings===&lt;br /&gt;
Go to ''View &amp;gt; Adjust LoD &amp;gt; World Scenery 3.0 section'' (Nov 2021).&lt;br /&gt;
* 7 LoD levels - most detailed is 6, shown at closest range. Least detailed is 0, shown at long range. LoD 0 tiles with Scotland scenery are 1x1 degree, or approx 111 km x 111 km at the equator.&lt;br /&gt;
* Scenery is divided into chunks called tiles. As view distance increases, tiles with a LoD level are replaced by tiles with the next lowest LoD level. e.g. Four LoD 6 tiles are replaced by one LoD 5 tile. Four LoD 5 tiles are replaced by one LoD 4 tile. As view gets closer the reverse happens. One LoD 2 tile is replaced by four LoD 3 tiles.&lt;br /&gt;
* Detail range - The LoD level below which each type of feature is not visible. e.g. setting vegetation to LoD 3 means vegetation is shown for LoD 3/4/5/6 and not shown for tiles with LoD 0/1/2.&lt;br /&gt;
* Minimum line feature width (line features are things like roads or rivers) - for every LoD level, the width in meters below which a line feature is not shown. e.g. setting LoD level four to 30 meters means rivers or roads that are narrower than 30 meters are not shown for level four tiles. The minimum widths should stay the same or decrease when going down a LoD level.&lt;br /&gt;
* Minimum area feature width (area features are things like lakes) - similar to minimum line feature width, but for area in square meters. Setting LoD 3 to 100 square meters means lakes of size 99 square meters or 40 square meters will not show for LoD level 3 tiles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof of Concept  {{progressbar|100}}&lt;br /&gt;
* VPB {{done}}&lt;br /&gt;
* osgOcean {{done}}&lt;br /&gt;
* osgVegetation {{done}}&lt;br /&gt;
* Generate terrain for Hawaii {{done}}&lt;br /&gt;
* Hack Hawaii VPB into FG {{done}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OSG {{progressbar|70}}&lt;br /&gt;
* Core Profile: {{done}}&lt;br /&gt;
* GLVND Support: {{done}}&lt;br /&gt;
* glTF Plugin Support: {{ongoing}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity&lt;br /&gt;
| align  = right&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | N00-N60 lat&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Africa Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Ocean-N00-N90.png | Ocean Fill&lt;br /&gt;
}}&lt;br /&gt;
=== Standard-Fidelity - 90m SRTMGL3 - 100m Global Land Cover ===&lt;br /&gt;
&lt;br /&gt;
=== Northern Hemisphere: 152.3 GB ===&lt;br /&gt;
=== Southern Hemisphere: 57.4 GB ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|70}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL3.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Ocean {{done}}&lt;br /&gt;
** Northern: {{progressbar|100}}&lt;br /&gt;
** Southern: {{progressbar|100}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High-Fidelity - 30m SRTMGL1 - Best Available Land Cover ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|30}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL1.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|news-body=&lt;br /&gt;
The northern hemisphere, up to N60, has been completed. The southern hemisphere, above S56, has been completed.&lt;br /&gt;
SRTM data was not captured above N60 and below S56, so alternative data sources need to be procured.&lt;br /&gt;
&lt;br /&gt;
Stuart has made good progress with the procedure needed to convert apt.dat into an airport object. Our goal is to utilize this to project/drape the airport layout over the terrain. This will enable localized edits of airports without requiring us to generate another world scenery build. &lt;br /&gt;
&lt;br /&gt;
Oceans are complete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity Gallery&lt;br /&gt;
| align  = center&lt;br /&gt;
| Terrain-Mesh.jpg | WS3 Terrain Mesh&lt;br /&gt;
| S10-N60-LC100m-SRTMGL3.png | Asia/India&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | Europe&lt;br /&gt;
| N00-N40-LC100m-SRTMGL3.png | USA&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Africa-Natural2.png | Natural Earth&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For the experimental runtime generated mesh/landclassing engine - which may become WS3.0 - see [[Experimental terrain engine]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development projects‎]]&lt;br /&gt;
[[Category:Scenery]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Ground_Services_from_apt.dat&amp;diff=138387</id>
		<title>Hackathon Proposal: Ground Services from apt.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Ground_Services_from_apt.dat&amp;diff=138387"/>
		<updated>2023-09-16T19:15:57Z</updated>

		<summary type="html">&lt;p&gt;Nia: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot;  |-  | Title || '''&amp;lt;big&amp;gt;Ground Services from apt.dat&amp;lt;/big&amp;gt;'''  |-  | Sponsor || merspieler  |-  | Supporters ||  |-  | Status ||  |-  | Summary || The new...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Title || '''&amp;lt;big&amp;gt;Ground Services from apt.dat&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Sponsor || merspieler&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Supporters ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Status ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Summary || The newer apt.dat format defines routes for ground traffic. Idea is to read (if needed, pre-process the data) that and create ground traffic using this data.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Background || Airports are busy, not just the aircraft but also all the ground handling like baggage carts, fuel trucks, crew busses, etc. This is missing in FG, adding it would make the airport feel way more alive.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Details ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Skills ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Notes || [https://developer.x-plane.com/article/airport-data-apt-dat-12-00-file-format-specification/ apt.dat 1200 spec]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_WS3.0_Ortho_Water_Transition_Shader&amp;diff=138335</id>
		<title>Hackathon Proposal: WS3.0 Ortho Water Transition Shader</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_WS3.0_Ortho_Water_Transition_Shader&amp;diff=138335"/>
		<updated>2023-09-03T21:22:33Z</updated>

		<summary type="html">&lt;p&gt;Nia: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot;  |-  | Title || '''&amp;lt;big&amp;gt;Ortho to Water transition shader for WS3.0&amp;lt;/big&amp;gt;'''  |-  | Sponsor || merspieler  |-  | Supporters ||  |-  | Status ||  |-  | Summ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Title || '''&amp;lt;big&amp;gt;Ortho to Water transition shader for WS3.0&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Sponsor || merspieler&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Supporters ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Status ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Summary || Create a nice transition between water and ortho photos in WS3.0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Background || Right now, it's a rather hard cut between ortho scenery and water.&lt;br /&gt;
A transition shader would get rid of that hard cut and make underwater features in shallow water visible (such as reefs)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Details ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Skills || C++?, GLSL&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Notes || Stuart say this is doable and would offer mentorship.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Volumetric_Clouds&amp;diff=138334</id>
		<title>Hackathon Proposal: Volumetric Clouds</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Volumetric_Clouds&amp;diff=138334"/>
		<updated>2023-09-03T20:34:52Z</updated>

		<summary type="html">&lt;p&gt;Nia: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot;  |-  | Title || '''&amp;lt;big&amp;gt;Volumetric Clouds&amp;lt;/big&amp;gt;'''  |-  | Sponsor || merspieler  |-  | Supporters ||  |-  | Status ||  |-  | Summary || Create volumetric...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Title || '''&amp;lt;big&amp;gt;Volumetric Clouds&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Sponsor || merspieler&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Supporters ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Status ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Summary || Create volumetric clouds&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Background || Right now, the &amp;quot;3D&amp;quot; clouds are just billboards, which always face the camera (with the ufo look straight up and roll a little bit to observe clouds rotating). Since they're just 2 dimensional billboards you can never really be in a cloud. Right now we cheat here by reducing the visibility when being in a cloud which makes it strange looking when emerging from the cloud as you can see the visible area expand again. When flying toward the cloud it's a hard cut through it and it might clip into the cockpit.&lt;br /&gt;
The solution is having volumetric clouds. This could be realized using 3D textures (see [https://yt.artemislena.eu/watch?v=4QOcCGI6xOU this video] for how this could be approached)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Details ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Skills || C++, GLSL&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Notes || Stuart has thought about this a bit already and thinks this is doable and would be able to mentor.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Docker_Container_for_osm2city&amp;diff=138313</id>
		<title>Hackathon Proposal: Docker Container for osm2city</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Docker_Container_for_osm2city&amp;diff=138313"/>
		<updated>2023-09-02T15:50:30Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Title          || '''&amp;lt;big&amp;gt;Docker container for osm2city&amp;lt;/big&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| Sponsor        || [https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=9140 vanosten]&lt;br /&gt;
|-&lt;br /&gt;
| Supporters     || &lt;br /&gt;
|-&lt;br /&gt;
| Status         || Proposed&lt;br /&gt;
|-&lt;br /&gt;
| Summary        || Create a [https://opencontainers.org/ OCI container] (&amp;quot;Docker&amp;quot;) for [[Osm2city.py | osm2city]], which is based on the originally Python based [https://gitlab.com/osm2city/osm2city osm2city] as well as the C++ based [https://gitlab.com/osm2city/osm2gear osm2gear] such that interested parties easier can contribute to generate scenery.&lt;br /&gt;
|-&lt;br /&gt;
| Background     || &lt;br /&gt;
|-&lt;br /&gt;
| Details        || &lt;br /&gt;
|-&lt;br /&gt;
| Skills         || C++, CMake, Python, Docker&lt;br /&gt;
|-&lt;br /&gt;
| Notes  || Alternative to a container image, osm2city could be included into [[Scripted Compilation on Linux Debian/Ubuntu]] - which is good for installations on one machine, but less ideal to run multiple machines in a virtual setup.&lt;br /&gt;
[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=21618 merspieler] has already created such a container (about 2 years ago) but she didn't update it for the new C++ based branch and new features yet.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Hackathon 2023 Ideas]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2023&amp;diff=138312</id>
		<title>Virtual FSweekend Hackathon 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_FSweekend_Hackathon_2023&amp;diff=138312"/>
		<updated>2023-09-02T15:41:48Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Sign up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Normally in mid-November a group of FlightGear enthusiasts participate in [[FSWeekend]] in [https://www.aviodrome.nl/ Aviodrome] at the [https://www.lelystadairport.nl/ Lelystad Airport] in the Netherlands. Over the years this has been a focal point for both finishing existing development/releases and a catalyst for new ideas in FlightGear, as well as an opportunity for FlightGear enthusiasts to share a beer. This year the [https://www.aviodrome.nl/evenementen/flight-simulator/?_gl=1*1hh597t*_up*MQ..&amp;amp;gclid=EAIaIQobChMIhdjmndaLgQMVKpiDBx3wFwOwEAAYASAAEgI64vD_BwE Flight Simulator Weekend] has been re-scheduled to March 16/17 2024.&lt;br /&gt;
&lt;br /&gt;
To keep the spirit alive and repeat the successful execution of the [[Virtual_FSweekend_Hackathon_2020|Virtual FSweekend Hackathon 2020]] and [[Virtual_FSweekend_Hackathon_2021|Virtual FSweekend Hackathon 2021]], we are planning to hold another Virtual FSweekend Hackathon on the weekend of {{{days_string|10/11/12}}} November {{{year|2023}}} (in {{days from now|{{{year|2023}}}|11|10}}).&lt;br /&gt;
&lt;br /&gt;
== Hackathon? ==&lt;br /&gt;
For those who have not participated in a hackathon before, the broad idea is to get people from a wide variety of experience and backgrounds together to solve problems over a short period of time - typically 24 or 48 hours. Details vary, but typically at the start of the event, people pitch ideas and groups form organically based on what people are interested in. The groups then work together intensively, often fueled by pizza and caffeine etc. At the end of the hackathon the groups present their work and there are often prizes for the best hacks.&lt;br /&gt;
&lt;br /&gt;
The general idea of virtual FSWeekend hackathons is to encourage existing and new contributors to collaborate over the course of a weekend to create new and exciting features for FlightGear in the broadest sense. The core developers would particularly like to use it as an opportunity to encourage people to get their hands dirty in the core code, so they will be primarily there to help/coach people rather than hacking themselves, but anything is possible :)&lt;br /&gt;
&lt;br /&gt;
No prior development experience is necessary - there might be run some education sessions ahead of the weekend so people can hit the ground running (otherwise you will learn during the hackathon). Also, do not feel you have to commit to coding the entire weekend to the exclusion of all else. We think participants will still get real value if they can just commit to one day and some late evenings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Only Core Development? ==&lt;br /&gt;
While the core of the hackathon incl. support previously has been dedicated to development in the very core of FlightGear (mostly C++, [[Nasal_scripting_language|Nasal]] and xml), you are also welcome to participate if you are developing stuff, which contributes to the general FlightGear ecosystem (e.g. [[Addon]], visual artwork or [[Osm2city.py|osm2city]]). However, in that case you might need to provide your own support.&lt;br /&gt;
&lt;br /&gt;
== Sign up ==&lt;br /&gt;
{{Note|There is space for many participants, so don't be shy. {{{organizer|Rick}}} is happy for people to register right up to the Friday night, but we will not be able to help out with getting builds and git working if you leave it that late!}}&lt;br /&gt;
&lt;br /&gt;
To register your participation, please contact {{{organizer|Rick}}} either on the {{forum link|t=41662|text=forum post}}, by PM on the [https://discord.gg/rzuV2DR FlightGear Discord server] or via the [https://sourceforge.net/p/flightgear/mailman/message/37890811/ devel list].  &lt;br /&gt;
&lt;br /&gt;
Confirmed participants (in alphabetical order):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! aka.&lt;br /&gt;
! Role&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
|Rick Gruber-Riemer&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=9140 vanosten], HB-VANO on FG Discord&lt;br /&gt;
|Organiser/mentor&lt;br /&gt;
|Can coach osm2city and OSM data processing&lt;br /&gt;
|-&lt;br /&gt;
|Nia&lt;br /&gt;
|[https://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=21618 merspieler], Nia on [https://matrix.to/#/#flightgear-jsbsim:hacklab.fi FG Matrix]&lt;br /&gt;
|Infra provider, ask if you've got issues with Mattermost or Jitsi&lt;br /&gt;
|Can help with osm2city data processing (worldbuild stuff)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ahead of the Hackathon ==&lt;br /&gt;
There are a couple of key activities ahead of the weekend in {{{year|2023}}}.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
So we can hit the ground running, we really want everyone participating to already have:&lt;br /&gt;
* SourceForge credentials&lt;br /&gt;
* A working build environment with [[OpenSceneGraph|OSG]], [[PLIB]] etc.&lt;br /&gt;
* A Git checkout of simgear/flightgear (cf. [[FlightGear_Git]])&lt;br /&gt;
* A Git checkout of fgdata&lt;br /&gt;
* Some experience with [https://git-scm.com/ Git]&lt;br /&gt;
&lt;br /&gt;
At the very least you should be able to work with a [[FlightGear_build_server|nightly version]] of FlightGear.&lt;br /&gt;
&lt;br /&gt;
Before the Hackathon consider having a look into the dedicated [[:Category:Hackathon Materials|Hackathon Materials]] category for articles, which might help get you going.&lt;br /&gt;
&lt;br /&gt;
=== Logistics ===&lt;br /&gt;
Being completely remote, we need the ability to collaborate in teams as well as video conference as a group.&lt;br /&gt;
&lt;br /&gt;
There will be a [https://mattermost.com/ Mattermost] server for the weekend.  We'll be using that for organization, discussion and collaboration.&lt;br /&gt;
&lt;br /&gt;
We'll be using a [https://jitsi.org/ Jitsi] Server for video conferencing and demos.&lt;br /&gt;
&lt;br /&gt;
To use the server, please start the Jitsi calls from within Mattermost (click on that power plug symbol in the top bar next to the search). Preferably use an app or Chrome/Chromium.&lt;br /&gt;
&lt;br /&gt;
=== Ideation ===&lt;br /&gt;
The core of the Hackathon!  These are the projects, ideas and problems that participants will be working on during the weekend. In the weeks before the Hackathon itself, participants can, and should, propose things to work on. Simply create a wiki page describing your idea, and encourage people to contribute and get interested.&lt;br /&gt;
&lt;br /&gt;
Check out the [[:Category:Hackathon {{{year|2023}}} Ideas|Hackathon {{{year|2023}}} Ideas]] category page for a how-to as well as links to existing proposals. &lt;br /&gt;
&lt;br /&gt;
You can also take a look at proposals from the previous years.&lt;br /&gt;
&lt;br /&gt;
Not having an idea?  No problem!  Have a look at the proposed ideas, leave a comment on the Discussion page, and add yourself as an Interested Party for those ideas you consider working on during the Hackathon.  There is no commitment until the start of the Hackathon on Friday evening.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
With (hopefully) a world-wide group of participants, and varying real life constraints, at any given time over the weekend there will hopefully be a couple of people active.  &lt;br /&gt;
&lt;br /&gt;
We will have two big get-togethers:&lt;br /&gt;
&lt;br /&gt;
=== {{{kick-off-totd-utc|Friday 10th November 2000-2200 UTC.}}} Kick-off ===&lt;br /&gt;
* General welcome&lt;br /&gt;
* Introductions &lt;br /&gt;
* Hack pitches&lt;br /&gt;
* Team formation&lt;br /&gt;
&lt;br /&gt;
This is the point at which participants will decide, which Hacks they want to work on. The sponsors of each of the Hacks proposed ahead of time will be invited to give a 5 minutes pitch to the group, with some questions from the audience. Slides/screenshots optional.&lt;br /&gt;
&lt;br /&gt;
After all the Hacks have been pitched, we will have a little break for people to chat and work out which Hack they want to work on. &lt;br /&gt;
&lt;br /&gt;
If a Hack ends up with fewer than 2 people wanting to work on it (including the sponsor), then it will normally be dropped.  This is to encourage people to work in groups - larger teams can get more done in the time, and have more opportunities to learn from each other, plus it is more sociable!&lt;br /&gt;
&lt;br /&gt;
=== {{{wrap-up-totd-utc|Sunday 12th November 2000-2200 UTC.}}}  Wrap up and demos ===&lt;br /&gt;
At the end of the hackathon we will have a get together and have each team present the results of their hack.  &lt;br /&gt;
&lt;br /&gt;
Depending on the number of hacks, each team will have 5-15 minutes to demonstrate their hack, describe what they have learned, and what their next steps are.&lt;br /&gt;
&lt;br /&gt;
We will finish with voting for the best hack of the weekend.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
'''Q''': What is the aim of the Hackathon?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': To learn and have fun hacking FlightGear.  Encourage people to get their hands dirty and modify code.  Try out new ideas.  Working with other people.  Ultimately to increase the number of core developers.&lt;br /&gt;
&lt;br /&gt;
'''Q''': What can participants expect to get out of the weekend?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': The primary goal is for people to learn through experimentation.  To try out new ideas and in the process learn about the internals of FlightGear.  James, Stuart and Fernando will be be providing coaching over the course of the weekend.&lt;br /&gt;
&lt;br /&gt;
'''Q''': What organization will be provided?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': We will provide tools for collaboration, and organize a couple of meetings, but not much more.  The idea behind hackathons is that participants largely self organize - teams form around interesting ideas on Friday evening and organize themselves.  Participants will need to provide their own computers, pizza, Haribo, beer.  The last three are traditional, but optional.&lt;br /&gt;
&lt;br /&gt;
'''Q''': How much time do I need to commit?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': The more the better.  A traditional hackathon would be 24-48 hours of solid work with sleep optional.  That is not realistic for most people, but 20 hours over the weekend would be a good amount to aim for.  Certainly if you can only commit to a couple of evenings you may not get much out of Hackathon.&lt;br /&gt;
&lt;br /&gt;
'''Q''': What skills do I need?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': It depends on what you want to do.  You need to know C/C++ already to be able to hack the core of FlightGear.  The Hackathon is not a good place to learn C++ for the first time.  However, there are lot of interesting projects using Python, Nasal etc.  &lt;br /&gt;
&lt;br /&gt;
'''Q''': I have got a great idea for the Hackathon.  What do I do?&amp;lt;br /&amp;gt;&lt;br /&gt;
'''A''': Great!  Create a wiki page describing it to enthuse other people and collect comments (see [[#Ideation]] section above), and post a link to the Ideation section above so everyone can see it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackathon Materials]]&lt;br /&gt;
[[Category:Hackathons]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Autopush&amp;diff=137836</id>
		<title>Autopush</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Autopush&amp;diff=137836"/>
		<updated>2023-06-25T15:51:42Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Source code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Autopush''' aims to develop a generic pushback for [[JSBSim]] and [[YASim]] aircraft, with the following characteristics:&lt;br /&gt;
&lt;br /&gt;
# Do the pushback procedure automatically.&lt;br /&gt;
# Scale to different aircraft with minimum changes to their logic.&lt;br /&gt;
# Use no computer resources in flight.&lt;br /&gt;
&lt;br /&gt;
== Implementing Autopush ==&lt;br /&gt;
See &amp;lt;code&amp;gt;[https://gitea.merspieler.tk/fly/autopush/src/branch/master/README.TXT README.TXT]&amp;lt;/code&amp;gt; in the development repository.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
September 2021 the following aircraft have Autopush implemented:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! --aircraft= || Aircraft || Hangar&lt;br /&gt;
|-&lt;br /&gt;
| Tu-144D || [[Tupolev Tu-144D]] || [https://gitlab.com/femboywings-fgfs femboywings]&lt;br /&gt;
|-&lt;br /&gt;
| A320-family|| [[A320-family|Airbus A320]] || [[FGAddon]]&lt;br /&gt;
|-&lt;br /&gt;
| IDG-A33X || [[IDG-A33X|Airbus A330]] || Octal450&lt;br /&gt;
|-&lt;br /&gt;
| MD-11 || [[MD-11|McDonnell Douglas MD-11]] || Octal450&lt;br /&gt;
|-&lt;br /&gt;
| MD-80 || [[MD-80|McDonnell Douglas MD-80]] || Octal450&lt;br /&gt;
|-&lt;br /&gt;
| B777 || [[Boeing 777]] || [[FGAddon]]&lt;br /&gt;
|-&lt;br /&gt;
| 747-400 || [[Boeing 747-400]] || [[FGAddon]]&lt;br /&gt;
|-&lt;br /&gt;
| E-Jet family || Embraer E-Jet || [https://github.com/YV3399/E-jet-family-YV Github]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Howto:Implement pushback]] - A different system&lt;br /&gt;
* [[Pushback]] - A drivable model that unfortunately can not do pushback&lt;br /&gt;
&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* {{forum link|title=Autopush help|t=37144}} (March 2020)&lt;br /&gt;
* {{forum link|title=Autopush: Automated pushback|t=34630}} (August 2018-July 2019) - Development topic&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* https://gitea.merspieler.tk/fly/autopush/src/branch/master/README.TXT&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft enhancement]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Autopush&amp;diff=137835</id>
		<title>Autopush</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Autopush&amp;diff=137835"/>
		<updated>2023-06-25T15:50:47Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Implementing Autopush */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Autopush''' aims to develop a generic pushback for [[JSBSim]] and [[YASim]] aircraft, with the following characteristics:&lt;br /&gt;
&lt;br /&gt;
# Do the pushback procedure automatically.&lt;br /&gt;
# Scale to different aircraft with minimum changes to their logic.&lt;br /&gt;
# Use no computer resources in flight.&lt;br /&gt;
&lt;br /&gt;
== Implementing Autopush ==&lt;br /&gt;
See &amp;lt;code&amp;gt;[https://gitea.merspieler.tk/fly/autopush/src/branch/master/README.TXT README.TXT]&amp;lt;/code&amp;gt; in the development repository.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
September 2021 the following aircraft have Autopush implemented:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! --aircraft= || Aircraft || Hangar&lt;br /&gt;
|-&lt;br /&gt;
| Tu-144D || [[Tupolev Tu-144D]] || [https://gitlab.com/femboywings-fgfs femboywings]&lt;br /&gt;
|-&lt;br /&gt;
| A320-family|| [[A320-family|Airbus A320]] || [[FGAddon]]&lt;br /&gt;
|-&lt;br /&gt;
| IDG-A33X || [[IDG-A33X|Airbus A330]] || Octal450&lt;br /&gt;
|-&lt;br /&gt;
| MD-11 || [[MD-11|McDonnell Douglas MD-11]] || Octal450&lt;br /&gt;
|-&lt;br /&gt;
| MD-80 || [[MD-80|McDonnell Douglas MD-80]] || Octal450&lt;br /&gt;
|-&lt;br /&gt;
| B777 || [[Boeing 777]] || [[FGAddon]]&lt;br /&gt;
|-&lt;br /&gt;
| 747-400 || [[Boeing 747-400]] || [[FGAddon]]&lt;br /&gt;
|-&lt;br /&gt;
| E-Jet family || Embraer E-Jet || [https://github.com/YV3399/E-jet-family-YV Github]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Howto:Implement pushback]] - A different system&lt;br /&gt;
* [[Pushback]] - A drivable model that unfortunately can not do pushback&lt;br /&gt;
&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* {{forum link|title=Autopush help|t=37144}} (March 2020)&lt;br /&gt;
* {{forum link|title=Autopush: Automated pushback|t=34630}} (August 2018-July 2019) - Development topic&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{gitlab source|user=mdanil|repo=flightgear-autopush}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft enhancement]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=WS3.0_Subprojects&amp;diff=137434</id>
		<title>WS3.0 Subprojects</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=WS3.0_Subprojects&amp;diff=137434"/>
		<updated>2023-03-19T21:09:41Z</updated>

		<summary type="html">&lt;p&gt;Nia: Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WS30 Navbar}}&lt;br /&gt;
&lt;br /&gt;
This page is intended to collect various WS3.0 sub-projects:  Smaller self-contained projects that can be worked on independently to improve WS3.0&lt;br /&gt;
&lt;br /&gt;
The aim is to encourage more people to contribute to the WS3.0 effort.&lt;br /&gt;
&lt;br /&gt;
They are split by knowledge required.&lt;br /&gt;
&lt;br /&gt;
== C++ ==&lt;br /&gt;
&lt;br /&gt;
=== Smoother Line Features ===&lt;br /&gt;
Line features (roads, railways, rivers) are generated from OSM data at runtime, with different widths of roads generated for different LOD levels.&lt;br /&gt;
&lt;br /&gt;
Currently the algorithm that generates the roads creates places a quad for each segment such that the width of the road is horizontal, a metre or so higher than the terrain.&lt;br /&gt;
&lt;br /&gt;
There are a couple of improvements that could be made:&lt;br /&gt;
&lt;br /&gt;
* Sharp corners look a bit rubbish because the end of a segment is always a normal to the segment length.  This means that on sharp bends the road narrows and looks a bit rubbish.  An improvement would be to calculate the width and angle based on both the last segment and the next one.&lt;br /&gt;
* At present no bridges are handled.  using osm2city code bridges should be implemented.&lt;br /&gt;
* The roads currently following the elevation meshes exactly.  Real roads have embankments and cuttings to smooth out elevation changes.  Cuttings are probably too difficult because they would require modifying the elevation mesh, but embankments would be possible.&lt;br /&gt;
* We currently remove some points at the end of the tile where the intersection algorithm can produce many points close together.  This currently creates some odd roads at the edges of tiles which could be improved.&lt;br /&gt;
[[File:Fgfs-20230306215131.jpg|thumb|Mountain pass new Srinagar, Jammu and Kashmir.]]&lt;br /&gt;
&lt;br /&gt;
=== Water Bodies ===&lt;br /&gt;
We currently have a good solution for coastlines to remove the blockiness of the raster coastlines by using OSM line data and a separate high resolution raster.&lt;br /&gt;
&lt;br /&gt;
We have a script to collect similar data for water bodies (lakes etc.),  A scanline algorithm could be used with this data to fill a polygon in the same raster, creating more detailed water bodies.&lt;br /&gt;
&lt;br /&gt;
=== Groundcache Lookup ===&lt;br /&gt;
In WS2.0 it is possible to get material information for a point in the scenery.  This needs implementing for WS3.0, which will require a lookup into the landclass texture. Ideally this information would also be exposed in fgelev (or as a proxy as for WS20 whether it is a solid material or water).&lt;br /&gt;
&lt;br /&gt;
=== Neighbouring Pixel ===&lt;br /&gt;
The higher level fragment shaders can blend the edges of textures.  Currently this is done on the shader side.  This could instead be done at scenery loading when the texture is generated in VPBTechnique.cxx by using some of the unused channels in the texture.  There will be significant performance gains to be had by doing so&lt;br /&gt;
&lt;br /&gt;
=== Terrasync for WS3.0 ===&lt;br /&gt;
Currently we do not have the ability to distribute WS3.0 with Terrasync.  We need both a distribution mechanism and probably some minor changes to Terrasync/FG to support this.&lt;br /&gt;
&lt;br /&gt;
The base unit for distrbution will be a 1x1 degree tile, tarballed and compressed - e.g. .tgz.  This is already used for other data.&lt;br /&gt;
&lt;br /&gt;
Speak to merspieler about this, as she has offered to assist with hosting.&lt;br /&gt;
&lt;br /&gt;
== GIS ==&lt;br /&gt;
&lt;br /&gt;
=== More Accurate Coastlines ===&lt;br /&gt;
We currently have a good solution for coastlines to remove the blockiness of the raster coastlines by using OSM line data and a separate high resolution raster.&lt;br /&gt;
&lt;br /&gt;
However if the main landclass raster isn't well aligned with this data it can cause graphics artifacts.&lt;br /&gt;
&lt;br /&gt;
I (Stuart) solve this for the Martinique scenery on the final raster by:&lt;br /&gt;
&lt;br /&gt;
- Deleting all the water so that it was NODATA&lt;br /&gt;
&lt;br /&gt;
- Filling the NODATA with surround values&lt;br /&gt;
&lt;br /&gt;
- Using the OSM coastline as a mask on the raster to delete the data that should be water&lt;br /&gt;
&lt;br /&gt;
- filling the NODATA with water.&lt;br /&gt;
&lt;br /&gt;
This works OK, but getting the OSM data as a multipolygon was a manual process.  Having a script to do this would be good.  Being able to do this all in vector data ahead of rasterization would be even better&lt;br /&gt;
&lt;br /&gt;
=== Scripted Toolchain ===&lt;br /&gt;
Developing standard scripted toolchain to convert from NLCD and/or CORINE to high quality 10m or 5m raster with the correct landclasses.&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
fgmeta/ws30 contains a number of python scripts for generating scenery that could be improved&lt;br /&gt;
&lt;br /&gt;
=== Script Efficiency - line features ===&lt;br /&gt;
At present the script to generate line features (genroads.py) simply dumps all the OSM data directly to text file and we generate line features using every point.  This has a theoretical resolution of 1cm, which is probably higher than we need.  &lt;br /&gt;
&lt;br /&gt;
We could save storage and processing by :&lt;br /&gt;
&lt;br /&gt;
* Rounding the lat/lon pairs to ~10cm resolution.  This would save about ~10% disk space for the roads uncompressed.&lt;br /&gt;
* Skipping nodes in segments that are too close together.&lt;br /&gt;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
&lt;br /&gt;
=== WS3.0 Materials ===&lt;br /&gt;
Currently WS3.0 uses the WS2.0 textures.  Many of these have line features like roads baked into them.  As WS3.0 include OSM roads down to ~ 2m width, the roads on the textures are now redundant.  A new set of textures without roads would look a lot better (that is for textures in urban areas and certain agriculture textures).&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== Quality Settings ===&lt;br /&gt;
[[file:Canvas_TabWidget_example.png|thumb]]&lt;br /&gt;
Currently WS3.0 has a lot of configuration properties.  These should be consolidated into a dialog that's easier to use.&lt;br /&gt;
Stuart agreed that the Canvas UI could be a good option to use for this new UI dialog. &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37785426/&amp;lt;/ref&amp;gt;&lt;br /&gt;
We also have people volunteering to help with a Canvas based UI dialog. &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37785343/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This new UI dialog could probably be based on the new [[Canvas_news#Tab_Widget|Canvas tab widget]] to neatly organize related settings into pages.&lt;br /&gt;
&lt;br /&gt;
We could even use the [[CompositeViewer support]] and [[Compositor]] integration to provide actual previews for different settings in-sim, as suggested and discussed previously on the devel-list.&lt;br /&gt;
&lt;br /&gt;
[[File:Cvcanvas-777.jpeg|thumb]]&lt;br /&gt;
&lt;br /&gt;
There already is an [[Hackathon_Proposal:_CompositeViewer_and_Canvas|experimental canvas element]] that uses a compositor instance to render a view to a Canvas, work that Jules and Fernando came up with originally. Fernando in particular mentioned that these Compositor instances could use their own effects/shaders, which would make them ideally-suited for previewing different sorts of rendering settings in-sim.&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=135153</id>
		<title>World Scenery 3.0 roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=135153"/>
		<updated>2022-05-29T22:59:23Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scenery Core Development}}&lt;br /&gt;
{{See also|TerraGear roadmap}}&lt;br /&gt;
{{Project&lt;br /&gt;
|name = World Scenery 3.0&lt;br /&gt;
|description = New world-wide scenery&lt;br /&gt;
|start-date = 2019-Sep&lt;br /&gt;
|current-status = Active &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37074319/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|developers = Scott Giese&amp;lt;br/&amp;gt;Richard Harrison&amp;lt;br/&amp;gt;Stuart Buchanan&lt;br /&gt;
&lt;br /&gt;
|motivation-body = &lt;br /&gt;
{{Main article|Virtual Planet Builder}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Virtual Planet Builder (VPB) is OSG's terrain-database-building tool.&lt;br /&gt;
It loads GIS elevation data for a&lt;br /&gt;
region, combines it with imagery and produces a spatially-balanced&lt;br /&gt;
quadtree tiled database that can be navigated simply by loading the&lt;br /&gt;
top-level file. All of the LOD Ranges are pre-configured and the&lt;br /&gt;
DatabasePager automatically loads and unloads different segments of&lt;br /&gt;
terrain without any supporting userspace code required. VPB can build&lt;br /&gt;
terrain models ranging from a small area to the entire planet. These&lt;br /&gt;
databases can be fluidly navigated at 60fps from outer space down to&lt;br /&gt;
ground level with no interruptions. The terrain models are built of&lt;br /&gt;
regular grid arrays with optional edge-skirts to conceal any cracks&lt;br /&gt;
caused by adjacent LOD differences.&amp;lt;br/&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://alphapixel.com/wp-content/uploads/2015/04/OpenSceneGraph-OSG-Virtual-Planet-Builder-VPB-OSGDEM.pdf&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;OpenScenGraph's Virtual Planet Builder/OSGDEM&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |publisher=&amp;lt;nowiki&amp;gt;AlphaPixel, LLC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|objective-body =&lt;br /&gt;
&lt;br /&gt;
[[File:Edinburgh rendering using WS3.0.jpg|thumb|Initial rendering of Edinburgh scenery using a raster landclass and texture lookup for city, water and grass]]&lt;br /&gt;
[[File:WS3.0 terrain with WS2.0 EGPH.jpg|thumb|Screenshot showing a WS2.0 airport .btg file rendered with WS3.0 terrain]]&lt;br /&gt;
[[File:EGPH roads.jpg|thumb|WS3.0 Edinburgh airport with runtime-generated roads from OSM data]]&lt;br /&gt;
[[File:WS30 - West Lothian.png|thumb|WS30 view of West Lothian, with 25m resolution landclass data, vegetation, osm2city buildings, and OSM-based roads and rivers.]]&lt;br /&gt;
[[File:WS30 street lighting.jpg|thumb|Edinburgh at night, with osm2city buildings, OSM-base roads, including whether they are lit or not.  Note the road in the foreground which is lit near the buildings and unlit in the countryside.]]&lt;br /&gt;
[[File:Fgfs-20220528191253.png|thumb|WS30 using OSM data to define the coastline.  This shows a view near Oban in Scotland looking South.  The coastline is applied as a high resolution overlay texture that is generated at runtime from OSM data and mixed with the landclass texture by the ws30 shader.]]&lt;br /&gt;
&lt;br /&gt;
Produce high-quality scenery using the best-known practices.&lt;br /&gt;
&lt;br /&gt;
TerraGear becomes obsolete in favor of VPB.&lt;br /&gt;
&lt;br /&gt;
* '''OpenGL 3.3 Core Profile''': WS3.0 will require us to eliminate the usage of the fixed-function pipeline.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''Shader-based Rendering''': All of the terrain renderings will be done via GLSL shaders.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''OSG Core''': OpenSceneGraph will require targeting of the OpenGL Core Profile.&lt;br /&gt;
&lt;br /&gt;
WS3.0 will continue to cooperate with osm2city.&lt;br /&gt;
&lt;br /&gt;
Easy upgrade: Initially the plan was that airport layouts will be generated in real-time. Apt.dat will continue to be the primary source for airport layouts and that airports will be draped over the terrain. This would eliminate the need to cut airport layouts into the underlying terrain.&lt;br /&gt;
Due to difficulties with this approach, it has been decided, that we keep using the WS2.0 airports for now. Work has been done to automatically update the airports from the X-Plane gateway which can be done automatically now. Only thing which remains for this to go into production use is to pack everything into a container.&lt;br /&gt;
The apt.dat file gets update with this as well. Here it remains for the navdb parser to understand the 8.33kHz frequencies.&lt;br /&gt;
&lt;br /&gt;
WS3.0 also offers the opportunity for well performing ortho scenery with acceptable memory impact. merspieler has acquired GPL compatible sources so we could theoretically have a demo area with ortho scenery in the first WS3.0 release. It adds significant storage requirement tho (~14.7GB per 1x1 degrees tile). There hasn't been a decision made yet, on how to proceed on this.&lt;br /&gt;
&lt;br /&gt;
|background-body =&lt;br /&gt;
=== Data Sources ===&lt;br /&gt;
&lt;br /&gt;
:;SRTMGL3.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL3.003/&lt;br /&gt;
:;SRTMGL1.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/&lt;br /&gt;
:;Global Land Cover:: https://lcviewer.vito.be/&lt;br /&gt;
:;Natural Earth:: https://www.naturalearthdata.com/&lt;br /&gt;
:;OpenStreetMap :: https://www.openstreetmap.org (See https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/ws30/ genroads.py, gencoastline.py, genwater.py for details)&lt;br /&gt;
&lt;br /&gt;
|status-body = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As of 11/2021, WS30 is available on &amp;quot;next&amp;quot;, and on the [https://download.flightgear.org/builds/nightly/ nightly builds]. &lt;br /&gt;
&lt;br /&gt;
Scenery is available for Scotland, but must be downloaded directly (https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=sharing). You need to add the downloaded and then extracted folder as additional scenery folder.&lt;br /&gt;
&lt;br /&gt;
WS30 can be enabled from the Rendering Options menu, with fine-tuning from the LoD menu. Alternatively you can set --prop:/scenery/use-vpb=true to enable it as command line option.&lt;br /&gt;
&lt;br /&gt;
Airports are currently in the old WS2 format - including airport keep terrain. The WS30 terrain goes under the airport so it is not visible.&lt;br /&gt;
&lt;br /&gt;
Roads are implemented. Lights on roads are implemented - to see, set time to night. WiP rendering.&lt;br /&gt;
&lt;br /&gt;
Vegetation is available - initial version.&lt;br /&gt;
&lt;br /&gt;
While large water bodies are defined in the landclass texture, rivers are draped on top from OSM data.  Coastlines are taken from OSM by are applied as a higher resolution overlay texture to reduce the tiling effect.&lt;br /&gt;
&lt;br /&gt;
Scenery generation workflow is at an advanced stage. It's fast to build. Scott was able to do UK in a matter of hours [https://sourceforge.net/p/flightgear/mailman/message/37259618/]. People interested in generating scenery for the World Build, or getting their landclass or elevation work on [[Suggested custom scenery|custom scenery]] in, should start learning the tools and process. The exact VPB settings and scenery file format may change several times before the final build. But the process of getting work in to shouldn't change much for scenery creators. See the [[Virtual Planet Builder]] page for instructions.&lt;br /&gt;
&lt;br /&gt;
====Scenery generation tool availability ====&lt;br /&gt;
* [[VPB]]: '''Linux:''' build from source, docker image available. '''Windows and Mac:''' build from source, no binaries yet, needs NVTT binaries - see &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list to assist.&lt;br /&gt;
* [[QGIS]]: Not needed when experimenting with terrain generation using lower res landclass rasters provided by CORINE. '''Linux:''' build from source, binary packages[https://qgis.org/en/site/forusers/download.html], official docker release available: https://hub.docker.com/r/qgis/qgis  but Fahim was not sure easy the GUI is to use [https://sourceforge.net/p/flightgear/mailman/message/37381800/]. '''Windows, Mac:''' official QGIS binary releases [https://qgis.org/en/site/forusers/download.html].&lt;br /&gt;
&lt;br /&gt;
===LoD settings===&lt;br /&gt;
Go to ''View &amp;gt; Adjust LoD &amp;gt; World Scenery 3.0 section'' (Nov 2021).&lt;br /&gt;
* 7 LoD levels - most detailed is 6, shown at closest range. Least detailed is 0, shown at long range. LoD 0 tiles with Scotland scenery are 1x1 degree, or approx 111 km x 111 km at the equator.&lt;br /&gt;
* Scenery is divided into chunks called tiles. As view distance increases, tiles with a LoD level are replaced by tiles with the next lowest LoD level. e.g. Four LoD 6 tiles are replaced by one LoD 5 tile. Four LoD 5 tiles are replaced by one LoD 4 tile. As view gets closer the reverse happens. One LoD 2 tile is replaced by four LoD 3 tiles.&lt;br /&gt;
* Detail range - The LoD level below which each type of feature is not visible. e.g. setting vegetation to LoD 3 means vegetation is shown for LoD 3/4/5/6 and not shown for tiles with LoD 0/1/2.&lt;br /&gt;
* Minimum line feature width (line features are things like roads or rivers) - for every LoD level, the width in meters below which a line feature is not shown. e.g. setting LoD level four to 30 meters means rivers or roads that are narrower than 30 meters are not shown for level four tiles. The minimum widths should stay the same or decrease when going down a LoD level.&lt;br /&gt;
* Minimum area feature width (area features are things like lakes) - similar to minimum line feature width, but for area in square meters. Setting LoD 3 to 100 square meters means lakes of size 99 square meters or 40 square meters will not show for LoD level 3 tiles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof of Concept  {{progressbar|100}}&lt;br /&gt;
* VPB {{done}}&lt;br /&gt;
* osgOcean {{done}}&lt;br /&gt;
* osgVegetation {{done}}&lt;br /&gt;
* Generate terrain for Hawaii {{done}}&lt;br /&gt;
* Hack Hawaii VPB into FG {{done}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OSG {{progressbar|70}}&lt;br /&gt;
* Core Profile: {{done}}&lt;br /&gt;
* GLVND Support: {{done}}&lt;br /&gt;
* glTF Plugin Support: {{ongoing}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity&lt;br /&gt;
| align  = right&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | N00-N60 lat&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Africa Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Ocean-N00-N90.png | Ocean Fill&lt;br /&gt;
}}&lt;br /&gt;
=== Standard-Fidelity - 90m SRTMGL3 - 100m Global Land Cover ===&lt;br /&gt;
&lt;br /&gt;
=== Northern Hemisphere: 152.3 GB ===&lt;br /&gt;
=== Southern Hemisphere: 57.4 GB ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|70}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL3.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Ocean {{done}}&lt;br /&gt;
** Northern: {{progressbar|100}}&lt;br /&gt;
** Southern: {{progressbar|100}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High-Fidelity - 30m SRTMGL1 - Best Available Land Cover ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|30}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL1.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|news-body=&lt;br /&gt;
The northern hemisphere, up to N60, has been completed. The southern hemisphere, above S56, has been completed.&lt;br /&gt;
SRTM data was not captured above N60 and below S56, so alternative data sources need to be procured.&lt;br /&gt;
&lt;br /&gt;
Stuart has made good progress with the procedure needed to convert apt.dat into an airport object. Our goal is to utilize this to project/drape the airport layout over the terrain. This will enable localized edits of airports without requiring us to generate another world scenery build. &lt;br /&gt;
&lt;br /&gt;
Oceans are complete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity Gallery&lt;br /&gt;
| align  = center&lt;br /&gt;
| Terrain-Mesh.jpg | WS3 Terrain Mesh&lt;br /&gt;
| S10-N60-LC100m-SRTMGL3.png | Asia/India&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | Europe&lt;br /&gt;
| N00-N40-LC100m-SRTMGL3.png | USA&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Africa-Natural2.png | Natural Earth&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For the experimental runtime generated mesh/landclassing engine - which may become WS3.0 - see [[Experimental terrain engine]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development projects‎]]&lt;br /&gt;
[[Category:Scenery]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=135152</id>
		<title>World Scenery 3.0 roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=World_Scenery_3.0_roadmap&amp;diff=135152"/>
		<updated>2022-05-29T22:46:32Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scenery Core Development}}&lt;br /&gt;
{{See also|TerraGear roadmap}}&lt;br /&gt;
{{Project&lt;br /&gt;
|name = World Scenery 3.0&lt;br /&gt;
|description = New world-wide scenery&lt;br /&gt;
|start-date = 2019-Sep&lt;br /&gt;
|current-status = Active &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37074319/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|developers = Scott Giese&amp;lt;br/&amp;gt;Richard Harrison&amp;lt;br/&amp;gt;Stuart Buchanan&lt;br /&gt;
&lt;br /&gt;
|motivation-body = &lt;br /&gt;
{{Main article|Virtual Planet Builder}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Virtual Planet Builder (VPB) is OSG's terrain-database-building tool.&lt;br /&gt;
It loads GIS elevation data for a&lt;br /&gt;
region, combines it with imagery and produces a spatially-balanced&lt;br /&gt;
quadtree tiled database that can be navigated simply by loading the&lt;br /&gt;
top-level file. All of the LOD Ranges are pre-configured and the&lt;br /&gt;
DatabasePager automatically loads and unloads different segments of&lt;br /&gt;
terrain without any supporting userspace code required. VPB can build&lt;br /&gt;
terrain models ranging from a small area to the entire planet. These&lt;br /&gt;
databases can be fluidly navigated at 60fps from outer space down to&lt;br /&gt;
ground level with no interruptions. The terrain models are built of&lt;br /&gt;
regular grid arrays with optional edge-skirts to conceal any cracks&lt;br /&gt;
caused by adjacent LOD differences.&amp;lt;br/&amp;gt;&lt;br /&gt;
  |{{cite web |url=http://alphapixel.com/wp-content/uploads/2015/04/OpenSceneGraph-OSG-Virtual-Planet-Builder-VPB-OSGDEM.pdf&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;OpenScenGraph's Virtual Planet Builder/OSGDEM&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |publisher=&amp;lt;nowiki&amp;gt;AlphaPixel, LLC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|objective-body =&lt;br /&gt;
&lt;br /&gt;
[[File:Edinburgh rendering using WS3.0.jpg|thumb|Initial rendering of Edinburgh scenery using a raster landclass and texture lookup for city, water and grass]]&lt;br /&gt;
[[File:WS3.0 terrain with WS2.0 EGPH.jpg|thumb|Screenshot showing a WS2.0 airport .btg file rendered with WS3.0 terrain]]&lt;br /&gt;
[[File:EGPH roads.jpg|thumb|WS3.0 Edinburgh airport with runtime-generated roads from OSM data]]&lt;br /&gt;
[[File:WS30 - West Lothian.png|thumb|WS30 view of West Lothian, with 25m resolution landclass data, vegetation, osm2city buildings, and OSM-based roads and rivers.]]&lt;br /&gt;
[[File:WS30 street lighting.jpg|thumb|Edinburgh at night, with osm2city buildings, OSM-base roads, including whether they are lit or not.  Note the road in the foreground which is lit near the buildings and unlit in the countryside.]]&lt;br /&gt;
[[File:Fgfs-20220528191253.png|thumb|WS30 using OSM data to define the coastline.  This shows a view near Oban in Scotland looking South.  The coastline is applied as a high resolution overlay texture that is generated at runtime from OSM data and mixed with the landclass texture by the ws30 shader.]]&lt;br /&gt;
&lt;br /&gt;
Produce high-quality scenery using the best-known practices.&lt;br /&gt;
&lt;br /&gt;
TerraGear becomes obsolete in favor of VPB.&lt;br /&gt;
&lt;br /&gt;
* '''OpenGL 3.3 Core Profile''': WS3.0 will require us to eliminate the usage of the fixed-function pipeline.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''Shader-based Rendering''': All of the terrain renderings will be done via GLSL shaders.&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''OSG Core''': OpenSceneGraph will require targeting of the OpenGL Core Profile.&lt;br /&gt;
&lt;br /&gt;
WS3.0 will continue to cooperate with osm2city.&lt;br /&gt;
&lt;br /&gt;
Easy upgrade: Initially the plan was that airport layouts will be generated in real-time. Apt.dat will continue to be the primary source for airport layouts and that airports will be draped over the terrain. This would eliminate the need to cut airport layouts into the underlying terrain.&lt;br /&gt;
Due to difficulties with this approach, it has been decided, that we keep using the WS2.0 airports for now. Work has been done to automatically update the airports from the X-Plane gateway which can be done automatically now. Only thing which remains for this to go into production use is to pack everything into a container.&lt;br /&gt;
The apt.dat file gets update with this as well. Here it remains for the navdb parser to understand the 8.33kHz frequencies.&lt;br /&gt;
&lt;br /&gt;
|background-body =&lt;br /&gt;
=== Data Sources ===&lt;br /&gt;
&lt;br /&gt;
:;SRTMGL3.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL3.003/&lt;br /&gt;
:;SRTMGL1.003:: https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/&lt;br /&gt;
:;Global Land Cover:: https://lcviewer.vito.be/&lt;br /&gt;
:;Natural Earth:: https://www.naturalearthdata.com/&lt;br /&gt;
:;OpenStreetMap :: https://www.openstreetmap.org (See https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/ws30/ genroads.py, gencoastline.py, genwater.py for details)&lt;br /&gt;
&lt;br /&gt;
|status-body = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As of 11/2021, WS30 is available on &amp;quot;next&amp;quot;, and on the [https://download.flightgear.org/builds/nightly/ nightly builds]. &lt;br /&gt;
&lt;br /&gt;
Scenery is available for Scotland, but must be downloaded directly (https://drive.google.com/file/d/1tGXSI8RwQxFL0_AFhXaFRVA6go-u7YBW/view?usp=sharing). You need to add the downloaded and then extracted folder as additional scenery folder.&lt;br /&gt;
&lt;br /&gt;
WS30 can be enabled from the Rendering Options menu, with fine-tuning from the LoD menu. Alternatively you can set --prop:/scenery/use-vpb=true to enable it as command line option.&lt;br /&gt;
&lt;br /&gt;
Airports are currently in the old WS2 format - including airport keep terrain. The WS30 terrain goes under the airport so it is not visible.&lt;br /&gt;
&lt;br /&gt;
Roads are implemented. Lights on roads are implemented - to see, set time to night. WiP rendering.&lt;br /&gt;
&lt;br /&gt;
Vegetation is available - initial version.&lt;br /&gt;
&lt;br /&gt;
While large water bodies are defined in the landclass texture, rivers are draped on top from OSM data.  Coastlines are taken from OSM by are applied as a higher resolution overlay texture to reduce the tiling effect.&lt;br /&gt;
&lt;br /&gt;
Scenery generation workflow is at an advanced stage. It's fast to build. Scott was able to do UK in a matter of hours [https://sourceforge.net/p/flightgear/mailman/message/37259618/]. People interested in generating scenery for the World Build, or getting their landclass or elevation work on [[Suggested custom scenery|custom scenery]] in, should start learning the tools and process. The exact VPB settings and scenery file format may change several times before the final build. But the process of getting work in to shouldn't change much for scenery creators. See the [[Virtual Planet Builder]] page for instructions.&lt;br /&gt;
&lt;br /&gt;
====Scenery generation tool availability ====&lt;br /&gt;
* [[VPB]]: '''Linux:''' build from source, docker image available. '''Windows and Mac:''' build from source, no binaries yet, needs NVTT binaries - see &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list to assist.&lt;br /&gt;
* [[QGIS]]: Not needed when experimenting with terrain generation using lower res landclass rasters provided by CORINE. '''Linux:''' build from source, binary packages[https://qgis.org/en/site/forusers/download.html], official docker release available: https://hub.docker.com/r/qgis/qgis  but Fahim was not sure easy the GUI is to use [https://sourceforge.net/p/flightgear/mailman/message/37381800/]. '''Windows, Mac:''' official QGIS binary releases [https://qgis.org/en/site/forusers/download.html].&lt;br /&gt;
&lt;br /&gt;
===LoD settings===&lt;br /&gt;
Go to ''View &amp;gt; Adjust LoD &amp;gt; World Scenery 3.0 section'' (Nov 2021).&lt;br /&gt;
* 7 LoD levels - most detailed is 6, shown at closest range. Least detailed is 0, shown at long range. LoD 0 tiles with Scotland scenery are 1x1 degree, or approx 111 km x 111 km at the equator.&lt;br /&gt;
* Scenery is divided into chunks called tiles. As view distance increases, tiles with a LoD level are replaced by tiles with the next lowest LoD level. e.g. Four LoD 6 tiles are replaced by one LoD 5 tile. Four LoD 5 tiles are replaced by one LoD 4 tile. As view gets closer the reverse happens. One LoD 2 tile is replaced by four LoD 3 tiles.&lt;br /&gt;
* Detail range - The LoD level below which each type of feature is not visible. e.g. setting vegetation to LoD 3 means vegetation is shown for LoD 3/4/5/6 and not shown for tiles with LoD 0/1/2.&lt;br /&gt;
* Minimum line feature width (line features are things like roads or rivers) - for every LoD level, the width in meters below which a line feature is not shown. e.g. setting LoD level four to 30 meters means rivers or roads that are narrower than 30 meters are not shown for level four tiles. The minimum widths should stay the same or decrease when going down a LoD level.&lt;br /&gt;
* Minimum area feature width (area features are things like lakes) - similar to minimum line feature width, but for area in square meters. Setting LoD 3 to 100 square meters means lakes of size 99 square meters or 40 square meters will not show for LoD level 3 tiles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof of Concept  {{progressbar|100}}&lt;br /&gt;
* VPB {{done}}&lt;br /&gt;
* osgOcean {{done}}&lt;br /&gt;
* osgVegetation {{done}}&lt;br /&gt;
* Generate terrain for Hawaii {{done}}&lt;br /&gt;
* Hack Hawaii VPB into FG {{done}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OSG {{progressbar|70}}&lt;br /&gt;
* Core Profile: {{done}}&lt;br /&gt;
* GLVND Support: {{done}}&lt;br /&gt;
* glTF Plugin Support: {{ongoing}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity&lt;br /&gt;
| align  = right&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | N00-N60 lat&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Africa Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Ocean-N00-N90.png | Ocean Fill&lt;br /&gt;
}}&lt;br /&gt;
=== Standard-Fidelity - 90m SRTMGL3 - 100m Global Land Cover ===&lt;br /&gt;
&lt;br /&gt;
=== Northern Hemisphere: 152.3 GB ===&lt;br /&gt;
=== Southern Hemisphere: 57.4 GB ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|70}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL3.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|70}}&lt;br /&gt;
* Ocean {{done}}&lt;br /&gt;
** Northern: {{progressbar|100}}&lt;br /&gt;
** Southern: {{progressbar|100}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High-Fidelity - 30m SRTMGL1 - Best Available Land Cover ===&lt;br /&gt;
&lt;br /&gt;
Virtual Planet Builder {{progressbar|30}}&lt;br /&gt;
* Procure Demographic Data: SRTMGL1.003 {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
* Process through VPB {{paused}}&lt;br /&gt;
** Northern: {{progressbar|70}}&lt;br /&gt;
** Southern: {{progressbar|0}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|news-body=&lt;br /&gt;
The northern hemisphere, up to N60, has been completed. The southern hemisphere, above S56, has been completed.&lt;br /&gt;
SRTM data was not captured above N60 and below S56, so alternative data sources need to be procured.&lt;br /&gt;
&lt;br /&gt;
Stuart has made good progress with the procedure needed to convert apt.dat into an airport object. Our goal is to utilize this to project/drape the airport layout over the terrain. This will enable localized edits of airports without requiring us to generate another world scenery build. &lt;br /&gt;
&lt;br /&gt;
Oceans are complete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Standard-Fidelity Gallery&lt;br /&gt;
| align  = center&lt;br /&gt;
| Terrain-Mesh.jpg | WS3 Terrain Mesh&lt;br /&gt;
| S10-N60-LC100m-SRTMGL3.png | Asia/India&lt;br /&gt;
| N00-N10-LC100m-SRTMGL3.png | Europe&lt;br /&gt;
| N00-N40-LC100m-SRTMGL3.png | USA&lt;br /&gt;
| Africa-LC100m-SRTMGL3.png | Land Coverage&lt;br /&gt;
| Africa-Natural.png | Natural Earth&lt;br /&gt;
| Africa-Natural2.png | Natural Earth&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For the experimental runtime generated mesh/landclassing engine - which may become WS3.0 - see [[Experimental terrain engine]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development projects‎]]&lt;br /&gt;
[[Category:Scenery]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_February_2022&amp;diff=134738</id>
		<title>FlightGear Newsletter February 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_February_2022&amp;diff=134738"/>
		<updated>2022-02-28T09:25:41Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Scenery corner */ Osm2city next worldbuild&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
NOTES TO EDITORS&lt;br /&gt;
&lt;br /&gt;
* Headings&lt;br /&gt;
  * DO NOT DELETE HEADINGS prior to final cleanup&lt;br /&gt;
  * Current headings and their order is merely a suggestion based on what have been used earlier&lt;br /&gt;
  * Changes made to headings or structure should also be copied the Newsletter template http://wiki.flightgear.org/User:Skybike/Template:This_months_newsletter/Newsletter_example&lt;br /&gt;
&lt;br /&gt;
* Final cleanup before write protecting&lt;br /&gt;
  * Remove unused headings&lt;br /&gt;
  * Remove {{Appendix}} if not used.&lt;br /&gt;
  * Update &amp;quot;Category: Changes after&amp;quot; to the FG version current at the 1st of this month&lt;br /&gt;
  * Finally remove this comment&lt;br /&gt;
  * Update [[Next Newsletter]] and [[FlightGear Newsletter]]&lt;br /&gt;
&lt;br /&gt;
* Discussion, issues and suggestions&lt;br /&gt;
  * Regarding this newsletter issue, please use the discussion page&lt;br /&gt;
  * Regarding the newsletter in general, primarily use the FlightGear Newsletter discussion page (Talk:FlightGear Newsletter)&lt;br /&gt;
  * Regarding this Newsletter template, please use FIXME&lt;br /&gt;
&lt;br /&gt;
+++   {{Newsletter-header|{{#time: F | 2022-02}}}}   +++&lt;br /&gt;
--&amp;gt;{{User:Skybike/Template:Newsletter-header-translate|2022-02}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
''We would like to emphasize that the monthly newsletter cannot live without the contributions of FlightGear users and developers. Everyone with a wiki account (free to register) is welcome to contribute to the newsletter.  If you know about any FlightGear related news or projects such as for example updated scenery or aircraft, please do feel invited to add such news to the newsletter.''&lt;br /&gt;
&lt;br /&gt;
''The new Visual Editor makes editing the wiki as simple as using a Word-processor, and even easier than using the forum as you don't even need to know the syntax for a url. Just hit the 'edit' link and start.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
&lt;br /&gt;
=== Core Profile support / replacing ShivaVG ===&lt;br /&gt;
[[File:ShivaVG.jpg|thumb|Here is a comparison between ShivaVG and ShaderVG.Look at the Canvas Dialog top left and particularly the vertical airspeed bars &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37610774/&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
[[File:ShaderVG.jpg|thumb|Here is a comparison.Look at the Canvas Dialog top left and particularly the vertical airspeed bars&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37610774/&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
{{Main article|Shiva Alternatives}}&lt;br /&gt;
We need to remove [[PUI]] and change the [[Canvas]] not to use ShivaVG ([[Canvas Path]] back end), to be ES2 compatible or Core-profile compatible.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36194973/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To support [[Canvas]] on [[OpenGL]] [[FlightGear and OpenGL ES|Core profile]], the plan is to migrate from [[Shiva]] to ‘something else’ which implements the required drawing operations. Unfortunately two of the probable solutions (Skia from Chrome and Cairo from Gtk) are both enormous and a pain to deploy on macOS and Windows. &lt;br /&gt;
&lt;br /&gt;
{{See also|Unifying the 2D rendering backend via canvas}}&lt;br /&gt;
As part of the Core profile migration, we need to replace ShivaVG (which is the functional guts of Path.cxx) with a shader based implementation, ideally NanoVG, although Scott has indicated this might not be as easy as originally hoped. &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37605458/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Early experiments (patch [https://sourceforge.net/p/flightgear/mailman/message/37610741/]) in 02/2022 with ShaderVG were promising and suggest, that it ‘kind of sort of’ works, that’s already less work than integrating NanoVG.&amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/37610750/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the time being, it's not a one on one drop in replacement  but it works quite nicely.&lt;br /&gt;
&lt;br /&gt;
To learn more, see [[Shiva Alternatives]].&lt;br /&gt;
&lt;br /&gt;
== FlightGear 2020.3.12 released ==&lt;br /&gt;
Bug-fix release 2020.3.12 is now available, containing small bug-fixes in many areas. You can find the Changelog [[Changelog 2020.3#2020.3.12|here]]&lt;br /&gt;
&lt;br /&gt;
Included in this release is a back-port of the generic combined ALS procedural lights and Compositor lights update which allows aircraft developers to easily add all the light effects for a single light for all renderers (classic pre-ALS sprite lights, ALS procedural lights and Compositor scenery illuminating lights) with a single call. More information can be found in the [[Howto:Add aircraft lights#Combined ALS procedural lights and Compositor lights|wiki]]. By including this in version 2020.3.12 this code is forward and backward compatible between FlightGear releases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Disclaimer|id=final-fixed-function-release}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Related Software tools and projects == --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Those not being part of FlightGear itself, like for example OpenRadar, TerreMaster or flightgear-atc.alwaysdata.net. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
&amp;lt;!-- News about new and upgraded aircraft and related stuff.  The official forum and other ones usually are a good source for this. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- === New aircraft === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Updated aircraft === --&amp;gt;&lt;br /&gt;
The Pilatus PC-9M and it's variants have undergone a big overhaul adding the brand new PC-7 MKX and pulling in the PC-21 in the process. Besides a lot of small 3d model changes, the structure is optimized by sharing more 3d objects and animations are improved. There are also some small 3d cockpit improvements implemented.&lt;br /&gt;
{|&lt;br /&gt;
![[File:Pc7mkx cockpit.jpg|thumb]]&lt;br /&gt;
![[File:Pc7mkx.jpg|thumb]]&lt;br /&gt;
|}&amp;lt;!-- === Liveries === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- === Instruments === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- === Aircraft reviews === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
&amp;lt;!-- Scenery development news --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Scenery Models === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Airports === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Land cover === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Osm2city ===&lt;br /&gt;
The next osm2city worldbuild went live on Sunday the 27th. This build brings trees, updated osm source data and resolved conflicts with in the meantime added scenery objects.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === New OSM2City areas === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Interview with a contributor == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Suggested flights == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Help wanted ==&lt;br /&gt;
{{Help wanted}}&lt;br /&gt;
&lt;br /&gt;
== AI == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === AI traffic === --&amp;gt;&lt;br /&gt;
The AI team makes FlightGear more realistic, colorful and lively every month. You can support the development of ''Interactive Traffic'' and contribute at the FlightGear {{forum link|title=AI|f=23}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === AI scenarios === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community news ==&lt;br /&gt;
&amp;lt;!-- === FlightGear on YouTube === --&amp;gt;&lt;br /&gt;
&amp;lt;!-- embed video as {{#ev:youtube|VCc6PwRI1LA}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Forum news === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Wiki updates === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Article of the month === --&amp;gt;&lt;br /&gt;
=== FlightGear on Facebook ===&lt;br /&gt;
Since early December 2010, FlightGear has an [https://www.facebook.com/FlightGear official Facebook page].  If you have a Facebook account please feel free to join the page.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on Instagram ===&lt;br /&gt;
In January 2018 the [https://www.instagram.com/flightgear_sim/ @flightgear_sim Instagram account] was brought back to life. If you've got nice screenshots to be featured, feel free to {{forum link|text=contact the maintainer|t=33636}}.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear on FlightSim.com ===&lt;br /&gt;
FlightGear has also a [https://www.flightsim.com/vbfs/forumdisplay.php?102-FlightGear sub-forum] on flightsim.com - just like the commercial flight sims. It is an opportunity to showcase what FG can do, get people curious and answer any questions they may have with regard to the software or the project.&lt;br /&gt;
&lt;br /&gt;
== Multiplayer events ==&lt;br /&gt;
&amp;lt;!-- === Upcoming events === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Finished events === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == FlightGear events == --&amp;gt;&lt;br /&gt;
&amp;lt;!-- For example presence at FSWeekend --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Hardware reviews == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
=== Translators needed ===&lt;br /&gt;
{|&lt;br /&gt;
| [[File:en.gif]]&lt;br /&gt;
| The FlightGear Wiki still needs help for translating it into various languages. If you are interested in making the FlightGear Wiki multilingual, you can start by looking at [[Help:Translate]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:fr.gif]]&lt;br /&gt;
| Le wiki de FlightGear a toujours besoin d'aide pour être traduit en différentes langues. Si vous êtes intéressé par le rendre multilingue, commencez par lire [[:fr:Help:Traduire|Help:Traduire]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:de.gif]]&lt;br /&gt;
| Das FlightGear Wiki benötigt immer noch Hilfe bei der Übersetzung in verschiedene Sprachen. Wenn Du Interesse daran hast, das FlightGear Wiki mehrsprachig zu machen, dann fang mit dem [[:de:Help:Übersetzen|Help:Übersetzen]] an.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:nl.gif]]&lt;br /&gt;
| De FlightGear Wiki kan nog steed hulp gebruiken bij het vertalen van artikelen. Als je interesse hebt om de wiki meertalig te maken, raden we je aan om een kijkje te nemen bij [[:nl:Help:Vertalen|Help:Vertalen]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:es.gif]]&lt;br /&gt;
| La wiki de FlightGear todavía necesita ayuda para traducirla a varios lenguajes. Si estás interesado en hacer la FlightGear wiki multilingüe, entonces comienza en [[:es:Help:Traducir|Help:Traducir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:cat.gif]]&lt;br /&gt;
| La wiki de FlightGear encara necessita ajuda per traduir-la a diverses llengües. Si esteu interessat en fer la wiki de FlightGear multilingüe, llavors comenceu a [[:ca:Help:Traduir|Help:Traduir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:pt.gif]]&lt;br /&gt;
| A wiki de FlightGear ainda necessita de ajuda para traduzi-la em vários idiomas. Se estás interessado em tornar a wiki de FlightGear multi-lingual, por favor começa em [[:pt:Help:Traduzir|Help:Traduzir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:zh.gif]]&lt;br /&gt;
| FlightGear 百科仍然需要志愿者将其翻译为各种语言。如果你有兴趣让FlightGear百科支持更多语言, 你可以查看 [[Help:Translate]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FlightGear logos ===&lt;br /&gt;
If you want some graphic elements for your FlightGear-related site (such as a hangar or YouTube channel), please feel free to visit [[FlightGear logos]] for a repository of logos. And if you have some art skills, please don't hesitate to contribute with your own design creations.&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
The FlightGear project always needs screenshots, which show features that were added since the last release. These should be of good quality, especially in content and technical image properties. It is therefore recommended to use the best viable filter settings ([[anti-aliasing]], texture sharpening, etc.). More info at [[Howto:Make nice screenshots]].&lt;br /&gt;
&lt;br /&gt;
==== Screenshot of the Month ====&lt;br /&gt;
&amp;lt;!--FlightGear's Screenshot of the Month {{#time: F | 2022-02}} 2022 is FIXME by {{usr|FIXME}}&lt;br /&gt;
ADD IMAGE --&amp;gt;&lt;br /&gt;
If you want to participate in the screenshot contest&amp;lt;!-- of {{#time: F | 2022-02 + 1month}}--&amp;gt;, you can submit your candidate to the {{forum link|title=this|f=88|t=}}. Be sure to see the first post for participation rules. For purposes of convenience and organization, at the end of the month or after 20 entries have been submitted, a new forum topic will be started containing all shots in an easy-to-view layout. The voting will then take place there.&amp;lt;!--Once the voting has finished, the best screenshot will be presented in the Newsletter edition of {{#time: F | 2022-02 + 1month}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Thanks for reading {{PAGENAME}}!''&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&amp;lt;!--&amp;lt;small&amp;gt;&amp;lt;div style=&amp;quot;text-align: center; size: 15px&amp;quot;&amp;gt;About the [[FlightGear Newsletter]]  -  Information for [[Template:Welcome to the wiki|new Wiki users]]  -  Manual to the FlightGear Wiki [[Help:Your_first_article#Formatting_the_wiki_text|syntax]]  -  Edit the [[User:Skybike/Template:This_months_newsletter/Newsletter_example|draft]] for coming newsletters&amp;lt;/div&amp;gt;&amp;lt;/small&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Changes after 2020.3]]&amp;lt;!--Has a new version been released this month? Use previous version!--&amp;gt;&lt;br /&gt;
[[Category:FlightGear Newsletter|2022 02]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[de:FlightGear Newsletter {{#time: F Y | 2022-02 | de }}]]--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=De/Piper_PA34-200T_Seneca_II/info&amp;diff=134313</id>
		<title>De/Piper PA34-200T Seneca II/info</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=De/Piper_PA34-200T_Seneca_II/info&amp;diff=134313"/>
		<updated>2022-01-12T14:14:55Z</updated>

		<summary type="html">&lt;p&gt;Nia: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{infobox aircraft | name           = Piper PA34-200T Seneca II | hangar         = fgaddon | aircraft       = SenecaII | image          = Piper SenecaII.jpg | ima...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{infobox aircraft&lt;br /&gt;
| name           = Piper PA34-200T Seneca II&lt;br /&gt;
| hangar         = fgaddon&lt;br /&gt;
| aircraft       = SenecaII&lt;br /&gt;
| image          = Piper SenecaII.jpg&lt;br /&gt;
| image2         = SenecaII cockpit.jpg&lt;br /&gt;
| alt2           = {{LangSwitch&lt;br /&gt;
                     | en = The 3D [[cockpit]]&lt;br /&gt;
                     | fr = Le [[cockpit]] 3D&lt;br /&gt;
                   }}&lt;br /&gt;
| type           = Civil aircraft/Civil utility aircraft&lt;br /&gt;
| propulsion     = Twin-engine aircraft&lt;br /&gt;
| manufacturer   = Piper&lt;br /&gt;
| authors        = Torsten Dreyer&lt;br /&gt;
| fdm            = JSBSim&lt;br /&gt;
| fgname         = SenecaII&lt;br /&gt;
| status-fdm     = 5&lt;br /&gt;
| status-systems = 5&lt;br /&gt;
| status-cockpit = 4&lt;br /&gt;
| status-model   = 3&lt;br /&gt;
| ready          = tutorials&lt;br /&gt;
| navbar         = 1&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This is the aircraft infobox subpage of the [[Piper PA34-200T Seneca II]].&lt;br /&gt;
[[Category:Aircraft infobox documentation]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_Reality&amp;diff=134057</id>
		<title>Virtual Reality</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_Reality&amp;diff=134057"/>
		<updated>2021-12-17T23:31:50Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Experimental|disclaimer=VR support in flightgear still comes with a number of caveats.}}&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = VR screenshot c182s.png&lt;br /&gt;
|name        = Virtual Reality&lt;br /&gt;
|started     = 07/2021&lt;br /&gt;
|description = Virtual Reality support using osgXR / OpenXR&lt;br /&gt;
|status      = Active&lt;br /&gt;
|developers  = James Hogan &amp;lt;ref&amp;gt;https://sourceforge.net/u/amalon/profile/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|changelog = https://sourceforge.net/u/amalon/profile/feed.rss&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''Virtual Reality''' project aims to add immersive VR support to FlightGear. This is done using the OpenXR&amp;lt;ref&amp;gt;{{cite web |url=https://www.khronos.org/OpenXR/ |title=OpenXR Overview |publisher=The Khronos Group Inc}}&amp;lt;/ref&amp;gt; API, via an external library called osgXR&amp;lt;ref name=&amp;quot;github-osgXR&amp;quot;&amp;gt;{{github source |user=amalon |repo=osgXR |full=1}}&amp;lt;/ref&amp;gt; for handling OpenXR and OpenSceneGraph specifics, which is being developed in parallel.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
A previous attempt to support some form of VR is described in [[OculusImplementation]].&lt;br /&gt;
&lt;br /&gt;
The portable OpenXR API now seems to be getting widespread adoption, which will allow FlightGear to support a variety of VR devices across multiple platforms.&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
* osgXR source can be found on github.&amp;lt;ref name=&amp;quot;github-osgXR&amp;quot;/&amp;gt;&lt;br /&gt;
** On ArchLinux, you can install the osgxr AUR package &amp;lt;ref&amp;gt;https://aur.archlinux.org/packages/osgxr/&amp;lt;/ref&amp;gt; to get the version needed by FlightGear's next branches.&lt;br /&gt;
* Some VR code can now be found in FlightGear's next branches (see below for details).&lt;br /&gt;
** On ArchLinux, if you're using the -git AUR packages, i.e. flightgear-git, simgear-git, flightgear-data-git, as long as flightgear-git was built from scratch after installing osgxr it should use it.&lt;br /&gt;
* More FlightGear changes can be found on James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=flightgear |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=flightgear |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased). A mirror is available on github for issue tracking&amp;lt;ref&amp;gt;{{github source |user=amalon |repo=flightgear-vr}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* More SimGear changes can be found in James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=simgear |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=simgear |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased).&lt;br /&gt;
* More FGData changes can be found on James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=fgdata |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=fgdata |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased).&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
'''Last updated: 3/12/2021'''&lt;br /&gt;
&lt;br /&gt;
Highly experimental, partially in next, partly out of tree. Development in progress.&lt;br /&gt;
&lt;br /&gt;
Working in next branch:&lt;br /&gt;
* Enable/disable at startup via --enable-vr / --disable-vr command line options or /sim/vr/enabled property.&lt;br /&gt;
* Displaying stereo images on the HMD.&lt;br /&gt;
* Motion tracking updates HMD views, but doesn't move main camera.&lt;br /&gt;
* Configurable VR mirror (see View-&amp;gt;VR Settings) shown in default camera view (blank, left, right, side-by-side left &amp;amp; right).&lt;br /&gt;
* Visibility mask support.&lt;br /&gt;
&lt;br /&gt;
Working in osgxr/osgxr_clean branch:&lt;br /&gt;
* Improved osgXR detection and VR enable/disable with CMake.&lt;br /&gt;
* Controller support for flight (helicopter collective in left hand, helicopter cyclic in right).&lt;br /&gt;
* Controller pointing support with some mouse emulation.&lt;br /&gt;
&lt;br /&gt;
Current priorities:&lt;br /&gt;
* Continue to polish controller flight support, add haptics etc.&lt;br /&gt;
* Get started on other controller interaction and controller rendering.&lt;br /&gt;
&lt;br /&gt;
=== Known issues ===&lt;br /&gt;
&lt;br /&gt;
* osgXR currently only supports Linux/X11. Adding alternative graphics bindings should be fairly simple, but isn't a priority for me. Contributions welcome.&lt;br /&gt;
* Splash screen is rendered directly onto the left eye viewport which isn't very pleasant in VR.&lt;br /&gt;
* Performance could be better so crank down the graphics if frame rate is low.&lt;br /&gt;
* If it doesn't close cleanly it may be due to a SteamVR bug&amp;lt;ref name=&amp;quot;github-SteamVR-422&amp;quot;/&amp;gt;, but a ctrl+c / SIGINT on the command line should close it.&lt;br /&gt;
* Shadows are broken:&lt;br /&gt;
** When shadows are enabled, the FlightGear window doesn't appear to refresh even though buffers are swapped, but VR output works.&lt;br /&gt;
** Sun position is fixed relative to head, presumably because shadow maps are rendered based on master camera, but osgXR only moves slave cams.&lt;br /&gt;
* Spotlights (taxi/landing lights) are relative to camera in default mode&lt;br /&gt;
** Affects default / scene view mode (&amp;lt;code&amp;gt;--prop:/sim/vr/mode=AUTOMATIC&amp;lt;/code&amp;gt;), as stereo callbacks position cameras&lt;br /&gt;
** Doesn't affect slave cameras mode (&amp;lt;code&amp;gt;--prop:/sim/vr/mode=SLAVE_CAMERAS&amp;lt;/code&amp;gt;), as slave cameras are positioned correctly&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
VR has been tested with the following hardware &amp;amp; software configurations:&lt;br /&gt;
* HTC Vive, SteamVR, Linux/X11 (ArchLinux), nVidia proprietary -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 21:43, 27 August 2021 (UTC)&lt;br /&gt;
* Oculus Quest 2, SteamVR (ALVR), Linux/X11 (Fedora 34) -- [[User:vezza|vezza]] ([[User talk:vezza|talk]]) 16:30 27 August 2021 (UTC)&lt;br /&gt;
* HTC Vive, Monado (to window), Linux/X11 (ArchLinux), nVidia proprietary -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 22:36, 17 December 2021 (UTC)&lt;br /&gt;
** only basic display to window tested&lt;br /&gt;
** osgXR master&lt;br /&gt;
* Monado dummy driver, Linux/X11 (ArchLinux), Intel mesa -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 22:36, 17 December 2021 (UTC)&lt;br /&gt;
** only basic display to window tested&lt;br /&gt;
** osgXR master&lt;br /&gt;
** /sim/vr/depth-info=false&lt;br /&gt;
* Monado Dummy HMD, Linux/X11 (Debian), AMD Mesa Drivers [[User:merspieler|merspieler]] ([[User talk:merspieler|talk]]) 23:27, 17 December 2021 (UTC)&lt;br /&gt;
** Applying the following patch: &amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/src/XRState.cpp b/src/XRState.cpp&lt;br /&gt;
index ce09bcd..5bcbbca 100644&lt;br /&gt;
--- a/src/XRState.cpp&lt;br /&gt;
+++ b/src/XRState.cpp&lt;br /&gt;
@@ -1017,7 +1017,7 @@ XRState::UpResult XRState::upSession()&lt;br /&gt;
         unsigned int thisDepthBits = 0;&lt;br /&gt;
         switch (format)&lt;br /&gt;
         {&lt;br /&gt;
-            case GL_RGBA16:&lt;br /&gt;
+            case GL_RGB10_A2:&lt;br /&gt;
                 // FIXME This one will do for now...&lt;br /&gt;
                 if (!chosenSwapchainFormat)&lt;br /&gt;
                     chosenSwapchainFormat = format;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you've got VR working, feel free to add your configuration above.&lt;br /&gt;
&lt;br /&gt;
The following testing is desired:&lt;br /&gt;
* SteamVR, Linux, AMD graphics:&lt;br /&gt;
** Test that motion smoothing works (its unsupported on NVidia)&lt;br /&gt;
** moving head side to side should reproject using depth buffer&lt;br /&gt;
** try suspending fgfs with Ctrl+Z in terminal (resume with fg) to force reprojection&lt;br /&gt;
* Monado, Linux:&lt;br /&gt;
** May be awkward to test as it crashes in latest NVidia proprietary drivers&amp;lt;ref&amp;gt;https://gitlab.freedesktop.org/monado/monado/-/issues/122&amp;lt;/ref&amp;gt;.&lt;br /&gt;
*** There's now a workaround mentioned in that ticket that allows for basic testing&lt;br /&gt;
** Use osgXR &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; branch for monado workaround, or &amp;lt;code&amp;gt;--disable-vr&amp;lt;/code&amp;gt; and enable VR with GUI&lt;br /&gt;
&lt;br /&gt;
Issues can be reported:&lt;br /&gt;
* On the flightgear-devel [[Mailing lists|mailing list]]&lt;br /&gt;
* To the {{tickets|FlightGear bug tracker}} if the issue is reproducible on the next branch&lt;br /&gt;
* To the [{{github issues url |user=amalon |repo=flightgear-vr}} flightgear-vr issue tracker]&lt;br /&gt;
* To the [{{github issues url |user=amalon |repo=osgXR}} osgXR issue tracker] if it is known to be a non-flightgear specific bug in osgXR&lt;br /&gt;
&lt;br /&gt;
But please be aware of the known caveats mentioned above, and the roadmap below.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
Here are some pointers to get the best VR experience.&lt;br /&gt;
* Ensure your runtime supports asynchronous reprojection, which may alleviate the nausea induced by lower frame rates.&lt;br /&gt;
** On Linux / SteamVR / NVidia proprietary driver, ensure you have at least driver version 270.&lt;br /&gt;
* If your frame rate is being capped at the refresh rate of your desktop monitor, try disabling VSync in both flightgear settings and your driver settings&lt;br /&gt;
** On Linux / NVidia proprietary driver, its found in OpenGL settings in nvidia-settings.&lt;br /&gt;
* If FlightGear is getting throttled by SteamVR (to try and ensure a consistent, if slow, frame rate), consider switching to fixed throttling (in per-application video settings) and playing with the sliders. You may prefer no frame rate throttling but a higher predicted frame time.&lt;br /&gt;
* Enabling multithreading may get you better performance, e.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/multithreading-mode=CullThreadPerCameraDrawThreadPerContext&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
=== Concepts ===&lt;br /&gt;
&lt;br /&gt;
==== Interaction Modes ====&lt;br /&gt;
&lt;br /&gt;
Interaction modes are a way of describing (via XML) how a VR controller should look and behave in a particular context. It roughly corresponds to a virtual control you can hold (and let go of), for example:&lt;br /&gt;
* When you're holding a helicopter collective control, the pitch angle of the controller should control the collective pitch (and look like a collective in your hand).&lt;br /&gt;
* When you're pointing the controller at a GUI or cockpit controls it should pick along a line, rendered in a specific way, and emulate mouse events to those controls (and look like a small laser pointer control or a pointing hand/glove).&lt;br /&gt;
* When you're teleporting around, it should pick along a parabolic arc, rendered a specific way, and teleport there when the button is released.&lt;br /&gt;
* When you're using the flight recorder it should treat the controller trackpad as a rewind/fast forward (and look like a fancy TV remote or something).&lt;br /&gt;
&lt;br /&gt;
The definition of interaction modes should be generic enough that custom ones can be provided with aircraft, or defined separately and work with any aircraft, but also powerful enough that a complex and intuitive control can be defined with a minimum of Nasal scripting.&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
=== Development targets ===&lt;br /&gt;
* Merge stable &amp;amp; minimally functional code into next ({{Merge-request |project=flightgear |id=253}}, {{Merge-request |project=fgdata |id=238}}) {{done}}&lt;br /&gt;
** Bare functionality {{done}}&lt;br /&gt;
** Stability {{done}}&lt;br /&gt;
* Merge some form of desktop mirroring of VR view ({{Merge-request |project=flightgear |id=260}}, {{Merge-request |project=fgdata |id=241}}) {{done}}&lt;br /&gt;
* Merge visibility mask support ({{Merge-request |project=simgear |id=98}}, {{Merge-request |project=flightgear |id=264}}, {{Merge-request |project=fgdata |id=244}}) {{done}}&lt;br /&gt;
* Polish {{not done}}&lt;br /&gt;
** Make GUI accessible to VR user {{not done}}&lt;br /&gt;
** Make splash screen VR friendly {{not done}}&lt;br /&gt;
* Functionality {{progressbar|40}}&lt;br /&gt;
** Controller flight support {{progressbar|80}}&lt;br /&gt;
*** Haptic feedback {{not done}}&lt;br /&gt;
** Controller interaction support {{progressbar|40}}&lt;br /&gt;
** Walker locomotion / room scale {{not done}}&lt;br /&gt;
&lt;br /&gt;
=== General tasks ===&lt;br /&gt;
&lt;br /&gt;
* Stability {{done}}&lt;br /&gt;
** Clean shutdown {{done}}&lt;br /&gt;
*** SteamVR for Linux hangs on OpenXR app shutdown&amp;lt;ref name=&amp;quot;github-SteamVR-422&amp;quot;&amp;gt;{{github issues url|ValveSoftware|SteamVR-for-Linux|number=422}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
** Handle OpenXR stopping {{done}}&lt;br /&gt;
*** SteamVR for Linux kills running app even if it ends session&amp;lt;ref&amp;gt;{{github issues url|ValveSoftware|SteamVR-for-Linux|number=461}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* Resolve questions around VR mirror switching {{done}}&lt;br /&gt;
* Performance {{progressbar|10}}&lt;br /&gt;
** Handle shouldRender=false by somehow disabling VR cameras (maybe setting cull mask to 0) {{not done}}&lt;br /&gt;
** SceneView mode: Combine culling traversal {{not done}}&lt;br /&gt;
** Check why update isn't proceeding in parallel with multithreading {{not done}}&lt;br /&gt;
** Use OpenXR visibility mask extension to avoid rendering to invisible fragments {{done}}&lt;br /&gt;
* Sound {{progressbar|0}}&lt;br /&gt;
** Ensure surround sound is relative to user's head {{not done}}&lt;br /&gt;
** Investigate a way to use appropriate OpenAL binaural mode automatically {{not done}}&lt;br /&gt;
** Fix: It always seems to select speakers rather than headphones on HTC Vive {{not done}}&lt;br /&gt;
&lt;br /&gt;
=== User facing features ===&lt;br /&gt;
&lt;br /&gt;
* Display {{progressbar|60}}&lt;br /&gt;
** Show views on HMD {{done}}&lt;br /&gt;
** Configurable mirror on desktop window {{done}}&lt;br /&gt;
*** Left, Right, Left &amp;amp; Right {{done}}&lt;br /&gt;
*** Composited mirror mode (combine &amp;amp; blend views and allow zooming) {{paused}}&lt;br /&gt;
** Geometry shader multi viewport {{not done}}&lt;br /&gt;
** OVR_multiview2 with OSG branch {{not done}}&lt;br /&gt;
* Motion tracking {{progressbar|50}}&lt;br /&gt;
** Follow motion of HMD {{done}}&lt;br /&gt;
** Move master camera instead of scene slave cameras (presumably would fix surround sound) {{not done}}&lt;br /&gt;
* Settings {{progressbar|20}}&lt;br /&gt;
** Mirror settings {{done}}&lt;br /&gt;
** Dynamic toggling of VR {{done}}&lt;br /&gt;
** Sound settings? {{not done}}&lt;br /&gt;
*** Sound reference frame (user's head or room)? {{not done}}&lt;br /&gt;
** Advanced VR settings {{not done}}&lt;br /&gt;
*** validation layer {{not done}}&lt;br /&gt;
*** submit depth information {{done}} but needs testing (SteamVR+Linux+nVidia doesn't do motion smoothing yet)&lt;br /&gt;
*** osgXR VR mode {{not done}}&lt;br /&gt;
**** Fix slave cameras mode clearing {{not done}}&lt;br /&gt;
*** osgXR swapchain mode {{not done}}&lt;br /&gt;
* Platform support {{progressbar|30}}&lt;br /&gt;
** Linux/X11/OpenGL graphics bindings {{done}}&lt;br /&gt;
** Windows/OpenGL graphics bindings {{not done}}&lt;br /&gt;
** Windows Mixed Reality render via DirectX bindings {{not done}}&lt;br /&gt;
** Monado support {{progressbar|10}}&lt;br /&gt;
* Splash screen {{progressbar|0}}&lt;br /&gt;
** Show splash screen as quad layer for runtime to composite {{not done}} {{priority|2}}&lt;br /&gt;
** Cube map/quads background provided by aircraft {{not done}}&lt;br /&gt;
* GUI {{progressbar|10}} {{priority|2}}&lt;br /&gt;
** Shown over mirror on desktop window {{done}}&lt;br /&gt;
** Expose a menubar &amp;amp; GUI, rendered to a quad or cylinder in front of VR user when they activate {{not done}}&lt;br /&gt;
** Interact with GUI buttons etc using controllers as lasers {{not done}}&lt;br /&gt;
* Controller support {{progressbar|50}}&lt;br /&gt;
** Basic action support in osgXR API {{done}}&lt;br /&gt;
** Tie osgXR actions into FG's input system {{done}}&lt;br /&gt;
** Helicopter flight controls (can use for planes too) {{done}}&lt;br /&gt;
** Plane flight controls {{not done}}&lt;br /&gt;
** Render controllers {{not done}}&lt;br /&gt;
** Hand tracking (robot hand) {{not done}}&lt;br /&gt;
** Render skinned hand {{not done}}&lt;br /&gt;
** Basic interaction with controls {{progressbar|80}}&lt;br /&gt;
** Advanced interaction with animated controls {{not done}}&lt;br /&gt;
** Holding axis controls (joystick, yoke, helicopter collective) {{not done}}&lt;br /&gt;
** Haptic feedback {{not done}}&lt;br /&gt;
* Walker VR locomotion / Room scale {{progressbar|0}}&lt;br /&gt;
** Walker follows user {{not done}}&lt;br /&gt;
** Parabolic arc teleport {{not done}}&lt;br /&gt;
** Snap into seats {{not done}}&lt;br /&gt;
** Easy turning around {{not done}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Core development projects]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Virtual_Reality&amp;diff=134056</id>
		<title>Virtual Reality</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Virtual_Reality&amp;diff=134056"/>
		<updated>2021-12-17T23:30:59Z</updated>

		<summary type="html">&lt;p&gt;Nia: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Experimental|disclaimer=VR support in flightgear still comes with a number of caveats.}}&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = VR screenshot c182s.png&lt;br /&gt;
|name        = Virtual Reality&lt;br /&gt;
|started     = 07/2021&lt;br /&gt;
|description = Virtual Reality support using osgXR / OpenXR&lt;br /&gt;
|status      = Active&lt;br /&gt;
|developers  = James Hogan &amp;lt;ref&amp;gt;https://sourceforge.net/u/amalon/profile/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|changelog = https://sourceforge.net/u/amalon/profile/feed.rss&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''Virtual Reality''' project aims to add immersive VR support to FlightGear. This is done using the OpenXR&amp;lt;ref&amp;gt;{{cite web |url=https://www.khronos.org/OpenXR/ |title=OpenXR Overview |publisher=The Khronos Group Inc}}&amp;lt;/ref&amp;gt; API, via an external library called osgXR&amp;lt;ref name=&amp;quot;github-osgXR&amp;quot;&amp;gt;{{github source |user=amalon |repo=osgXR |full=1}}&amp;lt;/ref&amp;gt; for handling OpenXR and OpenSceneGraph specifics, which is being developed in parallel.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
A previous attempt to support some form of VR is described in [[OculusImplementation]].&lt;br /&gt;
&lt;br /&gt;
The portable OpenXR API now seems to be getting widespread adoption, which will allow FlightGear to support a variety of VR devices across multiple platforms.&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
* osgXR source can be found on github.&amp;lt;ref name=&amp;quot;github-osgXR&amp;quot;/&amp;gt;&lt;br /&gt;
** On ArchLinux, you can install the osgxr AUR package &amp;lt;ref&amp;gt;https://aur.archlinux.org/packages/osgxr/&amp;lt;/ref&amp;gt; to get the version needed by FlightGear's next branches.&lt;br /&gt;
* Some VR code can now be found in FlightGear's next branches (see below for details).&lt;br /&gt;
** On ArchLinux, if you're using the -git AUR packages, i.e. flightgear-git, simgear-git, flightgear-data-git, as long as flightgear-git was built from scratch after installing osgxr it should use it.&lt;br /&gt;
* More FlightGear changes can be found on James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=flightgear |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=flightgear |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased). A mirror is available on github for issue tracking&amp;lt;ref&amp;gt;{{github source |user=amalon |repo=flightgear-vr}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* More SimGear changes can be found in James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=simgear |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=simgear |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased).&lt;br /&gt;
* More FGData changes can be found on James Hogan's osgxr branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=fgdata |branch=osgxr |full=1}}&amp;lt;/ref&amp;gt; (non-rebased branch), or osgxr_clean branch&amp;lt;ref&amp;gt;{{sourceforge source |user=amalon |repo=fgdata |branch=osgxr_clean |full=1}}&amp;lt;/ref&amp;gt; (clean history, may be rebased).&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
'''Last updated: 3/12/2021'''&lt;br /&gt;
&lt;br /&gt;
Highly experimental, partially in next, partly out of tree. Development in progress.&lt;br /&gt;
&lt;br /&gt;
Working in next branch:&lt;br /&gt;
* Enable/disable at startup via --enable-vr / --disable-vr command line options or /sim/vr/enabled property.&lt;br /&gt;
* Displaying stereo images on the HMD.&lt;br /&gt;
* Motion tracking updates HMD views, but doesn't move main camera.&lt;br /&gt;
* Configurable VR mirror (see View-&amp;gt;VR Settings) shown in default camera view (blank, left, right, side-by-side left &amp;amp; right).&lt;br /&gt;
* Visibility mask support.&lt;br /&gt;
&lt;br /&gt;
Working in osgxr/osgxr_clean branch:&lt;br /&gt;
* Improved osgXR detection and VR enable/disable with CMake.&lt;br /&gt;
* Controller support for flight (helicopter collective in left hand, helicopter cyclic in right).&lt;br /&gt;
* Controller pointing support with some mouse emulation.&lt;br /&gt;
&lt;br /&gt;
Current priorities:&lt;br /&gt;
* Continue to polish controller flight support, add haptics etc.&lt;br /&gt;
* Get started on other controller interaction and controller rendering.&lt;br /&gt;
&lt;br /&gt;
=== Known issues ===&lt;br /&gt;
&lt;br /&gt;
* osgXR currently only supports Linux/X11. Adding alternative graphics bindings should be fairly simple, but isn't a priority for me. Contributions welcome.&lt;br /&gt;
* Splash screen is rendered directly onto the left eye viewport which isn't very pleasant in VR.&lt;br /&gt;
* Performance could be better so crank down the graphics if frame rate is low.&lt;br /&gt;
* If it doesn't close cleanly it may be due to a SteamVR bug&amp;lt;ref name=&amp;quot;github-SteamVR-422&amp;quot;/&amp;gt;, but a ctrl+c / SIGINT on the command line should close it.&lt;br /&gt;
* Shadows are broken:&lt;br /&gt;
** When shadows are enabled, the FlightGear window doesn't appear to refresh even though buffers are swapped, but VR output works.&lt;br /&gt;
** Sun position is fixed relative to head, presumably because shadow maps are rendered based on master camera, but osgXR only moves slave cams.&lt;br /&gt;
* Spotlights (taxi/landing lights) are relative to camera in default mode&lt;br /&gt;
** Affects default / scene view mode (&amp;lt;code&amp;gt;--prop:/sim/vr/mode=AUTOMATIC&amp;lt;/code&amp;gt;), as stereo callbacks position cameras&lt;br /&gt;
** Doesn't affect slave cameras mode (&amp;lt;code&amp;gt;--prop:/sim/vr/mode=SLAVE_CAMERAS&amp;lt;/code&amp;gt;), as slave cameras are positioned correctly&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
VR has been tested with the following hardware &amp;amp; software configurations:&lt;br /&gt;
* HTC Vive, SteamVR, Linux/X11 (ArchLinux), nVidia proprietary -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 21:43, 27 August 2021 (UTC)&lt;br /&gt;
* Oculus Quest 2, SteamVR (ALVR), Linux/X11 (Fedora 34) -- [[User:vezza|vezza]] ([[User talk:vezza|talk]]) 16:30 27 August 2021 (UTC)&lt;br /&gt;
* HTC Vive, Monado (to window), Linux/X11 (ArchLinux), nVidia proprietary -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 22:36, 17 December 2021 (UTC)&lt;br /&gt;
** only basic display to window tested&lt;br /&gt;
** osgXR master&lt;br /&gt;
* Monado dummy driver, Linux/X11 (ArchLinux), Intel mesa -- [[User:Amalon|Amalon]] ([[User talk:Amalon|talk]]) 22:36, 17 December 2021 (UTC)&lt;br /&gt;
** only basic display to window tested&lt;br /&gt;
** osgXR master&lt;br /&gt;
** /sim/vr/depth-info=false&lt;br /&gt;
* Monado Dummy HMD, Linux/X11 (Debian), AMD Mesa Drivers [[User:merspieler|merspieler) ([[User talk:merspieler|talk]]) 23:27, 17 December 2021 (UTC)&lt;br /&gt;
** Applying the following patch: &amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/src/XRState.cpp b/src/XRState.cpp&lt;br /&gt;
index ce09bcd..5bcbbca 100644&lt;br /&gt;
--- a/src/XRState.cpp&lt;br /&gt;
+++ b/src/XRState.cpp&lt;br /&gt;
@@ -1017,7 +1017,7 @@ XRState::UpResult XRState::upSession()&lt;br /&gt;
         unsigned int thisDepthBits = 0;&lt;br /&gt;
         switch (format)&lt;br /&gt;
         {&lt;br /&gt;
-            case GL_RGBA16:&lt;br /&gt;
+            case GL_RGB10_A2:&lt;br /&gt;
                 // FIXME This one will do for now...&lt;br /&gt;
                 if (!chosenSwapchainFormat)&lt;br /&gt;
                     chosenSwapchainFormat = format;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you've got VR working, feel free to add your configuration above.&lt;br /&gt;
&lt;br /&gt;
The following testing is desired:&lt;br /&gt;
* SteamVR, Linux, AMD graphics:&lt;br /&gt;
** Test that motion smoothing works (its unsupported on NVidia)&lt;br /&gt;
** moving head side to side should reproject using depth buffer&lt;br /&gt;
** try suspending fgfs with Ctrl+Z in terminal (resume with fg) to force reprojection&lt;br /&gt;
* Monado, Linux:&lt;br /&gt;
** May be awkward to test as it crashes in latest NVidia proprietary drivers&amp;lt;ref&amp;gt;https://gitlab.freedesktop.org/monado/monado/-/issues/122&amp;lt;/ref&amp;gt;.&lt;br /&gt;
*** There's now a workaround mentioned in that ticket that allows for basic testing&lt;br /&gt;
** Use osgXR &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; branch for monado workaround, or &amp;lt;code&amp;gt;--disable-vr&amp;lt;/code&amp;gt; and enable VR with GUI&lt;br /&gt;
&lt;br /&gt;
Issues can be reported:&lt;br /&gt;
* On the flightgear-devel [[Mailing lists|mailing list]]&lt;br /&gt;
* To the {{tickets|FlightGear bug tracker}} if the issue is reproducible on the next branch&lt;br /&gt;
* To the [{{github issues url |user=amalon |repo=flightgear-vr}} flightgear-vr issue tracker]&lt;br /&gt;
* To the [{{github issues url |user=amalon |repo=osgXR}} osgXR issue tracker] if it is known to be a non-flightgear specific bug in osgXR&lt;br /&gt;
&lt;br /&gt;
But please be aware of the known caveats mentioned above, and the roadmap below.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
Here are some pointers to get the best VR experience.&lt;br /&gt;
* Ensure your runtime supports asynchronous reprojection, which may alleviate the nausea induced by lower frame rates.&lt;br /&gt;
** On Linux / SteamVR / NVidia proprietary driver, ensure you have at least driver version 270.&lt;br /&gt;
* If your frame rate is being capped at the refresh rate of your desktop monitor, try disabling VSync in both flightgear settings and your driver settings&lt;br /&gt;
** On Linux / NVidia proprietary driver, its found in OpenGL settings in nvidia-settings.&lt;br /&gt;
* If FlightGear is getting throttled by SteamVR (to try and ensure a consistent, if slow, frame rate), consider switching to fixed throttling (in per-application video settings) and playing with the sliders. You may prefer no frame rate throttling but a higher predicted frame time.&lt;br /&gt;
* Enabling multithreading may get you better performance, e.g. &amp;lt;code&amp;gt;--prop:/sim/rendering/multithreading-mode=CullThreadPerCameraDrawThreadPerContext&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
=== Concepts ===&lt;br /&gt;
&lt;br /&gt;
==== Interaction Modes ====&lt;br /&gt;
&lt;br /&gt;
Interaction modes are a way of describing (via XML) how a VR controller should look and behave in a particular context. It roughly corresponds to a virtual control you can hold (and let go of), for example:&lt;br /&gt;
* When you're holding a helicopter collective control, the pitch angle of the controller should control the collective pitch (and look like a collective in your hand).&lt;br /&gt;
* When you're pointing the controller at a GUI or cockpit controls it should pick along a line, rendered in a specific way, and emulate mouse events to those controls (and look like a small laser pointer control or a pointing hand/glove).&lt;br /&gt;
* When you're teleporting around, it should pick along a parabolic arc, rendered a specific way, and teleport there when the button is released.&lt;br /&gt;
* When you're using the flight recorder it should treat the controller trackpad as a rewind/fast forward (and look like a fancy TV remote or something).&lt;br /&gt;
&lt;br /&gt;
The definition of interaction modes should be generic enough that custom ones can be provided with aircraft, or defined separately and work with any aircraft, but also powerful enough that a complex and intuitive control can be defined with a minimum of Nasal scripting.&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
=== Development targets ===&lt;br /&gt;
* Merge stable &amp;amp; minimally functional code into next ({{Merge-request |project=flightgear |id=253}}, {{Merge-request |project=fgdata |id=238}}) {{done}}&lt;br /&gt;
** Bare functionality {{done}}&lt;br /&gt;
** Stability {{done}}&lt;br /&gt;
* Merge some form of desktop mirroring of VR view ({{Merge-request |project=flightgear |id=260}}, {{Merge-request |project=fgdata |id=241}}) {{done}}&lt;br /&gt;
* Merge visibility mask support ({{Merge-request |project=simgear |id=98}}, {{Merge-request |project=flightgear |id=264}}, {{Merge-request |project=fgdata |id=244}}) {{done}}&lt;br /&gt;
* Polish {{not done}}&lt;br /&gt;
** Make GUI accessible to VR user {{not done}}&lt;br /&gt;
** Make splash screen VR friendly {{not done}}&lt;br /&gt;
* Functionality {{progressbar|40}}&lt;br /&gt;
** Controller flight support {{progressbar|80}}&lt;br /&gt;
*** Haptic feedback {{not done}}&lt;br /&gt;
** Controller interaction support {{progressbar|40}}&lt;br /&gt;
** Walker locomotion / room scale {{not done}}&lt;br /&gt;
&lt;br /&gt;
=== General tasks ===&lt;br /&gt;
&lt;br /&gt;
* Stability {{done}}&lt;br /&gt;
** Clean shutdown {{done}}&lt;br /&gt;
*** SteamVR for Linux hangs on OpenXR app shutdown&amp;lt;ref name=&amp;quot;github-SteamVR-422&amp;quot;&amp;gt;{{github issues url|ValveSoftware|SteamVR-for-Linux|number=422}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
** Handle OpenXR stopping {{done}}&lt;br /&gt;
*** SteamVR for Linux kills running app even if it ends session&amp;lt;ref&amp;gt;{{github issues url|ValveSoftware|SteamVR-for-Linux|number=461}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
* Resolve questions around VR mirror switching {{done}}&lt;br /&gt;
* Performance {{progressbar|10}}&lt;br /&gt;
** Handle shouldRender=false by somehow disabling VR cameras (maybe setting cull mask to 0) {{not done}}&lt;br /&gt;
** SceneView mode: Combine culling traversal {{not done}}&lt;br /&gt;
** Check why update isn't proceeding in parallel with multithreading {{not done}}&lt;br /&gt;
** Use OpenXR visibility mask extension to avoid rendering to invisible fragments {{done}}&lt;br /&gt;
* Sound {{progressbar|0}}&lt;br /&gt;
** Ensure surround sound is relative to user's head {{not done}}&lt;br /&gt;
** Investigate a way to use appropriate OpenAL binaural mode automatically {{not done}}&lt;br /&gt;
** Fix: It always seems to select speakers rather than headphones on HTC Vive {{not done}}&lt;br /&gt;
&lt;br /&gt;
=== User facing features ===&lt;br /&gt;
&lt;br /&gt;
* Display {{progressbar|60}}&lt;br /&gt;
** Show views on HMD {{done}}&lt;br /&gt;
** Configurable mirror on desktop window {{done}}&lt;br /&gt;
*** Left, Right, Left &amp;amp; Right {{done}}&lt;br /&gt;
*** Composited mirror mode (combine &amp;amp; blend views and allow zooming) {{paused}}&lt;br /&gt;
** Geometry shader multi viewport {{not done}}&lt;br /&gt;
** OVR_multiview2 with OSG branch {{not done}}&lt;br /&gt;
* Motion tracking {{progressbar|50}}&lt;br /&gt;
** Follow motion of HMD {{done}}&lt;br /&gt;
** Move master camera instead of scene slave cameras (presumably would fix surround sound) {{not done}}&lt;br /&gt;
* Settings {{progressbar|20}}&lt;br /&gt;
** Mirror settings {{done}}&lt;br /&gt;
** Dynamic toggling of VR {{done}}&lt;br /&gt;
** Sound settings? {{not done}}&lt;br /&gt;
*** Sound reference frame (user's head or room)? {{not done}}&lt;br /&gt;
** Advanced VR settings {{not done}}&lt;br /&gt;
*** validation layer {{not done}}&lt;br /&gt;
*** submit depth information {{done}} but needs testing (SteamVR+Linux+nVidia doesn't do motion smoothing yet)&lt;br /&gt;
*** osgXR VR mode {{not done}}&lt;br /&gt;
**** Fix slave cameras mode clearing {{not done}}&lt;br /&gt;
*** osgXR swapchain mode {{not done}}&lt;br /&gt;
* Platform support {{progressbar|30}}&lt;br /&gt;
** Linux/X11/OpenGL graphics bindings {{done}}&lt;br /&gt;
** Windows/OpenGL graphics bindings {{not done}}&lt;br /&gt;
** Windows Mixed Reality render via DirectX bindings {{not done}}&lt;br /&gt;
** Monado support {{progressbar|10}}&lt;br /&gt;
* Splash screen {{progressbar|0}}&lt;br /&gt;
** Show splash screen as quad layer for runtime to composite {{not done}} {{priority|2}}&lt;br /&gt;
** Cube map/quads background provided by aircraft {{not done}}&lt;br /&gt;
* GUI {{progressbar|10}} {{priority|2}}&lt;br /&gt;
** Shown over mirror on desktop window {{done}}&lt;br /&gt;
** Expose a menubar &amp;amp; GUI, rendered to a quad or cylinder in front of VR user when they activate {{not done}}&lt;br /&gt;
** Interact with GUI buttons etc using controllers as lasers {{not done}}&lt;br /&gt;
* Controller support {{progressbar|50}}&lt;br /&gt;
** Basic action support in osgXR API {{done}}&lt;br /&gt;
** Tie osgXR actions into FG's input system {{done}}&lt;br /&gt;
** Helicopter flight controls (can use for planes too) {{done}}&lt;br /&gt;
** Plane flight controls {{not done}}&lt;br /&gt;
** Render controllers {{not done}}&lt;br /&gt;
** Hand tracking (robot hand) {{not done}}&lt;br /&gt;
** Render skinned hand {{not done}}&lt;br /&gt;
** Basic interaction with controls {{progressbar|80}}&lt;br /&gt;
** Advanced interaction with animated controls {{not done}}&lt;br /&gt;
** Holding axis controls (joystick, yoke, helicopter collective) {{not done}}&lt;br /&gt;
** Haptic feedback {{not done}}&lt;br /&gt;
* Walker VR locomotion / Room scale {{progressbar|0}}&lt;br /&gt;
** Walker follows user {{not done}}&lt;br /&gt;
** Parabolic arc teleport {{not done}}&lt;br /&gt;
** Snap into seats {{not done}}&lt;br /&gt;
** Easy turning around {{not done}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Core development projects]]&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Performance_Improvement_for_Ortho_Scenery&amp;diff=133712</id>
		<title>Hackathon Proposal: Performance Improvement for Ortho Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Performance_Improvement_for_Ortho_Scenery&amp;diff=133712"/>
		<updated>2021-11-09T14:57:46Z</updated>

		<summary type="html">&lt;p&gt;Nia: Added how to test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hackathon Proposal 2021&lt;br /&gt;
| title          = Performance Improvement for Ortho Scenery&lt;br /&gt;
| image          = Oom bavaria ortho.jpg&lt;br /&gt;
| caption        = Demonstrating out of memory issues with the open bavaria ortho scenery&lt;br /&gt;
| sponsor        = merspieler&lt;br /&gt;
| supporters     = (Feel free to add yourself)&lt;br /&gt;
| status         = &lt;br /&gt;
| summary        = Improving the performance of ortho scenery by adding a LOD scheme and loading it in a background thread&lt;br /&gt;
| background     = I've started the initiative of collecting openly licensed ortho sources to be used in flightgear.&lt;br /&gt;
For bavaria, there are high quality (80cm/px) images available under CC BY license from the Bayrische Vermessungsverwaltung. The generated (16k) scenery quickly showed its issues cause one would run out of RAM and VRAM, when running larger areas with such scenery. This can be solved by implementing a LOD scheme: only loading highres versions for near-by tiles and loading lower res versions for distant tiles. In addition, with altitude the need for highres images reduces. 4k scenery (roughly 4m/px, 1/16th the size of 16k scenery) starts looking fine at 10000-12000ft AGL on a FullHD monitor and is more than enough for airliner cruise altitude so 2k or maybe even 1k scenery would be enough for that. 4k Scenery is already enough to not cause any RAM or VRAM issues on a modern system by using about 13GB RAM and 5GB VRAM at cruise alt and a bare LOD of &amp;gt;200km.&lt;br /&gt;
&lt;br /&gt;
The other issue that becomes aparent with large or many images is loading times. It can take several seconds to load a highres tile or in cruise a row of lowres tiles. Currently, flightgear freezes during loading. This could be solved by moving the loading into its own thread.&lt;br /&gt;
| details        = Stuart has some ideas on how it might work with WS3.0: https://sourceforge.net/p/flightgear/mailman/message/37371092/&lt;br /&gt;
| skills         = C++&lt;br /&gt;
| opportunities  = &lt;br /&gt;
| notes          = I will need help of someone familiar with the rendering and loading code.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Progress during the Hackathon ===&lt;br /&gt;
We've got a working ortho scenery under WS3.0. The ortho scenery uses the same LOD scheme as WS3.0 does.&lt;br /&gt;
&lt;br /&gt;
This already solved the loading performance issues seen with high res WS2.0 ortho scenery.&lt;br /&gt;
&lt;br /&gt;
How to test (latest next version required):&lt;br /&gt;
&lt;br /&gt;
* Download the [https://cdn.merspieler.tk/hosting/demo.zip scenery] (31GB Download) and unpack it.&lt;br /&gt;
* Add the command line option `--prop:/scenery/use-vpb=true`. This enables WS3.0.&lt;br /&gt;
* Start at EDDM and enable Photoscenery as well as Ultra terrain quality in the rendering settings.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Performance_Improvement_for_Ortho_Scenery&amp;diff=133702</id>
		<title>Hackathon Proposal: Performance Improvement for Ortho Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Hackathon_Proposal:_Performance_Improvement_for_Ortho_Scenery&amp;diff=133702"/>
		<updated>2021-11-07T21:27:19Z</updated>

		<summary type="html">&lt;p&gt;Nia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hackathon Proposal 2021&lt;br /&gt;
| title          = Performance Improvement for Ortho Scenery&lt;br /&gt;
| image          = Oom bavaria ortho.jpg&lt;br /&gt;
| caption        = Demonstrating out of memory issues with the open bavaria ortho scenery&lt;br /&gt;
| sponsor        = merspieler&lt;br /&gt;
| supporters     = (Feel free to add yourself)&lt;br /&gt;
| status         = &lt;br /&gt;
| summary        = Improving the performance of ortho scenery by adding a LOD scheme and loading it in a background thread&lt;br /&gt;
| background     = I've started the initiative of collecting openly licensed ortho sources to be used in flightgear.&lt;br /&gt;
For bavaria, there are high quality (80cm/px) images available under CC BY license from the Bayrische Vermessungsverwaltung. The generated (16k) scenery quickly showed its issues cause one would run out of RAM and VRAM, when running larger areas with such scenery. This can be solved by implementing a LOD scheme: only loading highres versions for near-by tiles and loading lower res versions for distant tiles. In addition, with altitude the need for highres images reduces. 4k scenery (roughly 4m/px, 1/16th the size of 16k scenery) starts looking fine at 10000-12000ft AGL on a FullHD monitor and is more than enough for airliner cruise altitude so 2k or maybe even 1k scenery would be enough for that. 4k Scenery is already enough to not cause any RAM or VRAM issues on a modern system by using about 13GB RAM and 5GB VRAM at cruise alt and a bare LOD of &amp;gt;200km.&lt;br /&gt;
&lt;br /&gt;
The other issue that becomes aparent with large or many images is loading times. It can take several seconds to load a highres tile or in cruise a row of lowres tiles. Currently, flightgear freezes during loading. This could be solved by moving the loading into its own thread.&lt;br /&gt;
| details        = Stuart has some ideas on how it might work with WS3.0: https://sourceforge.net/p/flightgear/mailman/message/37371092/&lt;br /&gt;
| skills         = C++&lt;br /&gt;
| opportunities  = &lt;br /&gt;
| notes          = I will need help of someone familiar with the rendering and loading code.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Progress during the Hackathon ===&lt;br /&gt;
We've got a working ortho scenery under WS3.0. The ortho scenery uses the same LOD scheme as WS3.0 does.&lt;br /&gt;
&lt;br /&gt;
This already solved the loading performance issues seen with high res WS2.0 ortho scenery.&lt;br /&gt;
&lt;br /&gt;
Test files and instructions, how to test will soon be added.&lt;/div&gt;</summary>
		<author><name>Nia</name></author>
	</entry>
</feed>