Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

OpenPax: Open-source Passenger add-on (early development)

Featured Replies

  • Author

2/12/2025 Development Update

Optional LLM-generated Announcements

Besides the user-customizable announcement scripts, each announcement contains an LLM (Large Language Model) prompt, and 3 providers are already supported given you have an API key with them: OpenAI (ChatGPT), Anthropic (Claude), and Google (Gemini). This will help make announcements feel fresh each time. The prompts have been crafted to prevent hallucinations as much as possible, by explicitly providing what information the LLM can use, and instructing it not to use any details not explicitly provided. Results have been promising, but as with anything related to LLMs, your mileage may vary!

No local LM implementations at launch

Despite models like SmollLM2 allowing users to run small language models on-device with pretty good results, the system requirements are just way too high (e.g. 8GB RAM for just the LM), and the results not at the quality I'd want them to be. I'll keep an eye on developments there, and hopefully down the road you'll be able to have LM-generated announcements without having to pay anything except your power bill.

Weather in Announcements

I've implemented pulling the live METAR of the destination airport from aviationweather.gov, interpreting it into plain English, and now the appropriate announcements will mention the weather when available. This is offered only if you use an LLM provider for now, but I'm brainstorming ways to include weather in the scripted announcements as well.

Example of an LLM-generated announcement with destination weather info:

Quote

Good morning, everyone. This is your Captain speaking. Welcome aboard United Airlines flight 1204 to Albuquerque. We are now at our departure time, and should be underway shortly. Our flight time today will be approximately 2 hours and 51 minutes. The weather in Albuquerque is mostly cloudy and cool with windy conditions, but excellent visibility. Thank you for choosing United, and we hope you have a pleasant flight.

KABQ METAR at the time of the announcement:

KABQ 121852Z 25020G31KT 10SM BKN080 08/M14 A2975 RMK AO2 PK WND 25031/1852 SLP053 T00781139 $

Dealing with foreign language TTS voices

TTS providers, including Windows Speech, offer voices in languages other than English. Those voices can be fed English text, and the result is decent, depending on the voice and the language its emulating. The Greek voices, for example, don't sound all too different from what my parents sound like when they visit me in the States, heh.

That said, there's an important detail: if you feed those languages a mix of words and numbers in their numeric form, the numbers will be read in the speaker's native tongue, switching languages back and forth mid-stream. For that reason, I had to write some code that will make sure I'm feeding the same script to the subtitle module and the TTS module, but with the TTS module receiving script with all numbers converted into English words, so the whole spoken announcement is in English. I've made sure to take into account places where numbers are read in group form, so 300 will be read as "three hundred", but A320 will be read as "A three twenty". There might be some spots or edge cases I've missed when it comes time for the initial release, so keep an ear out for those.

Announcements for crew-less flights

In flights with passengers but no cabin crew, the Captain will be the one making all the announcements. Those scripts have been written to account for that, and the announcements are more limited than all the ones you'd get when you have at least one member of cabin crew. So if you're flying folks around as just pilot (and perhaps co-pilot) you'll get different, unique announcements vs flying folks around with a cabin crew.

Announcements this, announcements that...

I'm really hoping to move on from the Announcements implementation in the next couple of days. It's been a lot of work, but really educational, and it's my first time incorporating TTS and LLM technologies in an application I've made, so I'm very happy I did. But that's not the meat of what OpenPax is about, and I hope to get back to designing and implementing the rest of the crew and passenger interactions, special events, emergencies, and so on, as soon as possible.

If you read this all the way through, thank you for taking the time, and have a great rest of your week!

Edited by Leftos

  • Replies 38
  • Views 7.8k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • I have re-opened this thread after discovering that the user (TomTom558) that was harrassing the OP has been posting from the same IP address as a developer of a similar product. We do not tolera

  • Before my name gets mentioned, it wasn't me - I'm not in the habit of slating other developers - on the contrary I believe that competition is healthy and should be encouraged.. that's how stuff impro

  • 2/12/2025 Development Update Optional LLM-generated Announcements Besides the user-customizable announcement scripts, each announcement contains an LLM (Large Language Model) prompt, and 3 p

Is the name "OpenPax" set in stone? I only asked because Google shows it to already be in use by some Linux security patch or similar...

