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:
- Aerodynamic forces now include buoyancy!
- More control of performance tuning with
FluidFidelity
- 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