X-Plane 11 has had several fantastic updates to the library of lego-brick airport objects that ship with X-Plane. We’ve had new European-style objects, elements for small airports, and the terminal and jetway kits let you build really great looking airports that fit the exact shape of the real-world airport you are modeling.

In that context, I’m pleased to show you a sneak preview of the next set of lego-brick objects for gateway airport authors.

You can download a preview if the new lego bricks here.

About Ben Supnik

Ben is a software engineer who works on X-Plane; he spends most of his days drinking coffee and swearing at the computer -- sometimes at the same time.

34 comments on “New Lego Bricks for Airport Designers

  1. I’m now having genuine problems with a blank display, i am forced to use my onboard/integrated gfx. The Nvidia 1070 is detected, but ‘windows has detected a problem’. Right now, im boxing it up for a warranty return. I believe it is this update that has bricked my graphics.

    Also, before all that, a friend said it was some kind of joke update? I dont see what he was talking about. The graphics look pretty slick, indistinguishable from any other planes on my headset!

  2. I had 1000 fps ( all settings to beyond MAX ) until this VR lego update now I only get 3 fps .

  3. I didn’t fall for it, honest!
    Hey Ben, how is the next patch coming along?
    Happy Easter to you and your team.

  4. Thank you. Could you please cut some small update just to add a few rabbits also? They could be crossing the runaway during ou take-off and landings but no rabbit strikes please.

    1. +1 About every other time I fly IRL I almost hit hares running across the runway. And some of them are about the size of a small dog… I haven’t had to do a go-around yet but it’s just a matter of time.

    2. Use the new WED 4.1 function “place hat” and then activate the XP rendering setting “pull out of hat” for that.
      My wife’s and my own opinion about the most plausible bunny color scheme (red-white checkerboard vs solid pink) to differ, though.

    3. A true story…

      After a nice evening flight as passenger, had landed in Abu Dhabi airport at night. After a smooth landing, the large A330 was taxiing in the dark in the direction of the terminal. Suddenly, a strong brake made the plane go full stop in the middle of nowhere, shaking passengers. A few seconds later, as the front camera was still on, we could see… A little rabbit gently crossing the taxiway…

      Just to mention, the rabbit was in fault, since no rabbit-crossing marks were drawn on that location of the taxiway…

    1. Given that a person rendered in x-plane would look about as good as real as a lego mini-figure, I’ve been against putting people in the x-plane world…my concern is the obvious rendering problems will detract from immersion.

      1. I’m more afraid Alex would just clone the doodle from the C172 glove compartment and put that one in EVERY drivers seat. Head bobbing in sync with the usual AI’s stop & go riding style.

      2. Still, I’d like to see an OttoPilot-style (“Airplane!” movie) inflatable First Officer in the right seat, getting automatically inflated as the “AI flies your Aircraft” option is engaged…

  5. I know this is supposed to be an April’s fool … but you might be on to something here. Just imagine to have ML CAD (http://mlcad.lm-software.com) like abilities in WED or be able to import that stuff into WED. You could then build a whole city or whatever you want and inspect it in game with VR. That would be a child’s dream come true :-). It might even appeal to a whole new customer base for X-Plane (half kidding and half not).

    On a side note – I had a Lego plane that looked somewhat like the middle one as a child. Oh those sweet memories :-).

    On a second side note – please don’t stop adding lego-brick airport objects – there will never be something like “enough” :-).

    1. I had the middle aircraft too – it was amazing that they (barely) managed to cram a pilot in there. 🙂

      The LDraw path to X-Plane (which I used to create this) works quite badly right now – the LDraw importer to Blender doesn’t make files that X-Plane’s exporter copes with well. (That’s why the windscreens aren’t transparent). But the real issue is that LDraw is very, very, very vertex heavy – the snow plow is 300k vertices with simplified 8-sided studs.

      I’ve had a notion to someday write a program to optimize finished LDraw models to remove the hidden surfaces (e.g the inner tubes of bricks that you’ll never see) but I haven’t had a great idea on an algorithm.

    2. The huge, hinged side door of that “DC-9” is ideal for various weapon system deployment mechanisms (airborne lasers and such) after the aft passenger seats have been removed. And that piston twin? It should be noted that it only has a single seat. Flight performance is breathtaking. Especially after escaping the grasp of a little sibling…

  6. It’s great to see that X-Plane now has a universal plug-on mechanism for graphics objects: Just use the Lego connection interface 😉
    On Ben’S redering problems: I have no idea how graphics works, but can’t you use a bump map for the “Lego buttons” (unsure about the “Lego holes”) at least?

  7. Austin must be having a fit working out the aerodynamics for those flat wings! 😉 I guess this would fall into the category of “given enough power, even a brick can fly”.

  8. Is there any status update on the very low FPS on some Linux machines?

    Also any status update on X-Plane 11.20b4?

    Thanks Bill

  9. Ben,
    The extended Terminal_kit with new textures 2-3-4 became available with XP11 20b3, right?
    So, if I made an airport with this updated lib, users with XP11 but no betas will have errors, right? They need XP11 20b3?

    Freddy De Pues,
    NAPS sceneries

    1. Even users with X-Plane versions newer than 11.20b3 might get errors.
      NEVER base any released scenery or addon on a X-Plane beta version. Anything can change w/zero forward or backward compatibility between betas and final versions.

  10. During my development of a VR plugin, I believe to have found four bugs in the API. Three are related to VR, the other is not:

    1) If you create a window using the new API, the mouse handler will get passed the coordinates of the real mouse instead of the VR pointer in the DRAG message. The other messages get correct coordinates.

    2) If you create a new window using the new API in VR, the actual window size as reported by GetGeometry is smaller than what you requested. This is due to the border decoration being subtracted from the geometry. This doesn’t happen for non-VR windows with decoration. Also, this leads to an invalid affine transformation when trying to convert mouse coordinates from boxels to pixels. The further away from the center, the bigger the error.

    3) If you set a resize policy on a VR window, it has no visual effect: The user can resize the window. However, if you ask for the window’s geometry, it will report the restricted coordinates as if it were never resized by the user. This leads to strange errors when trying to draw in VR windows.

    4) Non-VR, please see here in the second post: https://forums.x-plane.org/index.php?/forums/topic/145871-question-about-thread-safety-of-xplmscheduleflightloop/

    1. Please file bug reports for the above 3 VR bugs.

      Re: threading: the plugin SDK is absolutely not thread safe and it is illegal to call any XPLM routine from a thread OTHER than the thread we called you from, full stop. I am aware of some plugins openly violating this, and in the future we may intentionally kill the app immediately when this happens, rather than have plugins introduce race conditions and re-entrancy that show up as really really mysterious crashes later that we can’t understand. Don’t do it!!

      With that in mind, I think your example from the org post is moot. If you are trying to build a message queue to move work from a worker thread to the sim, you aren’t allowed to schedule the flight loop callback from the worker thread at all! And since you are ONLY allowed to schedule/deschedule the flight loop CB from a single thread, there cannot be race conditions because there can’t be concurrent operation.

      The way to solve this is to always run your flight loop callback and ensure that the under-run case is as cheap as possible, e.g. make sure that your check-and-dequeue is fast when the FIFO is empty. We aren’t going to call your callback that often – register a single one for the entire callback and you’re good to go.

    2. A follow-up: we did at one point intend to make already-created flight-loop scheduling asynchronous, specifically to allow worker threads to ‘wake up’ something inside the sim, and you are correct that there’d be a data race between the thread putting itself to sleep and async code waking it back up again. We never shipped that code – we realized after the fact that a bunch of internals of the SDK weren’t ready, so we backed away from it – you might find spurious older docs claiming thread safety to be available for a small number of calls.

      Given the above data race you describe, I think such an API (wake up the worker from a thread) would be pretty useless in a lot of situations due to “lost wake-ups” – there might be work-arounds but they’d be messy to do. A more useful API would be “queue callback on main thread once”, callable from a thread, so that worker threads can queue _something_ in plugin land on demand. Since it would be “one queue, one call” there’d be no races – you’d queue as many times as you need. But that’s not coming any time soon – poll for now.

      1. Thanks a lot for you detailed reply, I very much appreciate it! I indeed came up with the idea of the wakeup worker thread because the SDK docs explicitly mention that scheduling is allowed from any thread, mentioned in the very last part of this official page: https://developer.x-plane.com/sdk/XPLMProcessing/

        It even mentions the restrictions for using it from other threads, but it’s still broken as you say.

        Could you please remove that paragraph so no one else tries this? It took me quite some time to figure out it’s actually impossible to not have data races with the given design. I’ll use a polling approach for now.

  11. Are there any good flyable versions of these airplanes? I’m looking for study-level add-ons with all systems modeled, so I can practice all flight situations, and get good references for getting hired as a pilot…

    I just hope that those flyable models would make it into X-Plane 12. I can help in the development, with my expertise on mechanical resistance of assembled lego bricks which I studied since very early in my life…

    1. “Necessary” is a tricky word. I can definitely say that it was _not_ our intention to _replace_ custom scenery with the gateway. Our goal was to create a pyramid of customization, with the gateway on the bottom, freeware in the middle and payware at the top, with increasing realism coming from increasing complexity, authoring time, and level of tools involved. The scenery system has a lot of features that are not legally usable on the gateway to support the rest of the pyramid.

Comments are closed.