i9-13900K | 6400MHz DDR5 (32GB) | GeForce RTX 4090 24GB

MSFS 2024 | PMDG 777-300ER | FBW A380X | Fenix A320 | ini A350

  • Author
1 hour ago, verbal said:

Is the name "OpenPax" set in stone? I only asked because Google shows it to already be in use by some Linux security patch or similar...

Nah, it's just a placeholder project name. Open for open source, and pax for passengers. I'm happy to hear your suggestions for what the name should be when it hits public alpha.

On 2/7/2025 at 5:46 AM, Bob Scott said:

I have re-opened this thread after discovering that the user (TomTom558) that was harrassing the OP has been posting from the same IP address as a developer of a similar product.

We do not tolerate sock-puppet subterfuge and intrigue on the forums.

I would love to know who or which product this was. The market for such products is small and limited, as far as I know, to Self Loading Cargo, PACX (which is pretty much dead), Passengers2 and a freeware tool called LukeAirTool.

I can only think of one developer from the above product list that posts on here regularly. 

 

 

Kael Oswald

9950X3D/ 64GB DDR5 6200 @ CL30 / Custom Water Loop / RTX 5090 / 3 x 48" LG C4 OLEDs

  • Author
7 hours ago, KL Oo said:

I would love to know who or which product this was. The market for such products is small and limited, as far as I know, to Self Loading Cargo, PACX (which is pretty much dead), Passengers2 and a freeware tool called LukeAirTool.

I can only think of one developer from the above product list that posts on here regularly. 

 

 

Feel free to PM Bob if you'd like to know more. I would rather keep the thread focused on OpenPax, if that's okay, so that it doesn't get trashed and closed like last time. Hope you can understand!

6 hours ago, Leftos said:

Feel free to PM Bob if you'd like to know more. I would rather keep the thread focused on OpenPax, if that's okay, so that it doesn't get trashed and closed like last time. Hope you can understand!

Understand and completely fair enough.

This adding sounds like a great idea - Will be following closely.

Kael Oswald

9950X3D/ 64GB DDR5 6200 @ CL30 / Custom Water Loop / RTX 5090 / 3 x 48" LG C4 OLEDs

  • Author

2/15/2025 Development Update

Today was a very exciting and productive day. A lot of the things that make OpenPax unique were implemented in a first pass, and are being iterated on and tuned. Let's break them down one-by-one.

Passenger Professions

Passengers will span all ages, from toddlers and children to adults to seniors. And with age comes a career, and then retirement. People of all sorts of professions will be on-board, each profession having its own common and uncommon personality traits. People of the same profession sat near each other might be more likely to network, imbuing positive effects on each other during the flight. Doctors will be able to assist with medical emergencies. Retired pilots and active flight crew on a transfer flight will have a positive effect on passengers around them.

Passenger Inventory

Each passenger will be prepared for the flight to varying degrees. Not only are their initial needs' state driven by a variety of factors, such as age, time of flight, and personality traits, but all those factors impact how well-equipped they are. Passengers might bring noise-cancelling headphones, earplugs, sleep masks, all helping with their comfort and the ability to fall asleep quicker and stay asleep longer. Amenity kits in business class will provide some of those items to passengers that might have forgotten them at home, but they're going to be lower quality, with lessened positive effects. Parents might remember to bring a tablet with them to keep noisy kids distracted and occupied, which has a ripple effect on the wellbeing passengers around them. A person with the germophobe personality trait that forgot to bring sanitizing wipes might have a hard time starting out the flight. And so on.

Passenger Groups

Although solo travel is growing more and more popular, humans don't exist in a vacuum. Different passenger groups, from couples and nuclear families to bachelor parties and youth sports teams, they will all buy tickets to your flight. They're a lot more likely to interact with each other, and with that, impact each other. A bachelor party might be rowdy, and you might need to have one of your crew ask them to keep it down, with results varying based on the passengers' and your crew's personality traits. A family will want to buy seats that are close together, distributing themselves to make sure that each child is supervised by at least one parent; if they get separated because they're booking late, you might need to see if any other passengers are willing to give up their seat to accommodate the family. Whether that goes well or badly, is sure to have an impact on a bunch of people's mood.

