Blog.

Not Every Experiment Succeeds

Cover Image for Not Every Experiment Succeeds
Rein
Rein

Sometimes things just click, sometimes they don’t. And lately, things definitely didn’t. Here’s why.

I’ve finally gotten the core of simulating passenger flows in Unreal Engine up and running, and it’s honestly super exciting. I can import a CSV flight schedule, aircraft appear at the gates, and passengers walk exactly to the exits or routes I’ve defined for them. So far, so good.

The only issue I’m running into is performance. Even on a very powerful machine, the simulation starts to struggle once I hit 1,000+ passengers and the frame rate begins to stutter. That’s simply not acceptable. So I’m currently looking for solutions, and within Unreal I’ll soon be diving into Mass Entity, Mass AI, and Mass Crowds, as well as experimenting with simulating passenger flows using Niagara particle systems. More on that later.

While brainstorming this with AI, though, I got sidetracked and increasingly excited about another piece of software: NVIDIA Omniverse. It might be even better suited for my use case, and since I love working with Python and my PC has a very capable NVIDIA GPU, it sounded like a match made in heaven.

But it wasn’t. Quite the opposite.

What a disappointment. It starts the moment you try to install the software. You can't. At least not in a way you're used to install software. It feels like everything is designed to make sure it won’t work for a regular user. And once you finally manage to get something on screen after two evenings of trying, it doesn’t really improve. To be fair, it looks impressive and I definitely see the potential, but it’s incredibly buggy and half the things you try simply don’t work because certain features or buttons seem to have been removed from the tool. Why, honestly?

My plan was simple: drop in a navmesh and let 10, then 100, then 1.000 and eventually 10.000+ passengers walk across it to explore the performance limits. But I couldn’t even get those first 10 moving. It’s almost embarrassing, but after three days of trial and error, searching, frustration, and swearing, I still couldn’t figure out how to link an agent to a navmesh. It just seems to no longer exist. And the documentation and online resources are either outdated or simply incorrect, so they didn’t help either.

I genuinely gave it a proper shot, but at some point you have to throw in the towel and conclude: this software just isn’t suitable for what I’m trying to do. For now, I’ll continue focusing on my airport simulation in Unreal, and hopefully the people at NVIDIA will refine Omniverse over the coming years. Because in its current state, I can only say: better stay away from it. It has potential, but for now unfortunately this feels like a proper waste of your time... only try it if debugging is your main passion in life.

So better luck next time!