What we've been up to, November 2024

It’s actually been six months since our last update, so we have some new things to talk about. Let’s dive in!

Industry news

Before talking about us, let’s talk about others.

MathWorks released RoadRunner R2024b, which I must say is a rather disappointing release, as was R2024a. No major feature was added for quite some time now, and unless you’re using HD Maps or the MATLAB API, not much has changed. The tool is still great, don’t get me wrong, but the days of VectorZero hyperactive development really are over.

In Unreal news, 5.5 is just around the corner. Epic has released all talks from Unreal Fest Prague, including the very interesting and on-topic session by BMW. You’ll find that below, it’s well worth a watch. The talks from Unreal Fest Seattle are also starting to appear online.

Speaking of, I’ve shared my playlist of all the Unreal videos I’ve watched over the years, and found of some interest. Nearly all of those are official Epic videos, and cover a very wide range of topics.

A few weeks ago, it was time for the annual Driving Simulation Conference, which is a major event for our industry. Sadly the sessions are not published online, which I find is a huge miss for everyone involved. My personal highlight was to see a video of the Dresden Driving Simulator in action, quite an impressive project!

OpenDRIVE

ASAM recently started the OpenDRIVE Transportation Area Concept, which aims to implement the Area model, introduced in the OpenDRIVE Concept Document, while also including CityGML. The Area model always seemed like a very interesting idea to me, and I’m looking forward to see what comes out of it. Though it’s not very likely that we’d ever use it, as the “vanilla” OpenDRIVE already does what we want.

On our side, the OpenDRIVE plugin for Unreal might not have had a lot of visible activity around it, we still have some things cooking. A notable feature currently in development is an OpenDRIVE gizmo, allowing you to easily move actors along S and T, instead of the traditional XYZ. While doing that, we’re also migrating our OpenDRIVE editor mode to the new Scriptable Tools framework, which should make it easier to add more features in the long term. No release date for all that just yet, but it’s well under way.

Research projects

NEWMOB

Our largest Unreal research project is nearly done! Well, for the Unreal side of things, it is actually done; but the final experiment is currently underway.

Our flagship development for this project was a homemade scooter simulator. We use the Varjo XR-3’s mixed reality features to be able to see the real scooter, our real hands, and the virtual world everywhere else.

We’re very happy with the result, and that’s just the beginning for this simulator, as we’re already planing on upgrading it. But that’s in the long term, for now we still have a project to complete.

On the Unreal side of this project, we recently generated 360 videos of all the scenarios, as a way of documenting the work that has been done. This was rather easy using the (unsurprisingly undocumented) Panoramic Rendering plugin for the Movie Render Queue.

Before that, we had to optimize said scenarios so that they run at a decent framerate. Unreal Insights makes that task quite simple. Unecessary ticks and overlaps were some obvious culprits, as is often the case. We also baked some Skeletal Meshes into Static Mesh where it made sense, and enabled Nanite as much as possible (though no VSMs nor Lumen, it’s still XR after all).

Others…

We currently have three other ongoing research projects, plus others coming in the pipeline. I don’t have much to share on those, but at least here’s a screenshot from a highway previously used in the project Sérénité, that underwent a slight makeover. Hopefully we’ll have more to share on all those projects in a future update.

Virtual Driver

Remember our Virtual Driver? It’s the Unreal plugin that drives all the vehicles in our scenarios, converting designer goals (e.g., keep lane, turn left) into vehicle inputs (e.g., pedals, steering wheel). Well, it learned some new goals, based on feedback from ongoing projects.

The first new goal is CrossMultiJunctions, which could also be called CrossRoundabouts as it’s its main use case. Anyone familiar with OpenDRIVE knows that roundabouts are tricky, and since the Virtual Driver heavily relies on OpenDRIVE, we implemented a specific goal that can handle multiple junctions in a short sequence.

The second new goal actually is not a goal, it’s just the output. But sometimes, we want to control the pedal depression with fine accuracy. And though we had a way of doing that outside the Virtual Driver, it’s actually easier for the scenario designer to be able to plan all that within the overall goal sequence itself.

And I haven’t given up on open-sourcing all that plugin; the decision on that is beyond my control however.

New features

Beyond our OpenDRIVE or Virtual Driver plugins, we’ve also added new features in our platform.

Spawn Points were introduced in NEWMOB and refactored to be merged in our main repository. This feature allows scenario designers to set various spawn location alongside the scenario’s route, and configure the desired world state for each one. Then, during development or testing, the designer can start from whatever point they prefer, allowing them to focus their work on a specific section of the scenario, instead of having to run everything from the start. When you have a 20+ minutes linear scenario, this is a huge timesaver.

Modular Trigger Volumes are an extension of the traditional Trigger Volume, with added modular features:

  • Filters, so that only certain actors trigger it
  • Conditions, to add other checks beyond the simple trigger (e.g., time to)
  • Target actors, to set on which actors the actions should be applied on
  • Actions, whatever set of actions you want to do

All of those are individual components, meaning you can combine them however you want. This avoids the issue of copy/pasting between Blueprints, and make it much easier to create any new Trigger Volume Blueprint.

I also migrated a bunch of trucks to Chaos Physics, meaning Unreal Engine 5. Those came from two Marketplace products, plus some kitbashing:

It’s a shame the original creators didn’t migrate those themselves, as they are really great products.

And to conclude that section with something we haven’t actually done, but are working on: sound! Our lab (LESCOT) recently welcomed a new researcher working on sound perception, which means we’ll have to up our game in that field. Thankfully, Unreal seems to have quite a few features for us to play with, so you’ll probably hear more on that later!

Fab

The Marketplace is dead, long live Fab!

Yes, Fab is (finally) live, but the transition isn’t that smooth. Beyond the delay (1 year!), the missing features (wishlists?), or the copyright infringements, our main issue at the moment is with the EULA.

Indeed, Fab offers two licence tiers: Personal and Professional, the threshold between the twos being:

have not generated more than $100,000 USD in gross revenue from your commercial activity in the digital content industry in the last 12 months

As a public university, where do we fall in that? That’s a rather complex question which has our legal department somewhat puzzled. I wish that Fab’s EULA had similar terms as the Engine’s EULA, which specify exceptions for both non-commercial and educational. We’re hoping to get in touch with Epic regarding that, but in the meantime, our only option is to buy Professional tiers, which obviously makes everything much more expensive, and some things unaffordable. In the meantime, I’m also happy about those tiers, as it gives more revenue opportunities for creators, who have been so crucial in our projects this far.

Written on November 1, 2024