Aerodynamics [Studio Beta] November 2023 Update

Update November 7, 2023 6:15PM (PST):

Hello Creators,

Thank you all SO much for all the feedback and excitement for Aerodynamics so far. We’ve all been amazed at the incredible experiences that you have shared.

Today, we’re introducing three highly requested capabilities for our existing Aerodynamics studio beta:

  1. Aerodynamic forces now include buoyancy!
  2. More control of performance tuning with FluidFidelity
  3. A whole slew of debugging visuals

Let’s dive in!

Buoyancy forces

Now, all parts that have EnableFluidForces = true can experience forces due to air buoyancy as well! When the density of your part is different from the surrounding air, your part will feel a force equal to the weight of the volume of air it displaces. With this beta, we are also reducing the lower limit of PhysicalProperties.Density to 0.0001 so you can have parts that are lighter than air. This opens up the possibility for balloons, hot-air balloons, or even blimps that can react to Aerodynamic forces. Remember that air density decreases with altitude (see this section in the earlier post for more details) so your hot air balloons will eventually reach an altitude where its density is equal to the air density, just like in the real world!

FluidFidelity

FluidFidelity | Documentation - Roblox Creator Hub

One of the top pieces of feedback we received was that people wanted more control over tuning performance for their creations. In response, we are introducing a new per-part dropdown called: FluidFidelity. With FluidFidelity, you can choose whether to optimize for performance or precision when calculating Fluid forces. Over time, though, we hope that this choice will eventually not be necessary.

This API addition also fixes an earlier issue of pre-existing MeshParts and PartOperations not automatically experiencing aerodynamic forces so you will no longer need to run the script to enable Aerodynamics on pre-existing MeshParts.

If you have used the CollisionFidelity drop-down before, FluidFidelity should feel pretty familiar. You have three options: Automatic, UseCollisionGeometry, and UsePreciseGeometry.

Automatic (Recommended) is the default for all parts and will automatically select the best option for your part. As our algorithms improve, choosing this option will ensure that you always get the most optimal choice.

UsePreciseGeometry will force the Aerodynamic subsystem to process and store a more precise fluid fidelity mesh for Aerodynamic force calculations. This will give you the most precise results for force calculations at a nominal memory cost and is recommended if you have parts that are not behaving as expected with the Automatic option above.

UseCollisionGeometry will force the Aerodynamic subsystem to use the same geometry that is generated to calculate collisions to also calculate Aerodynamic forces thereby using less memory. This option will work great for most things in your experience and will provide great performance too. Only select this option if you want to force the system to use the collision geometry to calculate Aerodynamic forces (and effectively opt-out of switching automatically to any future algorithmic upgrades). In general, you should leave the FluidFidelity option set to Automatic unless a specific part you are working on works better only when using the UseCollisionGeometry option.

You can always go to Studio Settings > Studio > Visualization > Show Decomposition Geometry to view the geometry that is generated and verify that it is as expected.

New debugging visuals

With this update, we are also introducing a few ways to debug aerodynamic forces on your mechanisms.

Enabling the debug visuals

To enable the debug visuals go to Studio Settings > Physics and check the Show fluid forces for selected or hovered mechanisms checkbox. This will turn on all the debug visuals for Aerodynamics. PhysicsSettings | Documentation - Roblox Creator Hub

You can always modify the Fluid Force Draw Scale value if you want to scale up or down the visuals depending on your scenario:

Showing fluid forces will turn on two debug visuals enabling you to:

Visualize Aerodynamic Forces and torques on all parts

Forces are visualized as blue cylinders that start from the center of pressure for each assembly and point towards the direction of the calculated aerodynamic force. The height of the cylinder represents the magnitude of the force.

Torques are visualized around the center of mass of your mechanism as a series of small blue arrows pointing in the direction of resultant torque. (see examples below)

Visualize center of pressure (COP)

We visualize the center of pressure as a yellow sphere from which forces applied to that assembly originate. These spheres are connected to the center of mass of the whole mechanism by thin white lines to show their relative positions. This visualization is especially useful when trying to tune forces / geometry for flying objects. The Center of Pressure (COP) is calculated per assembly and not per part so it shows how each Part contributed to the stability of the whole assembly.