The ratios of different groups lining up to fly will also depend on a variety of factors. For example, solo passengers and couples might be a lot more likely to be travelling during the holidays to visit family, vs, say, a corporate team.

Did someone say late booking?

The ticket sales simulator has its first iteration ready, and there's so, so much that went into it. For one, prices are influenced by distance, destination (certain cities might have a base price modifier), time of year and destination combo (said cities could also have months where going there is more expensive/cheaper), time of year overall (more expensive around the holidays), time of day (red-eye flights cheaper than daytime flights, flights arriving around hotel check-in times being marked up, etc.). You'll be able to set how many "days" of ticket sales step-by-step simulation you want to go through. Each day, you'll be given a recommended price from your "company" for each seat class, driven by a variety of factors, including all the above, but also how well your flight has been selling so far. Want to take a risk and up the price for a few days and see if you can squeeze out some more profit? Want to go cheaper than recommended because you want to sell all your seats and not take any chances against the RNG? You'll be able to do that on a day-by-day basis, and see the results of the ticket sales of that day, with a breakdown of the groups of passengers that bought seats, and which seats. You'll see your seat map slowly filling up before boarding has even started, as you watch solo travelers prefer seats in sections with nobody next to them (well, yet, anyway!), families and larger groups try to sit together, and so on.

Each passenger's tolerance for prices is dependent on their profession and age, which creates an implied wealth factor, and drives how much money they'd want to spend on a flight ticket. Their profession and age and personality traits also drive the kind of seat class they prefer, and whether they'll accept a seat in a lower class, and if they do, if they're going to be _really_ grumpy about it.

Depending on whether you enjoy fog of war or not, you will be able to see the sort of passenger groups that are potential passengers on that flight but haven't pulled the trigger on buying tickets yet, which could help inform your decisions on what direction to move the prices. Is it a Corporate Team full of Business Executives that are going to expense the flight anyway, so you can charge whatever you want (within reason)? Or is it an extended family of 7 that are waiting for a last second discount?

Customizability remains the name of the game

As I've said before, every layer of the experience will be customizable so that you can cater OpenPax to how you want to play. You'll get to decide where the line between "realism" and "unrealistic but fun gameplay" is for you, and tune the experience to your preferences. Don't want to bother with selling tickets? Great! Let your company do its best without your input. Don't think you're supposed to know how each passenger is feeling every second if your crew haven't interacted with them yet since they boarded? Awesome! Turn fog of war on. You want to add more cities that might not have specific pricing patterns in the shipped version? It's going to be as easy as editing a text file.

That's all for now!

Thanks for taking the time to read today's update, and I'll see you on the next one! Have a great rest of your weekend!

Edited by Leftos

  • Commercial Member
On 2/13/2025 at 7:43 AM, KL Oo said:

I would love to know who or which product this was. The market for such products is small and limited, as far as I know, to Self Loading Cargo, PACX (which is pretty much dead), Passengers2 and a freeware tool called LukeAirTool.

I can only think of one developer from the above product list that posts on here regularly. 

 

 

Before my name gets mentioned, it wasn't me - I'm not in the habit of slating other developers - on the contrary I believe that competition is healthy and should be encouraged.. that's how stuff improves and benefits the community at large. We're all flight simmers at the end of the day.

Good luck with the project!

Developer of Self-Loading Cargo - The Cabin Crew and Passenger Simulation Addon for MSFS, X-Plane, P3D and FSX

  • Author
14 hours ago, FPVSteve said:

Before my name gets mentioned, it wasn't me - I'm not in the habit of slating other developers - on the contrary I believe that competition is healthy and should be encouraged.. that's how stuff improves and benefits the community at large. We're all flight simmers at the end of the day.

Good luck with the project!

And to be clear, part of the reason I'm making this open-source is so that anyone from the community, commercial developer or hobbyist or otherwise, is free to take any of the ideas and implementations and put them in their own product as well. I'll be releasing it under the MIT license which is totally permissive of all of that.

Thanks for the well wishes, Steve! Same to you!

  • Author

2/19/2025 Development Update

Animated Passengers

