Introducing Aerodynamic Forces [Studio Beta]

One of the best updates for Roblox Studio, I made this airplane solely using aerodynamics, built the engine using torque and parts rotated 25 degrees. I can’t wait to accomplish great things using this new system. :upside_down_face:

7 Likes

Finally, I’ve been waiting so long for this update!

So after testing it for some days here is my final feedback:

Overall it is really nice to have, especially because of the minimal performance it needs.
I was able to set up my own Jet meshes and let them fly!
But sometimes it seems very unbalanced. For example: My jet is creating enought lift to fly but the drag of it is unrealistically high. So would it be possible to set a Drag/Lift Ratio of every single (Mesh) Part to adjust it? I already tried playing around with air density, gravity, mass and so on, but I think that would be a nice addon to this wonderful feature coming up.

3 Likes

We are currently working on an improved drag/lift model.

6 Likes

Thanks for catching that! That was some legacy test code we had in there.

Hey what a great airplane! Thanks for giving aerodynamics a try, I’m glad it worked out for you.

Regarding units, you might want to check out this post to see how units can be converted between Roblox and metric. The default Roblox gravity is quite a bit higher than “Realistic”!

We recommend simulated constraints (e.g. hinges) to actuate control surfaces, Motor6Ds don’t work well with aerodynamics.

We are considering ways to expose the wind profiles (i.e. Air Density at different heights). What exactly do you mean by “in a number sequence”? It would be good to hear what you (and others) think a good way of exposing Air Density at different heights could be.

Hmmm… we have considered exposing specific Aero forces through something similar to the Sensor approach we have used in the past. See: SensorBase | Documentation - Roblox Creator Hub
Would something like that work for your use case?

Yes it does! Take a look at Example 3 in the initial post for an example of this

We are hoping to take a closer look at Hydrodynamics (Drag forces in water). It turns out that the Aerodynamic force model approach we used for this release can be mostly applied to water as well. Stay tuned for this.

This is certainly on the long term vision. No promises here but it is very aligned with where we would like to go. Note: If you get a chance, take a look at the recent “Engine Innovations” RDC talk where we talk a bit more about the Aerodynamics / Fluid Dynamics roadmap. (The session videos might not be public yet but hopefully will be soon)

4 Likes

Thanks for your interest in the aerodynamics model! We really appreciate your giving it a try. At a high level, you can think of it as a local model for the forces on a body given its linear velocity, angular velocity, and the ambient wind. This localized force model is integrated over the entire body, incorporating the geometry, to get the total force and torque. It is not a lifting line method (specific to wings), nor is it a panel method (which can be expensive). We are constantly looking for ways to improve the Lift/Drag model where possible. No promises, but stay tuned for some potential updates.

Along with the force model, we have a bunch of additional math and code to make it both fast (real time) and stable. Would there be interest in a longer post that goes over the model in some detail?

3 Likes

I’m aware this model is in beta is probably has lots of issues to resolve, but is there any ETA when this will be rolled out outside of studio to Roblox? Id be really keen to go forward with a interesting game idea using this model :smiley:

Good question. We are not able to promise a firm date yet since we would like to ensure we:
a) Have a lift + drag model we are confident will meet the needs of a variety of scenarios
b) Have enough time to optimize performance for the scenarios we see people building (make sure to send us any reports of performance issues so we can take a look at them!)
c) Provide a bit more help to creators to debug Aerodynamic forces so things are more usable

In the mean time, we wanted to get the APIs out there so folks like you could start building their experience, getting things ready and provide us feedback so you have a head start when Aerodynamics moves from a studio-only beta to an Open beta (i.e. publishable places)

2 Likes

Absolutely, I am very interested in the exact principals of this aerodynamic model

1 Like

I don’t know if this is already in the engine but if y’all could add something that could help with realistic crash physics, that’d be pretty cool

Also I think I’m gonna create an airplane with this new stuff!

1 Like

although im not the op, i think that the sensor base would work well.

im attempting to simulate wingflex and this would allow for that to work using the built in aerodynamic forces.

Yes, interested in knowing some more detail about the model.

Also, how much does the geometry affect the calculations, does the shape actually affect the calculations or is it based on the bounding box?

Minor modifications to the number sequence system would allow developers to select altitude vs density percent, and the values could be linearly interpolated between the points. The downsides of such a system is that it is not an exponential graph and would be inaccurate without lots of points. Another idea is letting developers express the altitude and density percent relation as a function however that is not intuitive and somewhat limiting when compared to the number sequence method.

So a sensor base is like a value but it outputs selectable additional data about the part? If so that would work great for what I need. I would definitely appreciate having access to more backend engine numbers like the air density percent, aero force/torque, and total force/torque acting on a part.

I would be interested in a post that goes over the details.

1 Like

I would say a large voxel grid with 16x16x16 voxel size containing data about wind direction and air density within the voxel(could even forgo wind direction and have just pressure using pressure to calculate wind direction and speed).

This approach would make fluid simulation easier to implement into the aerodynamics model and offer Developers a high level of control being able to have worlds that aren’t boring flat plates and instead actual realistic planets that are spherical.

EDIT: if 16x16x16 is too much data then maybe go up to 32x32x32 maybe give Developers control over it with voxel size settings 8x8x8, 16x16x16, 32x32x32, 64x64x64.

1 Like

what about welds? i’m presuming those would work

1 Like

nope lol tried them, seems that only physics constraints work unfortunately.

1 Like

honestly might go back to custom physics

1 Like

Welds work correctly as long as you don’t animate them.
Any animation in an aerodynamic mechanism must be done through simulated physics constraints.

1 Like