No internet connection
  1. Home
  2. General

Osprey v1.4 … Flying under bridges crashes aircraft

By @nenenui
    2024-11-09 12:38:40.250Z

    I suspected this bug a long time ago, but never really took the time to investigate. But now I am sure that I can reliably crash the Osprey if I fly under a bridge.

    So far I only tried it with nacelles at 0 deg.

    One obvious example would be the Golden Gate bridge, when flying out from KSFO.

    It would be obvious for all those TIN scan based bridges. But in my case I only tried truly modelled 3D objects. They all cause the engines to shut down … "simulating" a rotor blade strike against an object (I guess).

    • 12 replies

    There are 12 replies. Estimated reading time: 13 minutes

    1. Correct, not really a bug - the engines detect crashbox impacts and simulate engine damage. However, crashboxes on scenery objects generally dont follow the geometry perfectly and are often just a simple shape due to performance reasons. Hence, the underside of a bridge is generally covered by the scenery object crashbox, triggering the engine damage

      1. @nenenui
          2024-11-09 15:19:36.486Z

          I understand the general concept of "crash" detection … however, especially with the Golden Gate bridge, which has a very high clearing above sea, I would be surprised if that is the reason.

          I think I did fly under the Golden Gate back in 2020 or 2021 already, with other aircraft, and nothing happened.
          I will try with other helicopters and aircraft again to doublecheck how close to the bridge I can get before they crash.

          I never used the SDK … but is there a way to "see" such boxes in the sim in developer mode?

        • Progress
        • @nenenui
            2024-11-09 15:51:27.366Z

            Here is an image from my "first" GG crash, just to give an impression of the distance to the bridge.

            The altitude gets displayed with "-41" … not sure if that is the same during all flights. But maybe it can provide a useful hint.

            The cockpit claims that I am 88 ft above ground:

            1. Miltech Simulations @MiltechSimulations
                2024-11-09 15:59:17.858Zreplies tonenenui:

                The crashbox very likely does not follow the geometry but instead is a box that covers the object entirely. I haven’t checked the specifics on this model, but generally crashboxes are simple for performance reasons.

                You may test this by enabling crash detection on MSFS assistances and flying any stock aircraft under the bridge. Results will likely be the same

                1. The -41 ft is interesting actually. That likely indicates that the bridge road is setup as a hardsurface that the external HUD recognises as “ground level”, while the cockpit is reading the radioaltimeter directly to the ground. This can also be a source for crash detection as the crash system in MSFS may detect that the aircraft is “under the ground”

                  1. @nenenui
                      2024-11-09 16:34:25.966Z

                      So I did retry … but this time with nacelles at 88 deg. And everything worked as one would expect:

                      • (A) Hover works fine even very very close to the bridge structure (crashbox geometry)
                      • (B) Only when the rotors really "visually touch" the bridge I do get the "object collision" animation

                      Now (B) is interesting, because in the "nacelles = 0" cases … first the engines fail … the Osprey continues to "glide" for some time … and then it hits the water. It actually never really triggers the "collision with object crash-animation".

                      1. @nenenui
                          2024-11-10 07:16:37.688Zreplies toMiltechSimulations:

                          Regarding the -41 ft … in that flight I was using "Live Weather" and so I assume that this was a result of "barometric altitude" and me not calibrating BARO prior to flight.

                          In all other flights after that I did use "Clear Skies" weather, and as you can see in the image below the sea level in those cases is "normal" … so here the wheels are almost touching the water and I am at 9 ft.

                          I did make another flight with nacelles at 1 deg and in "Clear skies" and I did get the same "unusual" result:

                          • Flying at ca 140 ktas
                          • … at "calibrated" 50 to 100 ft above sea level
                          • … so with at least around 50 to 100 ft clearance above the rotors
                          • Engine shutdown under the bridge
                            • so "no" crashbox object collision
                          • flight continues in glide
                          • … until I hit the water

                          So it seems to me like there must be some "magic" nacelles angle at which the "engine shutdown" problem goes away. And I am guessing now that the related code must be inside the Osprey, because standard MSFS logic would not trigger an engine shutdown (if the tank is still full) but it would rather trigger an object collision event.

                          I think I will try a "real" object collision case too … by simply flying "intentionally" into the bridge while nacelles are at 1 deg … just to check if MSFS would produce a "normal" object collision result.

                          1. @nenenui
                              2024-11-11 14:58:06.659Z

                              So I did some more flight tests under the bridge and I can see:

                              • all flights at around 100 ft above ground
                              • … and at around 140 ktas
                              • with nacelles at 40 deg … no problem
                              • with nacelles at 30 deg … engine fail

                              So it clearly is nacelles angle sensitve … and that IMHO indicates code inside the Osprey aircraft.

                              In addition I could see that when flying under the bridge the "Radio Altimeter" at some point suddenly switches from e.g +60 ft to -210 ft.
                              So it seems at some point the "distance to ground" is measured against the road surface of the bridge.

                              With that I guess that you might have some "rotor ground strike detection code" that looks like this:

                              • If nacelles < 40 deg (?) …
                              • then check ground strike
                                • and If radio altimeter < 5 ft (some very small distance to ground)
                                • then kill engine

                              So I guess the primary cause is radio alt measurement. A simple workaround would be to detect "unreasonable radio alt measurements" and ignore such values in the ground strike detection code.

                              E.g. … If radio alt < -1 then skip ground strike detection.

                              1. Miltech Simulations @MiltechSimulations
                                  2024-11-11 15:12:10.412Z2024-11-11 15:21:47.013Zreplies tonenenui:

                                  And I am guessing now that the related code must be inside the Osprey, because standard MSFS logic would not trigger an engine shutdown (if the tank is still full) but it would rather trigger an object collision event.

                                  Yes, that's exactly what I'm referring to when I talk about "the engines detect crashbox impacts and simulate engine damage". The Osprey has a crash detection algorithm, independent of the simulator crash detection system, that upon detecting an impact it will damage the engines. This is primarily designed so engines are damaged when the aircraft lands with the gear retracted at nacelle angles under 60deg, which matches exactly the behavior you are experiencing with it being "nacelle-dependent".

                                  The issue isn't necessarily the Osprey and how impact is detected, but rather the way Crashboxes function in MSFS. The fact that
                                  the surface of the bridge is set as a "hard surface", which tricks the altimeters and crash detection algorithm.

                                  Modifying the algorithm to trigger crashes based on vertical distance to the ground would introduce two issues:

                                  1. If we set a condition like "radio altimeter < 5 ft (a very small distance to the ground)," this would incorrectly trigger the crash detection algorithm when flying under a bridge, as your tests indicate a radio altimeter reading of -210 ft in such scenarios. Adding an additional check for "radio altimeter > 0 ft" could address this, but…
                                  2. How would we reliably detect a direct frontal impact in this setup?

                                  Addressing the "flying under the bridge" issue would introduce a new problem: the engine wouldn't fail in the event of a frontal impact. Removing the system entirely would prevent failures from being triggered if the aircraft lands with its landing gear retracted. From a design perspective, the current implementation is the most practical. We assume that flying under a bridge is outside typical aircraft operations, so we prioritize using crash detection for more common scenarios. This is by design.

                                  If the crashbox on this bridge is designed in a way that no collisions are detected when flying under it (eg. removing the hardsurface where cars drive on, as this is the reason why crashes are detected here - MSFS cannot understand that a hard surface (road) is "floating in the air", it will always assume that the hard surface is ground level and anything under it is "under the ground", therefore triggering a crash), the issue would not occur.

                                  1. Also important to note is that this issue would not occur with bridge 3D models without hard surfaces set for the road, as the crash algorithm cannot detect it as a crash element.

                                    1. @nenenui
                                        2024-11-11 19:31:02.897Zreplies toMiltechSimulations:

                                        Indeed … a 3D bridge without a solid surface would be an interesting test.

                                        But on the other hand it would not be too useful because in general the sim should be "real"
                                        … and real bridges are solid and even landing an aircraft or heli on a bridge should be possible (e.g. for medical rescue ops etc.)

                                        1. @nenenui
                                            2024-11-11 19:37:26.770Zreplies toMiltechSimulations:

                                            Regarding the actual code changes I will not be of too much help.
                                            I do not know your code and I never used the SDK or developed any assets for MSFS.
                                            My remarks are mainly based on "guessing" based on observations.

                                            Maybe Asobo needs to adjust the "radio altimeter" feature, if that is provided by the sim.

                                            However, I think that flying under a 3D bridge should / could be possible in the Osprey too,
                                            and I want to stay optimistic that there is a way to solve this issue within a MSFS2024 update.