I've licensed the Modern Interiors Pixel Art pack from Limezu on itch.io, and have incorporated its character art into OpenPax. Since I'm randomly picking a body, eyes, hairstyle, and outfit from all available, and stacking them on top of each other, you're bound to get endless combinations of passengers and crew looks.

I still need to find other artists for the different aircraft art (different types of seating, galley, galley cart, bathroom exterior, and so on), as well as to get the flight crew some kind of distinguishable outfit and/or hat/cap... So yeah, the game visually is far from finished, but it's nice to upgrade from what started as purely ASCII art, then static pixel art sliding across the aircraft, to animated passengers. It's cute. I love it.

Person Details Window

The person details window is your one-stop shop to figure out everything you might want about a given passenger or crew member. Who they boarded with, their age, profession, personality traits, inventory, needs, relationships, and so on. From that window you'll be able to easily navigate to other passengers in the same group as that passenger, or to any other passenger in the cabin, really.

Relationships

Yeah, relationships. Passengers that came onboard as a group will have a high relationship score with each other, which will make their interactions a lot more likely to be pleasant. As they interact with others, depending on the personality traits of all participants, relationship scores will change depending on the success of the interactions, again feeding into the potential of success of future interactions.

Cabin Overview Window

The cabin overview window will give you an in-depth high-level look at your passengers and crew as a whole. Passenger demographics, every passenger group and solo passenger (with click-through to their Person Details window), an overview of situations that might require your attention, a breakdown of average need level per seating class, in-flight service history and upcoming service schedule, breakdown of service areas per crew member, and so on.

Cabin Lighting

Man, that was a beast to take on. I've never worked with shaders before, so that was a challenge and a half. But I'm very happy with the progress I'm making. Cabin lighting features implemented include:

- Main cabin lights (togglable automatically or by the user)
- Overhead compartment cabin lights with mood / color lighting (plan is to let the user pick the cabin lighting color) that come on when the main cabin lights turn off
- Reading light per seat, togglable by the passenger
- Aisle emergency lighting strips that come on when the main cabin lights turn off
- Ambient lighting entering the aircraft through each window as individual sun shafts
- Passengers dynamically deciding whether to open and close their window blind based on factors such as overall lighting level local to their seat, if they're trying to sleep or passengers next to them are, if they're allowed at all based on conditions etc.
- Ambient lighting through open doors
- Ambient lighting affected by the aircraft's position in the world, with real-life time of day cycles including detailed sun position calculations based on latitude and longitude, date and time, the aircraft's altitude, etc.
- Different ambient lighting for each part of the day, with warm orange tones during dusk and dawn, warm white in the daytime, cool white with heavily desaturated look at night
- Ambient lighting affected by airport lighting. As you taxi away from the gate, the airport's bright cool white lights will have less and less of an ambient lighting impact, and the opposite will happen as you taxi into your gate.

It's all really subtle stuff, and who knows how many people will even notice, but it's been a really fun challenge to try and tackle, and have a somewhat realistic lighting system in a fun little indie game / flight sim add-on like this.

That's all for now!

Thank you for taking the time to read through yet another update! I'm so excited to get to a public alpha stage and share this with you all!

Edited by Leftos

This is sounding really interesting. Thank you for keeping us updated. I will definitely check this out once there is a release. 

Dean Farley

Awesome. Anything to replace that god awful SLC with ZERO support. 

  • Author
7 hours ago, UAL4life said:

Awesome. Anything to replace that god awful SLC with ZERO support. 

I'm glad to hear you're excited, but I would prefer if we don't take cheap shots at other devs, please. You can have your feelings about SLC and any other add-on, but saying things like that in this thread will only serve derail it. Thanks!

  • Author

2/22/2025 Development Update

Pixel Art Upscaling, Texture Resolution, VRAM usage

I came across an open-source shader for pixel art upscaling that's super impressive. Rendering hundreds of passengers, even at a sprite resolution of 48x48, when you're stacking 4+ different animated sprites (body, eyes, hairstyle, outfit, backpack, etc.) for variety, can add up in VRAM demands. And for people that will use this as an indie game, that's probably fine, but for people that are looking to use it as a flight sim add-on, it's important that its VRAM usage (and general resource usage) remain reasonable, so the flight sim can have the breathing room it needs.

