This is a multi-phase change - please see below for the latest updates
In an effort to make physics behavior more consistent and accurate to the real-world we are introducing a few physics-related changes and would love your feedback:
- All part types would now be considered as solid bodies.
- Fixing an issue where Wedges and CornerWedges calculated mass and volume incorrectly.
All these changes affect body mass properties and may affect physics in experiences. Please read more to learn if your experience will be affected and any next steps.
While we are planning to roll this from Opt-in to Full Release over the coming months we are open to feedback and adjustments. See the timeline and additional updates at the bottom for more information.
Overview of Changes
Current State
Previously we had inconsistencies in mass properties for parts:
- Some parts were considered to be hollow (block, wedge, corner wedge), others were solid (sphere, cylinder).
- All imported meshes were considered to be solid in closed geometry.
- For mass calculations, we consider density evenly distributed like for a solid body, however for inertia calculations of a block for example the mass was concentrated on the surface (hollow body).
Volume:
- Wedge and CornerWedge volume calculations were incorrect as volume was equal to the bounding box.
Updated State
Consistency for all parts:
- All parts are now solid bodies.
- Mass is evenly distributed across the body and consistent with density distribution.
Volume:
- Wedge and CornerWedge volume calculations have been fixed.
Here’s a full overview of these changes:
Part | Before | After |
---|---|---|
Sphere | - Solid body | - No changes |
Cylinder | - Solid body | - No changes |
Block | - Hollow shell - All mass concentrated at the hull of the block |
- Solid body - All mass evenly distributed throughout the block |
Wedge | - Hollow shell - All mass concentrated at the hull of the bounding box “block”, doesn’t match the wedge form - Volume equal to the bounding box |
- Solid body - All mass evenly distributed throughout the wedge - Volume math is corrected, V = ½ of bounding box volume - Mass properties reflect wedge form |
CornerWedge | - Hollow shell - All mass concentrated at the hull of the bounding box “block”, doesn’t match the wedge form - Volume equal to the bounding box |
- Solid body - All mass evenly distributed throughout the corner wedge - Volume math is corrected, V = ⅓ of bounding box volume - Mass properties reflect corner wedge form |
Examples
Block Moments of Inertia
Old Block Inertia:
New Block Inertia:
Place:
MomentComparison.rbxl (37.7 KB) thanks to @AxisAngle for providing the example (see Blocks Moment of Inertia is Wrong)
Wedge Moments of Inertia
Place:
MomentsWedges.rbxl (38.5 KB)
CornerWedge Volume Affecting Mass
Place:
CornerWedgeMass.rbxl (31.3 KB)
How to Use
The new behavior is available by enabling the Workspace.PhysicsInertiaAndVolumeFix property.
You can enable it temporarily in testing to see how your experience behaves and if any adjustments are necessary.
If you want this to be available in live experience, you need to enable this property and publish your changes.
Effects of Changes
In many cases, the change won’t really affect simple mechanisms’ behavior and may only affect complex mechanisms introducing some instabilities due to overall lower inertia.
Volume changes
With Wedge and Corner Wedge volume calculations fixed volume gets two times smaller for Wedges and three times for Corner Wedges. With reduced volume mass will be proportionally reduced.
Inertia changes
With bodies becoming solid, the mass will be distributed evenly across the volume. As a result, inertia becomes smaller and parts tend to start and stop moving more easily in response to external forces.
Next Steps
This is a major physics change and as such we will be rolling out these changes over time. The timeline below is tentative. We understand this could have a major effect on some experiences and we want to work with you to address cases even if that means delaying changes on our end.
First Phase - Opt-in (Ended June 16, 2022)
- Workspace.PhysicsInertiaAndVolumeFix will stay in Default=Disabled, developers can enable for testing or in published experiences.
- We highly encourage developers to try this and see if their experiences need to be adjusted.
- This period will last two to four weeks depending on the impact.
Second Phase - Opt-out (Current Phase)
- Workspace.PhysicsInertiaAndVolumeFix will be set to Default=Enabled.
- If you see issues in your experience as a result then you can disable it.
- This period would last three to four weeks and should be used as a chance to troubleshoot unexpected behavior.
Third Phase - Full Release
- This change will be enabled on all experiences by default.
- This will close the cycle and experiences will no longer be able to opt-out.
Thanks for reading! Please flip these settings on and let us know any feedback or questions you may have.