For example, this visual below shows how these debugging visuals can help visualize the Aerodynamic forces, torques, and center of mass on a vehicle with rear fins/wings. Note how the car’s rear wings feel a massive downward force when they are raised and how the torques around the car’s center of mass change when this happens.

For flying vehicles, these visualizations are incredibly helpful to tune forces and geometry. In general, you can use this ruleset to tune your flying vehicles:

  • COP in front of COM → Your vehicle may be unstable and might flip or turn uncontrollably

  • COP inside COM → Your vehicle will likely be extremely maneuverable but might be difficult to control

  • COP closely behind COM → Your vehicle will be more maneuverable and stable. As you move the COP farther behind the COM, the vehicle will become more stable

  • COP further behind of COM → Your vehicle will be more stable but less maneuverable

  • COP very far behind of COM → Your vehicle will find it very hard to change course and may nosedive

We’ve been listening closely to your feedback so far and are still working on the issues you’ve raised:

  • Improved lift modeling: there are some situations where the fluid force model generates unrealistically low lift forces, we’re still working to improve that and get creator feedback during this Studio Beta phase.
  • Wind occlusion: right now, the global wind exists everywhere, even inside buildings. We’re still working to develop a system that automatically detects occlusion of the wind and incorporates that into the aerodynamic model.
  • Control over the wind and density profiles: we are considering ways to expose more control of the wind and density profiles.

Please keep the feedback and awesome creations coming!

Happy developing and stay breezy,

@beastierpanda, @chefdeletat, @FGmm_r2, @kckhem, @SmithVonMars and @vovoheli

268 Likes

This topic was automatically opened after 10 minutes.

This is absolutely fantastic! I am currently struggling scripting plane physics, so this will help dramatically!

26 Likes

Will this affect the optimization/memory usage of other physics systems?

20 Likes

Particles with physics and collisions… PLEASE :pray:

67 Likes

I find the balloon gif hilarious for some reason.

The air buoyancy thing shows a lot of promise in terms of balloons and similar things, looking forward to seeing how this turns out.

13 Likes

This news is much appreciated Mr. Gravity

9 Likes

This update will do amazing things for the aviation genre!

8 Likes

can we have an option to turn on water physics for any non collide-able part, so i can make pools and stuff easily and then make them my own style instead of just using roblox water. the parts could have the same physics as roblox water though just in part form

14 Likes

I have been anticipating this update since it was announced at RDC 2021! Time to completely overhaul my drone scripts…

6 Likes

Amazing update! No reason to hate.

8 Likes

Great work! I’m excited to gives all of these a go!

I do have a question about shifts in aerodynamic forces. Wind currently updates across the map all in one motion. Are there plans for wind updates to sweep in from a given direction? (Similar to that of a real life wind simulation.) Resistance would be less in areas where wind hasn’t adjusted to stronger speeds (until the sweep reaches them).

Excuse me for this likely not being fully in the scope of aerodynamics. But the increased immersion to wind I can imagine would help aerodynamics-related work and future improvements.

Regardless, amazing additions! Thanks!

3 Likes

They plan on localized wind eventually in the original beta announcement, at least from what I remember.

7 Likes

This is something I have been wanting for so long. So much so that I developed my own particle engine just so i can have particle collisions (Also remove the 10 size limit in the sequence editor).

10 Likes

i cant find the other post explaining how fluid physics works, can someone explain it to me

5 Likes

cant wait for this to be released, making rocket ships work on planets, and other attributes will be cool to see!

4 Likes

cool, however the next response to reply is correct

4 Likes

Does this change do anything to live servers? Some physics based drive engines appear to be having some issues within the past few hours (which would line up with this post).

9 Likes

If I haven’t applied any changes to my experience, will this new feature will affect memory cost of my current game version?
If so, what actions should be taken to minimize memory usage footprint?

5 Likes

Has this broken the physics?
The cars in our game have had some very strange behaviour changes (wheels will bob up/down and the car will spin in place when stationary.) These issues didn’t occur yesterday and we haven’t made any changes on our side.

11 Likes