So OpenPax now offers 3 different character sprite resolutions, 48x48, 32x32, and 16x16, with the default being the lowest. 16x16 might not sound like much, but when you're viewing the tiny animated passengers from so far away, it's enough. And with the help of the Scale3X shader, when you do zoom in, you won't even realize that the base sprite is 16x16 pixels. I mean just look at this little guy upscaled to the huge portrait in the Person Details window!

 

spacer.png

 

Zoom & Rotate

As you might have noticed on the UI preview above, the interface allows you to zoom in and out as much as you want, as well as rotate the cabin so that it's horizontal. Your last used settings will be remembered across game sessions. That way you'll be able to use OpenPax in whatever layout works best for you and your screen layout. Plus, if you zoom in enough (or resize the window) to the point where you can't fit the whole cabin in it, scroll bars appear allowing you to easily move around the cabin. I'm contemplating other control schemes to move around and zoom, such as click and hold right- or middle-click, using the mouse scroll wheel, etc. Here's a little preview of what I have so far with regards to all that in action:

 

Duty-Free Service

Duty free is here for international flights, and with it comes a new passenger need called Shopping (I know it's silly, but not everything has to be serious), as well as some passenger traits to help make the decisions about which passengers are going to make that in-flight duty-free purchase not something that's completely random. Again, a person's wealth based on their profession and age drives spending decisions, just like with the tickets, so that also plays a part into who's going to splurge on some duty-free items.

 

No, how are you doing? Does anyone ever ask you that?

Crew has needs too, okay?! Each crew member has their own needs same as all the other passengers. Personality traits, as well as other factors specific to crew, will play into their initial needs, inventory, and how all that contributes to their needs during a flight. Crew that are too tired or too anxious might be slower performing services than their well-rested counterparts, and their interactions with passengers might be more likely to go awry. This will especially matter once there's progression mechanics to connect one flight to the next, once you have a crew roster and you're picking who you want to fly on each flight, balancing between their skillset, personality, but also how much you've been assigning them to flights recently, but those mechanics are likely to come after the first public alpha.

Still, crew will be able to take care of basic needs themselves. They'll go to the galley to grab a snack or a drink, they'll use the restrooms same as the passengers, and so on. Eventually I want to add crew sleeping quarters, but again, that's likely to come much further down the line.

 

Call Attendant Button

Passengers will be able to take initiative, and just as they're going to decide when to chat someone else up, close or open their window blind, turn on their reading light, go to sleep, they'll also be able to press the Call Attendant button over their seat, to get your / a crew member's attention. Most of it will be about basic needs, say someone is absolutely starving and can't wait for the meal service, or was asleep through it. But down the line, with special events implemented, you might see passengers calling an attendant over to ask for a seat change, ask you to handle a rowdy crowd near them, etc.

Same as everything else, you'll have the choice of either handling those situations manually, or leaving your crew to automatically respond to them.

 

So what's the deal with economy seats?

Speaking of passenger initiative and autonomy, passengers, especially those in economy class, might decide to once in a while get up and stretch a bit to boost their comfort, or get up and grab something from the overhead bin, and so on. It's little details that make the cabin feel alive. Of course different seat classes will impact comfort differently. Anyone that has flown on a lie-flat seat in business or first knows just how vastly more comfortable (albeit overpriced) that experience is.

 

You don't have to guess

Another thing added in the last few days is the mechanics of need history. As various factors (natural progression / regression, cabin seating, inventory items, personality traits, interactions) change a person's needs' level / wellness during the flight, that information is accumulated in a need history per need per passenger, and you'll be able to hover over a given need bar to see what all has been impacting it over a rolling window of time (at the moment I'm sticking with half an hour), as well as the hourly rate change.

 

That's it for another update

With the weather getting warmer and nicer, development will slow down a bit as I'm getting back to enjoying life outside of the house more (gasp, the horror!), but I continue to be super passionate about this project, and I'm really hoping to see it through to something y'all can enjoy. Thanks for reading through another update, and I'll see you on the next one!

This is sounding amazing and your progress seems astonishing! 

Kael Oswald

9950X3D/ 64GB DDR5 6200 @ CL30 / Custom Water Loop / RTX 5090 / 3 x 48" LG C4 OLEDs

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.