Chaos Physics GDC Demo

I’ve watched the demo presented on the new physics system, can anyone provide technical details on the implementation at this stage?

Would welcome any links to details, or pull requests.

Some initial questions about it I would have are:

  • Is it designed as a replacement for PhysX?
  • Will there be any changes to movement components?
  • Will it there be any changes regarding simulation determinism?

I would also like to have more information about this new system, specifically will there be mesh deformation? currently the nividia plugin APEX destruction handles small scale destruction well enough but there doesnt seem to be a straight forward way of doing metal deformations without using the FLEX branch for softbody physics?

EDIT: looks like theres a theres a talk at GDC about this stuff hopfully they will release a recording tomorrow or soon about it: Experience everything Unreal and more at GDC 2019 - Unreal Engine -> "Order from Chaos - Destruction in UE4"

Yes.

No.

Here’s hoping!

@TouchyUnclePhil As far as destructibles, I’m fairly certain from previous convos about Chaos that it integrates nVidia Blast. Which is really exciting! I don’t think I would count on Flex though, because it wouldn’t make sense with all the work going into Niagara.

Well, if it’s going to be nVidia Blast API then it shouldn’t be that hard to swap APEX/PhysX destructible meshes with the new Blast destructible meshes inside blueprints. Having destructible meshes inside blueprints with runtime static meshes to destructible meshes swap code is needed to achieve good performance and to use LOD optimizations that static ones allow but destructibles don’t. With Blast destructible meshes probably performance wise that wouldn’t be really needed anymore but having any destructible setup inside blueprints should allow for quick code updates to support the new types. And as long as Python scripting API will get full support for the new destructibles APIs it should be possible to update any batch conversion script from static to destructibles so updating a whole project destructibles to Blast/Chaos wouldn’t require to do everything manually (which would be just insane for any medium to large project).
Anyway UE 4.23 scheduled for a Q3 release should allow to start checking how Chaos works and how to code for it. Until then I will go on with the plan of embedding PhysX destructibles inside blueprints, hoping that updating to Chaos destructibles will be simple enough (as long as everything is exposed to Python it should allow to automate it with no fear of being forced to do a manual update on thousands or more of meshes)

Just watched the GDC vid, looks like I was wrong about Blast. They designed Chaos completely in-house. I’m very impressed!

Indeed they explain that on the video: https://www.youtube.com/watch?v=iFKz…ature=youtu.be

So why is a nVidia Blast plugin in 4.22 in beta and disabled by default and nVidia replied to some people to let Epic Games complete support for it? Will it be added too despite Chaos or it will disappear ?

Anyway … from the GDC video it seems that old APEX/PhysX Destructible Meshes will be replaced with Geometry Collections new actor type along with other stuff that is part of the Chaos API to setup the simulation.
Because final production ready Chaos API is scheduled for UE 4.24 with a Q4 release unless someone can just wait and do nothing for months or use placeholders level maps … the best option remains to still use the legacy PhysX destructible meshes inside blueprints with runtime swapping code from static mesh to destructible mesh version. It shouldn’t be that hard to replace destructible meshes with all new Chaos geometry collections of the same static meshes. And when having hundreds, thousands or many more meshes to convert a batch Python script is the best approach. As long as Chaos APIs will be fully exposed to Python it should be possible to then quickly update the scripts used to generate PhysX destructible meshes versions so that Chaos geometry collections are generated instead. All the blueprints placed in a level should then be easily updated with Python script as well. That is what I am going to do (well I have to figure out how to write all the Python scripts I need to achieve that hoping to not waste too many days/weeks). Of course I hope I will be able to easily update to Chaos… at the worst I would still have the project running with the old PhysX … but indeed Chaos would be the best option if there won’t be any major issues preventing to update any Python scripts (with many thousands of meshes doing it manually would be a huge waste of time taking months for a single developer like me)

Is there chaos already implemented in 4.23 rendering branch ? i see chaos solver there , please point me to any documentation relate to this . I would love to test it if its possible.

As per the official UE4 roadmap it seems Chaos APIs have been implemented in 4.23 :

great and please point me to any documentation or workflow explanation Thank You

These are the only public videos showing how the new Chaos API works that have been available so far (AFAIK) :

Yup, those are the only ones. It is possible that when we get the 1st preview for UE4.23 we get a livestream to talk about the asset, so that might not be that far away to happen.

I just hope it will be easy to replace legacy PhysX destructible actors inside BluePrints with the new ones. And that everything will be exposed to Python.
I will start to test out Chaos to replace all destructibles inside BluePrints (for swapping static mesh with destructibles) with the new Chaos based actors…
But as I said I will be forced to setup all the maps with legacy destructibles first … UE 4.23 will have Chaos just in beta and not production ready so until UE 4.24 release it is not wise to go the Chaos route even though legacy destructibles have some issues of their own. Anyway 4.23 will allow to prepare for Chaos properly.

it look like Chaos physics production will not in UE 4.24, see it next year.